BillionPhotos.com - Fotolia

Frühjahrsputz: so bereinigen Sie die Active Directory

Veraltete Entitäten im Active Directory blähen die Infrastruktur auf und können zum Sicherheitsrisiko werden. Wir erklären, wie Sie Windows-Konten wieder auf Vordermann bringen.

Im Lauf der Zeit sammeln sich in Active Directory verschiedene Daten an, die nicht mehr benötigt werden. Dabei handelt es sich um deaktivierte oder verwaiste Benutzerkonten, nicht mehr im Einsatz befindliche Domänencontroller oder Computerkonten, die schon eine Weile nicht mehr benutzt werden.

Diese Objekte beeinträchtigen die Leistung von Active Directory, belasten die Datensicherung und verursachen unnötigen Speicherverbrauch für Replikation und Verwaltung. Dazu kommen Sicherheitsrisiken, da verwaiste Benutzerkonten ein ideales Einfallstor für Angreifer sind, die unbemerkt im Netzwerk Schaden verursachen. Es lohnt sich also, mit den zahlreichen verfügbaren Tools und Bordmitteln Active Directory zu bereinigen.

Informationen zu Active Directory unkompliziert in der PowerShell auslesen

Mit dem kostenlosen Microsoft Active Directory Documentation Script lesen Sie detaillierte Informationen aus Active Directory aus:

Abbildung 1: Mit dem verlinkten Skript erhalten Sie zahlreiche Informationen zum Status von Active Directory, Domänencontroller und Benutzern.
Abbildung 1: Mit dem verlinkten Skript erhalten Sie zahlreiche Informationen zum Status von Active Directory, Domänencontroller und Benutzern.

Diese Daten sind enorm hilfreich, wenn es darum geht Active Directory von nicht mehr benötigten Objekten zu befreien. Nach dem Download des Archivs und dessen Extraktion, startet das Skript mit dem Befehl .\ADDS_Inventory_V3.ps1. Es erstellt eine HTML-Datei, die alle notwendigen Informationen zu Active Directory enthält.

Abbildung 2: Alle wichtigen Informationen werden in eine HTML-Datei exportiert.
Abbildung 2: Alle wichtigen Informationen werden in eine HTML-Datei exportiert.

Liegt ein Überblick zu Active Directory vor, lassen sich nicht mehr benötigte Konten schnell identifizieren und löschen.

Deaktivierte oder inaktive Benutzer- und Computerkonten entfernen

Nicht mehr benötigte Benutzer- und Computerkonten sollten Sie nicht nur einfach deaktivieren, sondern aus den oben genannten Gründen aus Active Directory komplett entfernen, um das System von Datenmüll und vermeidbaren Sicherheitslücken zu befreien. Um inaktive Benutzer- und Computerkonten zu finden, brauchen Sie nicht immer Zusatz-Tools. Auch die PowerShell ist dazu in der Lage. Sollen zum Beispiel alle nicht aktiven Benutzerkonten angezeigt werden, ist der folgende Befehl hilfreich:

Search-ADAccount -UsersOnly -AccountInactive

Sie können die Ausgabe eingrenzen, indem Sie eine Zeitspanne als Variable definieren. Dadurch legen Sie flexibel fest, welche Benutzerkonten betroffen sind. Diese können anschließend gelöscht werden:

$time = New-Timespan -Days 120

Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $time

In vielen Umgebungen gibt es sogar Benutzerkonten, die noch nie im Einsatz waren. Auch diese sollten Sie schnellstmöglich löschen, da sie nur Nachteile und keinerlei Nutzen mit sich bringen. Das geht ebenfalls in PowerShell:

Get-ADUser -Filter {(lastlogontimestamp -notlike "*")} | Select Name,DistinguishedName

ad-cleanup-01

Auslesen nicht verwendeter Benutzerkonten in der PowerShell

Das letzte Anmeldedatum eines Nutzers rufen Sie in der PowerShell folgendermaßen ab:

Get-ADUser „<Name>“ -Properties LastLogonDate | FT -Property Name, LastLogonDate -A

Neben den einzelnen Benutzerkonten kann die PowerShell auch das letzte Anmeldedatum aller Benutzer anzeigen.

Get-ADUser -Filter {(Enabled -eq $true)} -Properties LastLogonDate | select samaccountname, Name, LastLogonDate | Sort-Object LastLogonDate

Gesperrte Benutzerkonten löschen

Benutzerkonten die bereits längerer Zeit gesperrt sind und die Sie nicht mehr benötigen, lassen sich ebenfalls in PowerShell aufspüren und löschen:

Get-ADUser -Filter {(Enabled -eq $true)} -Properties LastLogonDate | select samaccountname, Name, LastLogonDate | Sort-Object LastLogonDate

Inaktive Benutzerkonten identifizieren und löschen

In vielen Umgebungen gibt es sowohl inaktive Benutzer- als auch Computerkonten. Um diese zu identifizieren und entfernen, benutzen Sie das kostenlose Skript GetInactiveComputer.ps1.

Prüfen Sie zuvor, wann das Kennwort des Benutzers abgelaufen ist oder wie lange es noch gültig ist. Hat der Benutzer das abgelaufene Kennwort nie erneuert, ist davon auszugehen, dass das Konto nicht mehr aktiv ist. Sie finden das in der PowerShell mit dem folgenden Befehl schnell heraus:

get-aduser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -properties PasswordExpired, PasswordLastSet |

select Name, PasswordLastSet, PasswordExpired |

sort -property PasswordLastset -Descending |

Where{$_.PasswordExpired -eq "TRUE"}

Offline-Defragmentierung der Active-Directory-Datenbank

Nicht nur nach einer Bereinigung von Active Directory ist es eine gute Idee, die Active-Directory-Datenbank zu defragmentieren. Vor allem in größeren Organisationen, bei denen die Active Directory durchaus mehrere Gigabyte umfassen kann, sollten Sie mindestens jährlich die Datenbank offline-defragmentieren.

Zuvor müssen Sie eine Sicherung des Systemstatus Ihres Active Directory durchführen. Als erstes kopieren Sie die Datenbank, die Sie dann offline defragmentieren und die Sie anschließend zurückkopieren. Stellen Sie sicher, dass auf dem Datenträger, den Sie dazu verwenden, genügend Speicherplatz frei ist. Danach sollten Sie folgende Schritte durchlaufen:

Starten Sie den Server im Verzeichnisdienst-Wiederherstellungsmodus oder beenden Sie den Active-Directory-Dienst auf dem Server. Der Server steht in diesem Fall nicht für die Anmeldung von Benutzerkonten zur Verfügung. Danach können Sie die Datenbank mit folgenden Befehlen defragmentieren:

  • Öffnen Sie eine Eingabeaufforderung und starten Sie Ntdsutil.
  • Geben Sie anschließend den Befehl activate instance ntds ein.
  • Geben Sie den Befehl files ein, um zur file maintenance zu gelangen.
  • Geben Sie den Befehl compact to <Laufwerk:\Ordner> ein. Wählen Sie als Verzeichnis einen beliebigen Ordner auf der Festplatte aus. Ntdsutil kopiert die Datenbankdatei in diesen Ordner und defragmentiert sie.

Wenn keine Fehlermeldungen auftreten, kopieren Sie zum Schluss die Datei ntds.dit aus dem Ordner, in welchen sie defragmentiert wurde, zurück in den Datenbankpfad der produktiven Datenbank. Diesen Vorgang führt Ntdsutil nicht automatisch aus, Sie müssen die Datei manuell kopieren. Sichern Sie die alte Version der ntds.dit aus dem produktiven Datenbankordner. Verschieben Sie die defragmentierte Datei in den produktiven Ordner der Datenbank und überschreiben Sie die alte Version.

Geben Sie in der file maintenance von Ntdsutil den Befehl integrity ein, um die Integrität der Datenbank festzustellen.

Wenn dieser Prozess abgeschlossen ist, sollten Sie den Domänencontroller neustarten. Treten jetzt noch Fehler auf, kopieren Sie die zuvor gesicherte Originalversion zurück und führen Sie einen erneuten Integritätstest durch. Ist der Test diesmal erfolgreich, wiederholen Sie den Prozess. Sie sollten den Domänencontroller erst in den normalen Modus starten, wenn sichergestellt ist, dass die Datenbank wirklich konsistent ist.

Erfahren Sie mehr über Desktop-Management