AD-Nutzer mit Hilfe von PowerShell und einer CSV-Datei erstellen

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

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:

  1. einheitliche Benamung (Vorname, Nachname, DisplayName, LogonName,…)
  2. 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:

  1. CSV-Datei erstellen
  2. AD-Zielordner wählen (bspw. eine OU)
  3. PowerShell-Skript ausführen (Bulk-AD-User-Import-From-CSV-File)
    1. Parameter 1: InputFile (das ist der Pfad zur CSV-Datei)
    2. Parameter 2: AdDN (das ist der sogenannte Distinguished-Name)
    3. Beispielaufruf: ./Bulk-AD-User-Import-From-CSV-File.ps1 “my-CSV-Input.csv” “OU=ServiceAccountsOU,dc=testad,dc=de”
  4. Änderungen im AD prüfen
  5. 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:

Die CSV-Datei kann beliebig viele Zeilen enthalten. Wichtig ist, dass die Kopfzeile existiert.

Schritt 1: CSV-Datei erstellen

Im zweiten Schritt wählt man einen AD-Ordner aus, in dem die Service-Accounts erstellt werden sollen.

Schritt 2: AD-Ordner wählen - Hier "ServiceAccountsOU"

Nun wird das PowerShell-Skript mit zwei Parametern aufgerufen, um die AD-Accounts der CSV-Datei anzulegen.

Schritt 3: PowerShell ausführen

Im gewählten AD-Ordner sind (nach einem Refresh der Ansicht) die AD-Accounts aus der CSV-Datei nun enthalten.

Schritt 4: Prüfen, ob die AD-Accounts angelegt wurden.

Der angelegte FarmAdmin-Account besitzt die allgemeinen Eigenschaften (Vorname, Nachname, Anzeigename, Beschreibung und E-Mail).

Schritt 5: Details des angelegten FarmAdmin-Accounts prüfen.

Der angelegte FarmAdmin-Account hat auch befüllte erweiterte Eigenschaften (Anmeldename, Nutzer kann das Passwort nicht ändern, Nutzerpasswort läuft niemals ab, AD-Account läuft niemals ab).

Schritt 6: Erweiterte Details des angelegten FarmAdmins prüfen.

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:

Dieser Beitrag wurde unter Microsoft, SharePoint 2010 abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf AD-Nutzer mit Hilfe von PowerShell und einer CSV-Datei erstellen

  1. Axel sagt:

    Das Setzen des Passwortes funktioniert nicht korrekt. Bevor ich das Skript anpasse, wäre der Workaround vorerst, das Passwort manuell im AD zu setzen (wäre eh zu empfehlen, um das Passwort nicht im Klartext in einer CSV zu speichern).

  2. Axel sagt:

    Wictor Wilén hat noch eine nette Idee beschrieben, wie man mit Hilfe eines “Name Generator”-Services eine große Anzahl von AD-Nutzern erstellen kann.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>