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

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

Wenn ein neuer Benutzer angelegt werden soll, wird normalerweise das MMC-Snap-In für Active Directory-Benutzer und -Computer genutzt. Aber was ist bei einer größeren Menge anzulegender Benutzer zu tun? In diesem Artikel erfährst du, wie du Active Directory-Benutzerkonten mit PowerShell erstellen kannst.

Das ActiveDirectory-Modul

Das ActiveDirectory-Modul wird immer größer und umfangreicher. Mit dem im Windows Server 2008R2/2012 dazugekommenen cmdlet New-ADUser, kannst du über die PowerShell auch Benutzer anlegen.

CSV-Datei richtig erstellen

Vornamen und Nachnamen beinhalten oft Sonderzeichen. Aus diesem Grunde muss schon beim Erstellen der Liste der neuen Benutzer darauf geachtet werden, dass die richtige Kodierung verwendet wird. Du solltest die Datei UTF-8-Encoded abspeichern, muss spätere Probleme zu vermeiden.

Zur Erstellung kannst du Excel, Notepad++ oder jede andere beliebige Anwendung nutzen. Damit das Skript funktioniert, musst du die CSV-Datei passend aufbauen. Hier der Inhalt einer Beispieldatei:

vorname,nachname,benutzername,email,kennwort,ou
"Max","Mustermann","m.mustermann","[email protected]","123456","CN=Benutzer,DC=ad,DC=firma,DC=COM"

Ausführen des PowerShell-Skripts zum Importieren der Konten

Mit der jetzt vorhanden CSV-Datei musst du im folgenden PowerShell noch den Pfad der Datei anpassen.

# Active Directory-Modul zum Ausführen von AD-Cmdlets importieren
Import-Module activedirectory
  
# CSV-Datei definieren
$CSVDatei = "C:\TEMP\neue_benutzer_kennwoerter.csv"

# Datensätze aus der CSV-Datei in die Variable $ADUsers einsätzen
$CSVImport = Import-Csv $CSVDatei - Delimiter "," -Encoding UTF8

# Mit einer Schleife jeden Datensatz der CSV-Datei verarbeiten
foreach ($Benutzer in $CSVImport)
{
	# Benutzerdaten einlesen und diese den jeweiligen Variablen zuweisen
		
	$benutzername 	= $Benutzer.benutzername
	$vorname        = $Benutzer.vorname
	$nachname 	    = $Benutzer.nachname
	$ou 		    = $Benutzer.ou
    $email          = $Benutzer.email
    $kennwort       = $Benutzer.kennwort

    # Das Konto wird in der OU aus der CSV-Datei erstellt
	New-ADUser
        -SamAccountName $benutzername
        -UserPrincipalName $benutzername
        -Name "$vorname $nachname"
        -GivenName $vorname
        -Surname $nachname
        -Enabled $True
        -DisplayName "$vorname $nachname"
        -Path $ou
        -EmailAddress $email
        -AccountPassword (convertto-securestring $kennwort -AsPlainText -Force) -ChangePasswordAtLogon $False
            
}