Daten auslesen, Domänen verwalten, Fehler beheben 10 Tipps für die Verwaltung von Active Directory mit der PowerShell
Neben den Tools in der grafischen Oberfläche, kann Active Directory auch mit der PowerShell verwaltet werden. Hier stehen verschiedene Cmdlets zur Verfügung, mit denen sich auch umfangreiche Verwaltungsaufgaben durchführen lassen.
Anbieter zum Thema

Mit der PowerShell lassen sich Daten auslesen, Voraussetzungen für die Installation von Domänencontrollern testen und Objekte anlegen. Wir haben uns bereits in verschiedenen Beiträgen mit der PowerShell und der Verwaltung von Active Directory über diesen Weg beschäftigt. Mehr dazu ist in den folgenden Beiträgen zu finden:
PowerShell-Modul zur Verwaltung von Active Directory nachinstallieren
Auf Domänencontrollern ist das PowerShell-Modul für Active Directory bereits verfügbar. Auf Clients mit Windows 10 und Windows 11 sowie auf Mitgliedsservern lassen sich die Tools nach installieren.
Die optionalen Features sind in Windows 10 und Windows 11 über „Einstellungen\Apps“ zu finden. Bei „Optionale Features“ und „Optionale Features hinzufügen“ steht „RSAT: Tools für Active Directory Domain Services und Lightweight Directory Services” zur Verfügung. Mit der Schaltfläche „Installieren“ erfolgt die Integration des Moduls. Durch die Installation des Features steht auch das PowerShell-Modul für Active Directory zur Verfügung.
Auf Servern kann die Installation durch das Hinzufügen der Remoteverwaltungstools für Active Directory im Server-Manager oder dem Windows Admin Center erfolgen. Hier ist das PowerShell-Modul für Active Directory über „Remoteserver-Verwaltungstools\Rollenverwaltungstools\AD DS- und AD LDS-Tools“ zu finden.
Auf Windows-Servern können die Verwaltungstools von Active Directory natürlich auch über die PowerShell installiert werden. Dazu wird der Befehl „Install-WindowsFeature RSAT-AD-PowerShell“ verwendet. Nach der Installation lassen sich die einzelnen Befehle mit dem Cmdlet „Get-Command -Module ActiveDirectory“ anzeigen.
FSMO-Rollen und Daten von Domänencontrollern auslesen
In der PowerShell lassen sich alle FSMO-Rollen und die Domänencontroller anzeigen, auf denen die Rollen aktiv sind:
Get-ADDomain | Select InfrastructureMaster, RID-Master, PDCEmulator
Um auch Schema- und Domänennamen-Master anzuzeigen, steht in der PowerShell der folgende Befehl zur Verfügung:
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster
Auch das Verschieben von Betriebsmasterrollen ist in der PowerShell möglich. Dazu kann das Cmdlet „Move-ADDirectoryServerOperationMasterRole“ verwendet werden.
Mehrere Benutzer auf einmal mit der PowerShell anlegen
Sollen mehrere Benutzer auf einmal in der PowerShell angelegt werden, greifen viele Administratoren auf CSV-Dateien zurück. Es gibt aber auch andere Möglichkeiten, zum Beispiel die Verwendung eines Skriptes. Dazu werden zunächst Variablen für Kennwort und Anzahl der Benutzerkonten definiert:
$pass= "kennw0rt" | ConvertTo-SecureString -AsPlainText -Force
$Nummer=1..20
Danach lassen sich recht unkompliziert mehrere Benutzer auf einmal anlegen, zum Beispiel für Test- oder Schulungsumgebungen:
Foreach ($z in $Nummer) {New-AdUser -Name Schulung$z -Path „OU=Schulung, DC=Joos, DC=int“ -enabled $True -ChangePasswordAtLogon $true -AccountPassword $pass}
Löschschutz in der PowerShell abfragen und setzen
Neben der Möglichkeit die Einstellungen in der grafischen Oberfläche vorzunehmen, kann der Löschschutz in Active Directory auch in der PowerShell abgefragt und gesetzt werden. Um den Löschschutz für ein Objekt abzufragen, wird der folgende Befehl verwendet:
Get-ADObject ‹DN des Objekts› -Properties ProtectedFromAccidentalDeletion
Aktivieren lässt sich der Löschschutz mit:
Set-ADObject ‹DN des Objekts› -ProtectedFromAccidentalDeletion $true
Soll der Löschschutz deaktiviert werden, kann wiederum die Option „$false“ gesetzt werden. Sollen keine einzelnen Objekte sondern ganze Organisationseinheiten geschützt werden, werden die CMDlets „Get-ADOrganizationalUnit“ und „Set-ADOrganizationalUnit“ verwendet.
Inaktive Benutzer- und Computerkonten in der PowerShell finden
Um inaktive Benutzer- und Computerkonten in Active Directory zu finden, sind nicht immer Zusatztools notwendig. Auch die PowerShell ist dazu in der Lage. Sollen zum Beispiel alle nicht aktiven Benutzerkonten angezeigt werden, ist der folgende Befehl sinnvoll:
Search-ADAccount -UsersOnly -AccountInactive
Es lassen sich aber auch Zeitspannen definieren, in denen die Konten nicht aktiv waren. Dazu steht das Cmdlet "New-Timespan" zur Verfügung. Hier kann die Zeitspanne in einer Variablen gespeichert werden:
$time = New-Timespan -Days 120
Danach erfolgt die Suche nach inaktiven Benutzerkonten innerhalb der Zeitspanne:
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $time
Um die Anzeige zu optimieren kann auch mit Pipe eine Verfeinerung der Anzeige erfolgen:
Search-ADAccount -UsersOnly -AccountInactive | Get-ADuser | Sort LastLogOnDate | Select Name,Department,Title,DistinguishedName
Benutzerkonten anzeigen, die noch nie aktiv waren
In der PowerShell können auch alle Benutzerkonten angezeigt werden, die sich noch nie angemeldet haben:
Get-ADUser -Filter {(lastlogontimestamp -notlike "*")} | Select Name,DistinguishedName
Benutzerkonten in der PowerShell Gruppen aufnehmen
Mit dem Cmdlet „Add-AdGroupMember“ lassen sich Benutzerkonten in Active Directory-Gruppen aufnehmen:
Add-AdGroupMember -Identity Schulung -Members joost, joose, muellert
Mehrere Benutzerkonten auf einmal in Gruppen aufnehmen
Es ist in der PowerShell auch möglich, mehrere Benutzerkonten auf einmal in Gruppen aufzunehmen, zum Beispiel alle Benutzerkonten, die sich in einer bestimmten OU befinden:
$User = Get-ADUser -SearchBase "OU=Schulung-Berlin, OU=Schulung, DC=Joos,DC=int" -Filter *
Nachdem die Benutzerkonten in einer Variablen gespeichert sind, kann das Ergebnis dazu verwendet werden die Benutzer der Gruppe hinzuzufügen:
Add-AdGroupMember -Identity Schulung -Members $User
Leere Gruppen in Active Directory anzeigen
Leere Gruppen in Active Directory können leicht mit der PowerShell und dem folgenden Befehl gefunden werden:
Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name
Inaktive Computerkonten in der PowerShell anzeigen
In der PowerShell ist es auch möglich, Computerkonten anzuzeigen, die schon lange nicht mehr aktiv waren:
Get-ADComputer -Filter * -Properties * | Sort LastLogonDate | FT Name, LastLogonDate
:quality(80)/images.vogel.de/vogelonline/bdb/1747400/1747437/original.jpg)
Schneller Überblick und Problemsuche im Netzwerk ohne Installation
10 Tools für die Fehlersuche mit Befehlszeile und PowerShell
:quality(80)/images.vogel.de/vogelonline/bdb/1771900/1771985/original.jpg)
Netzwerkprobleme mit der PowerShell lösen
So testen Sie Verbindungen und verfolgen Routen nach
:quality(80)/images.vogel.de/vogelonline/bdb/1800800/1800832/original.jpg)
Fehlerbehebung und Informationsbeschaffung mit Bordmitteln
So lesen Sie Active Directory mit der PowerShell aus
:quality(80)/images.vogel.de/vogelonline/bdb/1803000/1803054/original.jpg)
Active-Directory-Erweiterung mit der PowerShell
So fügen Sie Domänencontroller zu Active Directory hinzu
:quality(80)/images.vogel.de/vogelonline/bdb/1807800/1807811/original.jpg)
Automatisierung der Sicherheit in Active Directory
AD-Kennwortrichtlinien mit der PowerShell verwalten
:quality(80)/images.vogel.de/vogelonline/bdb/1808100/1808118/original.jpg)
Fehlerbehebung mit Bordmitteln
Active-Directory-Troubleshooting mit der PowerShell
:quality(80)/images.vogel.de/vogelonline/bdb/1821500/1821544/original.jpg)
Abgelaufene Zertifikate finden und ersetzen
Zertifikate in Windows mit der PowerShell verwalten
(ID:47984849)