Mobile-Menu

Daten auslesen, Domänen verwalten, Fehler beheben 10 Tipps für die Verwaltung von Active Directory mit der PowerShell

Von Thomas Joos

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

Auch das Active Directory lässt sich mit der PowerShell verwalten. Oft bringt dieser Weg deutliche Erleichterungen mit sich.
Auch das Active Directory lässt sich mit der PowerShell verwalten. Oft bringt dieser Weg deutliche Erleichterungen mit sich.
(Bild: © Alexander - stock.adobe.com)

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
Active Directory im Fokus
Bildergalerie mit 55 Bildern

(ID:47984849)