Wie kann eine AD-Benutzer-Abfrage nach einem bestimmten Attribut (Ort) mithilfe einer Excel-Tabelle (Vorname, Nachname, E-Mailadresse) erstellt und das Ergebnis in eine Excel-Datei exportiert werden?

Antwort

Um eine Abfrage nach einem bestimmten Attribut (z.B. Ort) in Active Directory (AD) anhand einer Excel-Tabelle (mit den Spalten Vorname, Nachname, E-Mailadresse) durchzuführen und das Ergebnis in eine neue Excel-Datei zu schreiben, kann ein PowerShell-Skript verwendet werden. Hier ist ein Beispielskript, das dies ermöglicht: 1. **Vorbereitung**: Stelle sicher, dass die Excel-Datei (z.B. `input.xlsx`) im selben Verzeichnis wie das Skript liegt und die Spalten "Vorname", "Nachname" und "E-Mailadresse" korrekt benannt sind. 2. **PowerShell-Skript**: ```powershell # Importiere das Modul für Active Directory Import-Module ActiveDirectory # Pfad zur Eingabedatei und zur Ausgabedatei $inputFile = "input.xlsx" $outputFile = "output.xlsx" # Importiere die Excel-Datei $excel = New-Object -ComObject Excel.Application $workbook = $excel.Workbooks.Open((Get-Location).Path + "\" + $inputFile) $sheet = $workbook.Sheets.Item(1) # Erstelle eine neue Excel-Datei für die Ausgabe $outputWorkbook = $excel.Workbooks.Add() $outputSheet = $outputWorkbook.Sheets.Item(1) # Schreibe die Kopfzeile in die Ausgabedatei $outputSheet.Cells.Item(1, 1) = "Vorname" $outputSheet.Cells.Item(1, 2) = "Nachname" $outputSheet.Cells.Item(1, 3) = "E-Mailadresse" $outputSheet.Cells.Item(1, 4) = "Ort" # Lese die Eingabedaten und führe die AD-Abfrage durch $row = 2 while ($sheet.Cells.Item($row, 1).Value() -ne $null) { $vorname = $sheet.Cells.Item($row, 1).Value() $nachname = $sheet.Cells.Item($row, 2).Value() $email = $sheet.Cells.Item($row, 3).Value() # Führe die AD-Abfrage durch $user = Get-ADUser -Filter {GivenName -eq $vorname -and Surname -eq $nachname -and EmailAddress -eq $email} -Property City if ($user) { $ort = $user.City } else { $ort = "Nicht gefunden" } # Schreibe die Daten in die Ausgabedatei $outputSheet.Cells.Item($row, 1) = $vorname $outputSheet.Cells.Item($row, 2) = $nachname $outputSheet.Cells.Item($row, 3) = $email $outputSheet.Cells.Item($row, 4) = $ort $row++ } # Speichere und schließe die Ausgabedatei $outputWorkbook.SaveAs((Get-Location).Path + "\" + $outputFile) $outputWorkbook.Close($false) $workbook.Close($false) $excel.Quit() # Bereinige COM-Objekte [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) | Out-Null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($outputSheet) | Out-Null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($outputWorkbook) | Out-Null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null ``` **Hinweise:** - Stelle sicher, dass das Active Directory PowerShell-Modul installiert ist. - Die Excel-Datei `input.xlsx` sollte die Spalten "Vorname", "Nachname" und "E-Mailadresse" enthalten. - Das Skript erstellt eine neue Excel-Datei `output.xlsx` mit den Ergebnissen. - Die AD-Abfrage basiert auf den Attributen Vorname, Nachname und E-Mailadresse. Passe den Filter an, falls andere Attribute verwendet werden sollen. Weitere Informationen zu PowerShell und Active Directory findest du hier: [Microsoft Docs - Active Directory PowerShell](https://docs.microsoft.com/en-us/powershell/module/activedirectory/?view=winserver2019-ps).

Kategorie: IT Tags: AD-Nutzer Excel Abfrage
Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Ich habe den ODBC-Treiber für Excel installiert, kann mich aber nicht mit MySQL verbinden.

Es gibt mehrere Gründe, warum du möglicherweise keine Verbindung zu MySQL über den ODBC-Treiber in Excel herstellen kannst. Hier sind einige Schritte, die du überprüfen kannst... [mehr]

Exchange Passwort wird laufend abgefragt?

Wenn dein Exchange-Passwort laufend abgefragt wird, kann das verschiedene Ursachen haben. Hier sind einige mögliche Gründe und Lösungen: 1. **Falsches Passwort**: Überprüfe,... [mehr]