Um mehrere Benutzer in eine Domäne einzubinden, kann man sich mit einem kleinen Script behelfen. Damit dies funktioniert, bedarf es jedoch einiger Vorbereitungsarbeiten:

1. Vorbereitung

 

  • CSV-Datei mit den Benutzern
    Man benötigt eine Excel-Tabelle, in der die jeweiligen Daten der anzulegenden Benutzer eingetragen sind. Diese speichert man als users.csv ab.
  • Um per Powershell überhaupt scripts laufen lassen zu können, müssen wir die Execution-Policy ändern. Dazu geben wir in einer Powershell-Sitzung folgenden Befehl ein: set execution-policy remotesigned und bestätigen mit Y. Nach der Ausführung des Scripts sollte dieser wert unbedingt wieder auf seinen Standard zurück gestellt werden. Dies funktioniert mit dem PS-Befehlt set execution-policy restricted.

2. Das Script

  • Das hier gezeigte Script ist sehr strukturiert aufgebaut, benötigt jedoch einer kurzen bearbeitung auf die jeweilige Domäne bzw. auf die Excel-Tabelle.
$objOU=[ADSI]”LDAP://OU=People,DC=sysadmingeek,DC=com”
 $dataSource=import-csv “users.csv”
 foreach($dataRecord in $datasource) {
 $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
 $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
 $givenName=$dataRecord.FirstName
 $sn=$dataRecord.LastName
 $sAMAccountName=$sAMAccountName.ToLower()
 $displayName=$sn + “, ” + $givenName
 $userPrincipalName=$sAMAccountName + “@sysadmingeek.com”
 $objUser=$objOU.Create(“user”,”CN=”+$cn)
 $objUser.Put(“sAMAccountName”,$sAMAccountName)
 $objUser.Put(“userPrincipalName”,$userPrincipalName)
 $objUser.Put(“displayName”,$displayName)
 $objUser.Put(“givenName”,$givenName)
 $objUser.Put(“sn”,$sn)
 $objUser.SetInfo()
 $objUser.SetPassword(“P@assw0rd”)
 $objUser.psbase.InvokeSet(“AccountDisabled”,$false)
 $objUser.SetInfo()
 }

 

3. Das Script im Detail

  • $objOU=[ADSI]”LDAP://OU=People,DC=sysadmingeek,DC=com
    Hier gehört der Pfad der Unterorganisation für die neuen Benutze sowohl die Domäne eingetragen. Ein Beispielwert wäre hier: OU=Mitarbeiter,DC=Unternehmen,DC=local
  • $dataSource=import-csv “users.csv
    Hier gibt man den Pfad der zu bearbeitenden .csv-Datei an
  • $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
    Hier wird der erste EIntrag der Benutzer gesetzt. Hier darauf achten, dass in der .csv-Datei sowohl eine mit dem Eintrag FirstName als auch dem Eintrag LastName in der ersten Zeile existiert. Bsp:
    A1 = “LastName”, A2 = “FirstName”
    B1=”Mustermann”, B2=”Max”
  • $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
    Hier wird der Account anhand des Vor- Und Nachnamens erstellt. Dieser wird anschließend noch auf lowercase konvertiert.
    Bsp: max.mustermann
  • $userPrincipalName=$sAMAccountName + “@sysadmingeek.com
    hier muss die vollständige Domöne angegeben werden Bsp: Unternehmen.local
  • $objUser.SetPassword(“P@assw0rd”)
    Hier das Standard-Passwort für den ersten Login angeben.

4) Das fertig bearbeitete Script gehört nun als .ps1 und legen es in den selben Ordner wie die .csv Datei. Mit einem Rechtsklick darauf und “Mit Powershell ausführen”. lassen wir das Script laufen. Die neuen Benutzer sollten jetzt unter der im Script angegebenen OU erstellt worden sein.