Beim Aufsetzen einer SharePoint-Farm ist eine immer wiederkehrende Aufgabe, Domain-Service-Accounts zu erstellen. Die Anzahl der zu erstellenden Domain-Service-Accounts varriiert dabei von
- 3 (Minimum für intiales Deployment) bis zu
- vielen Dutzend (Least Privilege mit etlichen konfigurierten Service Applications).
Die Service-Accounts sind eigentlich recht einfach anzulegen. Aber bei mehr als 3 anzulegenden Service-Accounts, freut sich der AD-Admin als auch der spätere SharePoint-Admin über folgende Eigenschaften der Service-Accounts:
- einheitliche Benamung (Vorname, Nachname, DisplayName, LogonName,…)
- einheitliches Setzen von Account-Eigenschaften (Password never expires, User is not allowed to change password,…)
Soweit so gut, aber gibt es denn sowas nicht schon? – Nach 2 Minuten Googeln bin ich auf eine Reihe von Lösungen gestoßen, wie man mit Hilfe einer CSV-Datei eine Art Bulk-AD-User-Insert umsetzen kann:
- CSVDE.exe – Kommandozeilen-Tool, welches aber keine Startpasswörter vergeben kann.
- PowerShell-Cmdlets – Mittels Standard-Cmdlets Import-CSV und New-ADUser kann das gewünschte Verhalten mit einem Einzeiler umgesetzt werden.
- PowerShell-Cmdlets von Quest - ActiveRoles Management Shell for Active Directory – Gut dokumentierte Zusatz-Cmdlets (35 MB), die aber installiert werden müssen.
- AD-Toolset - Active Directory User Import, AD Bulk Users – Lizenzpflichtiges Toolset (teils GUI, teils Kommandozeile), mit dem ein AD Bulk Import durchgeführt werden kann.
Als PowerShell-Verfechter sind für mich nur die beiden PowerShell-Cmdlet-Lösungen von Interesse. Da ich oft keinen Einfluss auf installierte Software auf dem AD-Server habe, scheidet auch die Quest-Lösung für mich aus. Bleibt also nur noch die Einzeiler-Lösung aus Technet. – Leider fand ich diese etwas kryptisch und die Konsolen-Ausgabe eines Bulk-Imports wollte ich auch ein wenig beeinflussen. Deshalb habe ich den Einzeiler um 124 Zeilen erweitert. Das Vorgehen wäre dann das Folgende:
- CSV-Datei erstellen
- AD-Zielordner wählen (bspw. eine OU)
- PowerShell-Skript ausführen (Bulk-AD-User-Import-From-CSV-File)
- Parameter 1: InputFile (das ist der Pfad zur CSV-Datei)
- Parameter 2: AdDN (das ist der sogenannte Distinguished-Name)
- Beispielaufruf: ./Bulk-AD-User-Import-From-CSV-File.ps1 “my-CSV-Input.csv” “OU=ServiceAccountsOU,dc=testad,dc=de”
- Änderungen im AD prüfen
- Wichtig: Passwörter der angelegten Nutzer ändern (weil das Setzen der Passwörter nicht ordnungsgemäß vom Skript erfüllt wird.
Bebildert sieht es dann so aus:
Das PowerShell-Skript berücksichtigt in Symbiose mit der CSV-Datei als Datenquelle natürlich bei weitem (noch) nicht alle theoretisch möglichen Eigenschaften eines AD-Accounts. Jedoch genügt es an dieser Stelle als solide Grundlage, um die Vorbereitung einer SharePoint-Installationen zu automatisieren und Zeit zum Kaffeetrinken zu gewinnen.
Über die Google-Recherche bin ich übrigens noch auf zwei weitere interessante Blog-Beiträge gestoßen:
- PowerShell Tutorial 12 – Part 1: Active Directory Management – Sehr schöner Einstieg in das Thema AD-Administration mit PowerShell mit vielen Screenshots. Außerdem werden die typischen Fallstricke (kryptische interne Namen von Eigenschaften) aufgezeigt.
- Automating Active Directory account creation with Powershell – Hier wird die Nutzung von PowerShell zur Automatisierung von AD-Accounts und Exchange-Email-Postfächern demonstriert.













