PowerShell für Active Directory – Warum automatisieren?
Die manuelle Verwaltung von Active Directory über die grafische Oberfläche (ADUC) ist bei kleinen Teams akzeptabel. Bei 50 neuen Mitarbeitern wird es mühsam. Mit PowerShell und dem Active Directory Module können Sie:
- Einzelne Benutzer in Sekunden anlegen
- Hunderte Benutzer per CSV-Import massenweise erstellen
- Passwörter zurücksetzen und ablaufende Kennwörter finden
- Gruppenmanagement automatisieren
- Berichte über inaktive Konten erstellen
Voraussetzungen
Active Directory Module installieren
Auf Windows Server (Domänencontroller):Install-WindowsFeature RSAT-AD-PowerShell
Auf Windows 10/11 (RSAT-Tools):
Einstellungen → Apps → Optionale Features → RSAT: Active Directory Domain Services und Lightweight Directory Services-Tools
Oder per PowerShell:Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
Modul laden
Import-Module ActiveDirectory
Einzelnen Benutzer anlegen
Basisbefehl New-ADUser
New-ADUser -Name "Max Mustermann" -GivenName "Max" -Surname "Mustermann" -SamAccountName "m.mustermann" -UserPrincipalName "[email protected]" -Path "OU=Mitarbeiter,DC=ihrefirma,DC=de" -AccountPassword (ConvertTo-SecureString "Start@2025!" -AsPlainText -Force) -Enabled $true -ChangePasswordAtLogon $true
Vollständiger Benutzer mit allen Attributen
New-ADUser -Name "Max Mustermann" -GivenName "Max" -Surname "Mustermann" -DisplayName "Max Mustermann" -SamAccountName "m.mustermann" -UserPrincipalName "[email protected]" -EmailAddress "[email protected]" -Department "IT" -Title "IT-Administrator" -Company "Muster GmbH" -OfficePhone "+49 6221 123456" -Path "OU=IT,OU=Mitarbeiter,DC=ihrefirma,DC=de" -AccountPassword (ConvertTo-SecureString "Start@2025!" -AsPlainText -Force) -Enabled $true -PasswordNeverExpires $false -ChangePasswordAtLogon $true
Benutzer zu Gruppe hinzufügen
Add-ADGroupMember -Identity "IT-Abteilung" -Members "m.mustermann"
Massenimport aus CSV-Datei
CSV-Datei vorbereiten
Erstellen Sie eine Datei benutzer.csv mit diesem Format:
Vorname,Nachname,Benutzername,Email,Abteilung,Passwort Max,Mustermann,m.mustermann,[email protected],IT,Start@2025! Anna,Schmidt,a.schmidt,[email protected],Marketing,Start@2025!
PowerShell-Import-Skript
`$OU = "OU=Mitarbeiter,DC=ihrefirma,DC=de"
$Benutzer = Import-Csv -Path "C:\Scripts\benutzer.csv" -Delimiter ","
foreach ($User in $Benutzer) {
$Passwort = ConvertTo-SecureString $User.Passwort -AsPlainText -Force
New-ADUser `
-GivenName $User.Vorname `
-Surname $User.Nachname `
-Name "$($User.Vorname) $($User.Nachname)" `
-DisplayName "$($User.Vorname) $($User.Nachname)" `
-SamAccountName $User.Benutzername `
-UserPrincipalName "$($User.Benutzername)@ihrefirma.de" `
-EmailAddress $User.Email `
-Department $User.Abteilung `
-Path $OU `
-AccountPassword $Passwort `
-Enabled $true `
-ChangePasswordAtLogon $true `
-ErrorAction SilentlyContinue
Write-Host "Benutzer erstellt: $($User.Vorname) $($User.Nachname)"
}`
Benutzer suchen und anzeigen
Alle Benutzer in einer OU
Get-ADUser -Filter * -SearchBase "OU=Mitarbeiter,DC=ihrefirma,DC=de" -Properties * | Select-Object Name, SamAccountName, EmailAddress, Department | Format-Table
Benutzer nach Namen suchen
Get-ADUser -Filter {Name -like "*Mustermann*"} -Properties * | Select-Object Name, SamAccountName, EmailAddress
Deaktivierte Konten finden
Get-ADUser -Filter {Enabled -eq $false} -Properties LastLogonDate | Select-Object Name, SamAccountName, LastLogonDate | Sort-Object LastLogonDate | Format-Table
Inaktive Benutzer (seit 90 Tagen nicht angemeldet)
$DatumGrenze = (Get-Date).AddDays(-90) Get-ADUser -Filter {LastLogonDate -lt $DatumGrenze -and Enabled -eq $true} -Properties LastLogonDate | Select-Object Name, SamAccountName, LastLogonDate
Benutzer bearbeiten
Passwort zurücksetzen
Set-ADAccountPassword -Identity "m.mustermann" -Reset -NewPassword (ConvertTo-SecureString "Neues@2025!" -AsPlainText -Force) Set-ADUser -Identity "m.mustermann" -ChangePasswordAtLogon $true
Konto deaktivieren (bei Mitarbeiteraustritt)
Disable-ADAccount -Identity "m.mustermann"
Konto in andere OU verschieben (z. B. "Ehemalige Mitarbeiter")
Move-ADObject -Identity "CN=Max Mustermann,OU=IT,OU=Mitarbeiter,DC=ihrefirma,DC=de" -TargetPath "OU=Ehemalig,DC=ihrefirma,DC=de"
E-Mail-Adresse aktualisieren
Set-ADUser -Identity "m.mustermann" -EmailAddress "[email protected]"
Gruppen verwalten
Neue Gruppe erstellen
New-ADGroup -Name "Buchhaltung-RW" -GroupScope Global -GroupCategory Security -Path "OU=Gruppen,DC=ihrefirma,DC=de" -Description "Lese-/Schreibzugriff Buchhaltung"
Mitglieder einer Gruppe auflisten
Get-ADGroupMember -Identity "IT-Abteilung" | Select-Object Name, SamAccountName
Gruppen eines Benutzers anzeigen
Get-ADPrincipalGroupMembership -Identity "m.mustermann" | Select-Object Name
Reporting und Audit
Benutzerliste als CSV exportieren
Get-ADUser -Filter * -Properties * | Select-Object Name, SamAccountName, EmailAddress, Department, LastLogonDate, Enabled | Export-Csv -Path "C:\Reports\Benutzer.csv" -NoTypeInformation -Encoding UTF8
Passwort-Ablauf überwachen
Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet, PasswordNeverExpires | Where-Object {$_.PasswordNeverExpires -eq $false} | Select-Object Name, SamAccountName, PasswordLastSet | Sort-Object PasswordLastSet
FAQ
Brauche ich Admin-Rechte für PowerShell AD-Befehle?
Ja, Sie müssen als Domänen-Administrator oder mit delegierten Rechten (z. B. Account Operator) angemeldet sein.
Kann ich PowerShell für AD auch remote ausführen?
Ja, mit PowerShell Remoting (Enter-PSSession -ComputerName DC01) oder mit dem Parameter -Server bei AD-Cmdlets.
Wie importiere ich Benutzer aus einer Excel-Datei?
Speichern Sie die Excel-Datei als CSV und verwenden Sie das obige Import-Skript. Achten Sie auf die richtige Zeichenkodierung (UTF-8-BOM).
Fazit
PowerShell macht AD-Administration erheblich effizienter. Ob Einzelbenutzer oder Massenimport – mit den richtigen Skripten sparen Sie Stunden manuelle Arbeit.
Als IT-Dienstleister in Heidelberg automatisieren wir Active-Directory-Verwaltung für Unternehmen in Mannheim, Ludwigshafen und der gesamten Rhein-Neckar-Region. Jetzt Automatisierungsberatung anfragen.