Dienstag, 10. Januar 2012

Active Directory Benutzer mit PowerShell erstellen

Bei der Einrichtung von Testumgebungen ist es hilfreich, wenn man einige Testuser zur Verfügung hat, mit denen man unterschiedliche Dinge demonstrieren bzw. ausprobieren kann.
Da ich persönlich die Erstellung dieser Benutzer per Hand etwas umständlich finde, habe ich ein PowerShell Skript gebastelt, mit denen sich die Benutzer automatisiert anlegen lassen.

Die Benutzerinformationen stammen aus einer .csv Datei, die nur einmal befüllt werden muss und immer wieder eingesetzt werden kann.

Die .csv Datei enthält folgende Spalten:

     - UserName
     - GivenName
     - Surname
     - samAccountName
     - DisplayName
     - Password


Der  PowerShell Code für den Import der Benutzer gestaltet sich wie folgt:


$users = import-csv "C:\ADUsers.csv"
$container = [ADSI] "LDAP://cn=Users,dc=mydomain,dc=local"
$users | foreach {
     $UserName = $_.UserName
  $GivenName = $_.GivenName
  $Surname = $_.Surname
  $SamAccountName = $_.samAccountName
  $DisplayName = $_.DisplayName
  $UserPassword = $_.Password
  $newUser = $container.Create("User", "cn=" + $UserName)
  $newUser.Put("givenName", $GivenName)
  $newUser.Put("Surname", $Surname) 
  $newUser.Put("sAMAccountName", $SamAccountName) 
  $newUser.Put("DisplayName", $DisplayName)
  $newUser.SetInfo()
  $newUser.psbase.InvokeSet('AccountDisabled', $false)
  $newUser.SetInfo()
  $newUser.SetPassword($UserPassword)
}


Wichtig ist hier die Reihenfolge des setzen der properties, danach muss ein SetInfo() erfolgen.
Erst danach kann der Account enabled werden und diese Reihenfolge muss eingehalten werden, damit der Account auch wirklich enabled wird.

In oben angeführten Beispiel befinden sich die Passwörter innerhalb der .csv-Datei.
Wer dies nicht möchte, oder das gleiche Passwort für alle Benutzer verwenden möchte, kann
die Zuweisung dieser Property weg lassen und anstelle der Passwortvariable den String bei der SetPassword(<password string>) Anweisung übergeben.

Dieses Skript hat sich für mich als sehr nützlich erwiesen und findet oft Anwendung.

Für etwaige Erweiterungsideen bin ich jederzeit offen und Anregungen sind herzlich Willkommen.
    

Keine Kommentare:

Kommentar veröffentlichen