PowerShell Active Directory

6 Kernkonzepte
Die wichtigsten Active Directory-Cmdlets für PowerShell: Get-ADUser · New-ADUser · Get-ADGroup · Get-ADOrganizationalUnit · Get-ADComputer · Search-ADAccount PowerShell ist das mächtigste Werkzeug für die Active Directory-Verwaltung. Diese Cmdlets sind essenziell für die Automatisierung von Benutzer-, Gruppen- und Computerverwaltung.

Voraussetzungen – AD-Modul installieren

Import-Module ActiveDirectory
Import-Module ActiveDirectory Get-Command -Module ActiveDirectory

Voraussetzung für die AD-Verwaltung mit PowerShell ist das ActiveDirectory-Modul. Es ist auf Domain-Controllern vorinstalliert und kann auf Verwaltungsstationen nachinstalliert werden.

Installation & Grundlagen

Befehl Beschreibung
Import-Module ActiveDirectory AD-Modul laden (automatisch auf DC)
Get-Command -Module ActiveDirectory Alle AD-Cmdlets anzeigen
Get-ADDomain Domain-Informationen anzeigen
Get-ADDomainController Domain-Controller auflisten
Install-WindowsFeature RSAT-AD-PowerShell AD-Modul auf Windows Server installieren
Beispiele
# AD-Modul laden
Import-Module ActiveDirectory
# Alle AD-Cmdlets anzeigen
Get-Command -Module ActiveDirectory
# Domain-Informationen
Get-ADDomain
Typische Ausgabe von Get-ADDomain:
Name : company.local
DNSRoot : company.local
DomainControllers : {DC01.company.local}
DistinguishedName : DC=company,DC=local
Tipp: Auf Verwaltungsstationen ohne Server installieren Sie die RSAT-Tools (Remote Server Administration Tools) über Windows-Features, um das AD-Modul zu nutzen.

Benutzer – Anzeigen, Erstellen, Ändern

Get-ADUser · New-ADUser · Set-ADUser
Get-ADUser -Identity max.mustermann Get-ADUser -Filter {Name -like "*Mustermann*"} New-ADUser -Name "Max Mustermann" -SamAccountName max.mustermann

Get-ADUser zeigt Benutzerkonten an. New-ADUser erstellt neue Benutzer. Set-ADUser ändert bestehende Benutzer. Verwenden Sie -Properties * für alle Attribute.

Wichtige Parameter

Parameter Beschreibung
-Identity Benutzername, SID oder DN
-Filter Filter für Benutzer (z.B. {Name -like "*"})
-Properties Zusätzliche Attribute (z.B. * für alle)
-SearchBase OU für die Suche
-SearchScope Subtree, OneLevel, Base
-AccountPassword Passwort setzen (New-ADUser)
-Enabled Konto aktivieren
Beispiele
# Benutzer anzeigen
Get-ADUser -Identity max.mustermann
# Benutzer mit allen Attributen anzeigen
Get-ADUser -Identity max.mustermann -Properties *
# Benutzer filtern (Name enthält "Mustermann")
Get-ADUser -Filter {Name -like "*Mustermann*"}
# Benutzer in bestimmter OU suchen
Get-ADUser -Filter * -SearchBase "OU=Users,DC=company,DC=local"
# Neuen Benutzer erstellen
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
New-ADUser -Name "Max Mustermann" -SamAccountName "max.mustermann" -UserPrincipalName "max.mustermann@company.local" -GivenName "Max" -Surname "Mustermann" -DisplayName "Max Mustermann" -Path "OU=Users,DC=company,DC=local" -AccountPassword $password -Enabled $true
# Benutzer deaktivieren
Set-ADUser -Identity max.mustermann -Enabled $false
# Benutzer löschen
Remove-ADUser -Identity max.mustermann -Confirm $false
Tipp: Verwenden Sie -Properties * bei Get-ADUser mit Vorsicht – das kann bei vielen Benutzern viel Zeit in Anspruch nehmen. Wählen Sie nur die benötigten Attribute aus.

Gruppen – Anzeigen, Erstellen, Mitglieder

Get-ADGroup · New-ADGroup · Add-ADGroupMember
Get-ADGroup -Identity "Domain Admins" Get-ADGroupMember -Identity "Domain Admins" Add-ADGroupMember -Identity "IT" -Members max.mustermann

Get-ADGroup zeigt Gruppen an. Get-ADGroupMember listet Mitglieder einer Gruppe auf. Add-ADGroupMember und Remove-ADGroupMember verwalten die Mitgliedschaft.

Beispiele
# Gruppe anzeigen
Get-ADGroup -Identity "IT"
# Gruppen mit Filter
Get-ADGroup -Filter {Name -like "*Admin*"}
# Mitglieder einer Gruppe anzeigen
Get-ADGroupMember -Identity "Domain Admins"
# Benutzer zu Gruppe hinzufügen
Add-ADGroupMember -Identity "IT" -Members "max.mustermann"
# Benutzer aus Gruppe entfernen
Remove-ADGroupMember -Identity "IT" -Members "max.mustermann"
# Neue Gruppe erstellen
New-ADGroup -Name "Projekt-Team" -GroupScope Global -GroupCategory Security -Path "OU=Groups,DC=company,DC=local"
Typische Ausgabe von Get-ADGroupMember "Domain Admins":
distinguishedName
CN=Administrator,CN=Users,DC=company,DC=local
CN=max.mustermann,OU=Users,DC=company,DC=local
Tipp: Mit -Recursive bei Get-ADGroupMember werden auch verschachtelte Mitglieder (Untergruppen) aufgelöst.

OUs – Organisationseinheiten verwalten

Get-ADOrganizationalUnit · New-ADOrganizationalUnit
Get-ADOrganizationalUnit -Filter * New-ADOrganizationalUnit -Name "NewOU" -Path "DC=company,DC=local"

Organisationseinheiten (OUs) strukturieren das Active Directory. Mit PowerShell können Sie OUs anzeigen, erstellen und verwalten – ideal für die Strukturierung großer Domänen.

Beispiele
# Alle OUs anzeigen
Get-ADOrganizationalUnit -Filter *
# OU mit Filter
Get-ADOrganizationalUnit -Filter {Name -like "*Users*"}
# Neue OU erstellen
New-ADOrganizationalUnit -Name "Abteilung-IT" -Path "DC=company,DC=local" -ProtectedFromAccidentalDeletion $true
# OU löschen
Remove-ADOrganizationalUnit -Identity "OU=Abteilung-IT,DC=company,DC=local" -Confirm $false
Typische Ausgabe von Get-ADOrganizationalUnit -Filter *:
Name : Abteilung-IT
DistinguishedName : OU=Abteilung-IT,DC=company,DC=local
ProtectedFromAccidentalDeletion : True
Tipp: ProtectedFromAccidentalDeletion $true schützt OUs vor versehentlichem Löschen – eine wichtige Sicherheitsmaßnahme in Produktionsumgebungen.

Computer – Anzeigen, Erstellen, Verwalten

Get-ADComputer · New-ADComputer · Set-ADComputer
Get-ADComputer -Identity "WS-001" Get-ADComputer -Filter {OperatingSystem -like "*Windows 10*"} New-ADComputer -Name "WS-001" -SamAccountName "WS-001$"

Get-ADComputer zeigt Computerkonten an. New-ADComputer erstellt neue Computerkonten. Set-ADComputer ändert Computerattribute.

Beispiele
# Computer anzeigen
Get-ADComputer -Identity "WS-001"
# Computer mit Filter (nach Betriebssystem)
Get-ADComputer -Filter {OperatingSystem -like "*Windows Server*"}
# Alle Computer in einer OU
Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=company,DC=local"
# Inaktive Computer (letzter Login > 30 Tage)
Get-ADComputer -Filter {LastLogonDate -lt (Get-Date).AddDays(-30)}
# Computer deaktivieren
Set-ADComputer -Identity "WS-001" -Enabled $false
# Computer löschen
Remove-ADComputer -Identity "WS-001" -Confirm $false
Tipp: Computerkonten haben ein $ am Ende des SamAccountName. Bei der Erstellung via New-ADComputer wird dies automatisch hinzugefügt.

Filter & Suchen – Gezielte AD-Abfragen

-Filter · -LDAPFilter · Search-ADAccount
Get-ADUser -Filter {Enabled -eq $true -and Department -eq "IT"} Search-ADAccount -AccountExpiring -DateTime (Get-Date).AddDays(7) Get-ADUser -LDAPFilter "(objectClass=user)"

Filter und Suchabfragen ermöglichen gezielte Suchen im Active Directory – nach Benutzern, Gruppen, Computern oder spezifischen Attributen.

Beispiele
# Aktive Benutzer in der IT-Abteilung
Get-ADUser -Filter {Enabled -eq $true -and Department -eq "IT"} -Properties Department, Title
# Benutzer, die in 7 Tagen ablaufen
Search-ADAccount -AccountExpiring -DateTime (Get-Date).AddDays(7) | Get-ADUser -Properties DisplayName, AccountExpirationDate
# Deaktivierte Benutzer
Search-ADAccount -AccountDisabled
# Benutzer, die sich nie angemeldet haben
Search-ADAccount -AccountInactive -DateTime (Get-Date).AddMonths(-6)
# Alle Objekte mit LDAP-Filter
Get-ADUser -LDAPFilter "(objectCategory=person)"
# Benutzer mit deaktiviertem Konto in einer OU
Get-ADUser -Filter {Enabled -eq $false} -SearchBase "OU=Users,DC=company,DC=local" -Properties DisplayName
Typische Ausgabe von Search-ADAccount -AccountDisabled:
ObjectClass : user
Name : Max Mustermann
DistinguishedName : CN=max.mustermann,OU=Users,DC=company,DC=local
Tipp: Search-ADAccount ist speziell für die Suche nach ablaufenden, inaktiven oder gesperrten Konten optimiert – ideal für regelmäßige Bereinigung und Berichterstattung.

Domain & Replikation – AD-Status prüfen

Get-ADDomain · Get-ADReplicationAttributeMetadata
Get-ADDomain Get-ADReplicationAttributeMetadata -Identity "CN=Administrator,CN=Users,DC=company,DC=local" Get-ADReplicationUpToDatenessVector -Target "DC01.company.local"

Domain- und Replikations-Cmdlets helfen bei der Überwachung des AD-Zustands, der Replikationsvorgänge und der Domain-Informationen.

Beispiele
# Domain-Informationen
Get-ADDomain
# Domain-Controller auflisten
Get-ADDomainController -Filter *
# Replikationsmetadaten eines Objekts
Get-ADReplicationAttributeMetadata -Identity "CN=Administrator,CN=Users,DC=company,DC=local"
# Replikationsstatus eines Domain-Controllers
Get-ADReplicationUpToDatenessVector -Target "DC01.company.local"
# Alle Replikationspartner
Get-ADReplicationConnection -Filter *
# PDC-Emulator anzeigen
Get-ADDomain | Select-Object PDCEmulator
Tipp: Get-ADReplicationAttributeMetadata ist besonders nützlich, um zu prüfen, wann ein Objekt zuletzt repliziert wurde – hilfreich bei Replikationsfehlern.

PowerShell AD im Überblick

Get-ADUser Benutzer anzeigen
Mit -Properties *
New-ADUser Benutzer erstellen
Mit Passwort und OU
Get-ADGroup Gruppen verwalten
Mitglieder, Filter
Search-ADAccount Inaktive Konten finden
Ablauf, Deaktiviert
-Filter Gezielte Abfragen
{Property -eq "Wert"}
-LDAPFilter Erweiterte Suchen
LDAP-Syntax

Quick Summary

ADUser
Benutzer
ADGroup
Gruppen
ADOrganizationalUnit
OUs
ADComputer
Computer
-Filter
Filter
ADDomain
Domain
Get-ADUser -Identity max.mustermann -Properties * · New-ADUser -Name "Max Mustermann" -SamAccountName max.mustermann · Get-ADGroupMember -Identity "Domain Admins"