JumalaSika ltd - Fotolia

Ntdsutil, PowerShell und Bordmittel für Restore von AD

Mit Bordmitteln lassen sich Daten und komplette Datenbanken aus Active Directory wiederherstellen. Der Beitrag zeigt dazu einige Möglichkeiten in der Praxis.

Wir haben uns bereits im Beitrag AD-Datenbank und Objekte sichern und wiederherstellen mit dem Thema Backup und Restore von Active Directory (AD) beschäftigt. Im folgenden Text vertiefen wir die Möglichkeiten und zeigen weitergehende Befehle zur Wiederherstellung.

Authoritative  und Non-Authorative Wiederherstellung

Bei einer authoritativen Wiederherstellung wird das Backup als Haupt- oder authoritative Quelle für alle AD-Daten betrachtet. Das ist besonders nützlich, wenn es zum Beispiel durch einen Angriff zu einer ungewollten Löschung oder Veränderung von AD-Objekten gekommen ist. In solchen Fällen würde eine authoritative Wiederherstellung die Objekte in ihren ursprünglichen Zustand zurückversetzen und alle nachfolgenden Änderungen überschreiben. 

Die Non-Authoritative Wiederherstellung ist die Standardmethode und wird oft für die Wiederherstellung von Systemzuständen oder einzelnen Objekten verwendet. Hierbei wird die wiederhergestellte Version des AD mit den aktuellen Daten auf anderen Domänen-Controllern abgeglichen. 

Wiederherstellung von Active Directory mit Ntdsutil

Mit dem Befehlszeilen-Tool Ntdsutil lassen sich auf Domänen-Controllern verschiedene Aufgaben zur Wiederherstellung durchführen. Nach dem Start des Active Directory im Directory Services Restore Mode (DSRM) wird ntdsutil in der Befehlszeile gestartet. Mit dem Befehl activate instance ntds wird die Active-Directory-Instanz ausgewählt. Anschließend lässt sich mit authoritative restore oder non-authoritative restore auswählen, welcher Wiederherstellungstyp zum Einsatz kommen soll. Um einen einzelnen Benutzer wiederherzustellen: 

restore object "CN=Benutzername,OU=Organisationseinheit,DC=Domain,DC=com"

Für die Wiederherstellung eines einzelnen Objekts können auch die Cmdlets Get-ADObject und Restore-ADObjectgenutzt werden, zum Beispiel:

Get-ADObject -Filter {displayName -eq "Thomas Joos"} -IncludeDeletedObjects | Restore-ADObject

Dieser Befehl sucht nach einem gelöschten Benutzer mit dem Namen Thomas Joos und stellt ihn wieder her. Ebenso lassen sich ganze Organisationsstrukturen oder andere Objekttypen wiederherstellen:

Get-ADObject -Filter 'ObjectClass -eq "organizationalUnit"' -IncludeDeletedObjects -SearchBase "OU=Gelöschte_OU,DC=Domain,DC=com" | Restore-ADObject

Dieses Beispiel stellt eine gelöschte Organisationsstruktur und alle darin enthaltenen Objekte wieder her.

Mit welchen Tools lässt sich Active Directory sichern und wiederherstellen?

Es gibt verschiedene Tools und Lösungen, um Active Directory (AD) zu sichern und wiederherzustellen, sowohl von Microsoft als auch von Drittanbietern. Das integrierte Backup-Tool von Microsoft für Windows-Server-Systeme kann ebenfalls für die Sicherung des Systemstatus und der Active-Directory-Datenbank verwendet werden.

Obwohl ntdsutil eher ein Befehlszeilen-Tool als ein dediziertes Backup-Tool ist, ermöglicht es die Erstellung von Snapshots der AD-Datenbank, die später zur Wiederherstellung verwendet werden können. Wir zeigen dazu noch einige Beispiele. Für Organisationen, die eine Hybrid-Cloud-Strategie verfolgen, bietet Azure Backup die Möglichkeit, On-Premises-AD-Instanzen in der Azure-Cloud zu sichern.

Das ntdsutil-Tool ist ein leistungsstarkes Befehlszeilen-Dienstprogramm in Windows-Server-Umgebungen, das für eine Reihe von Verwaltungsaufgaben rund um Active Directory verwendet werden kann, einschließlich der Erstellung von Snapshots der Active-Directory-Datenbank für Sicherungs- und Wiederherstellungszwecke.

Um einen Snapshot der AD-Datenbank zu erstellen, kommen folgende Befehle zum Einsatz:

  • ntdsutil
  • activate instance ntds
  • snapshot
  • create
Abbildung 1: Erstellen von Snapshots der Active Directory-Datenbank.
Abbildung 1: Erstellen von Snapshots der Active Directory-Datenbank.

Nachdem der Snapshot erstellt wurde, erscheint eine Bestätigung sowie ein eindeutiger Bezeichner für diesen Snapshot, der für die spätere Wiederherstellung genutzt werden kann. Wenn ein Snapshot zur Wiederherstellung zum Einsatz kommen soll, ist folgender Weg denkbar:

  • Geben Sie ntdsutil ein.
  • Führen Sie snapshot aus.
  • Verwenden Sie list all, um alle verfügbaren Snapshots aufzulisten.
  • Identifizieren Sie den Snapshot, den Sie wiederherstellen möchten, und notieren Sie seinen Bezeichner.
  • Verwenden Sie mount {Bezeichner} um den Snapshot zu mounten.

Nach dem Mounten des Snapshots wird ein Pfad angezeigt, unter dem die Daten verfügbar sind. Es ist möglich, die Datenbankdateien von dort zu kopieren und an den ursprünglichen Speicherort zurück zu kopieren, um eine Wiederherstellung durchzuführen. Dazu sollte sich der Domänen-Controller im Directory Services Restore Mode (DSRM) befinden. Über diesen Weg lässt sich auch die AD-Datenbank ntds.dit kopieren. Das sollte aber sorgfältig getestet werden, denn dadurch lässt sich ein Active Directory schnell außer Betrieb setzen. 

Ein gemounteter Snapshot enthält eine Kopie der Active-Directory-Datenbank zum Zeitpunkt der Snapshot-Erstellung. Durch das Navigieren zum angezeigten Pfad können Administratoren diese Kopie der Datenbankdateien sichern, indem sie diese an einen anderen Speicherort kopieren. Dieser Prozess ist besonders wichtig, wenn bestimmte Daten wiederhergestellt werden sollen.

Die Wiederherstellung der Active-Directory-Datenbank aus einem Snapshot ist ein komplexer Vorgang und sollte mit Vorsicht behandelt werden. Zunächst sollte sich der Domänen-Controller im Directory Services Restore Mode (DSRM) befinden. Das stellt sicher, dass die Active-Directory-Datenbank offline ist und überschrieben werden kann. Anschließend kann die gesicherte ntds.dit-Datei aus dem Snapshot in das originale Datenbankverzeichnis, typischerweise C:\Windows\NTDS\, kopiert werden. Zuvor sollte die vorhandene Version aber gesichert werden. 

Wenn ein Snapshot aktuell nicht mehr benötigt wird, lässt sich dessen Bereitstellung jederzeit wieder aufheben: 

unmount {Bezeichner} 

Erweiterte Wiederherstellung spezifischer Objekte

Mit Hilfe von LDAP-Daten-Interchange-Format (LDIF) können spezifische Objekte aus Snapshots exportiert werden. Die exportierten Objekte werden dann mit ldifde oder anderen LDAP-Tools ins aktive Verzeichnis importiert. Schließlich wird geprüft, ob die Objekte erfolgreich wiederhergestellt wurden und ob sie wie erwartet funktionieren:

ntdsutil

snapshot

list all

mount {Bezeichner}

Abbildung 2: Snapshots auflisten und bereitstellen.
Abbildung 2: Snapshots auflisten und bereitstellen.

Danach wird Ntdsutil beendet, der gemountete Snapshot bleibt bestehen. 

ldifde -f ExportedObjects.ldif -s {SnapshotPfad} -d "DC=example,DC=com"

Import der Objekte in das aktive Verzeichnis:

ldifde -i -f ExportedObjects.ldif -s {ActiveDirectoryServer}

Mit dieser Vorgehensweise lassen sich generell auch komplette Organisationseinheiten wiederherstellen:

ldifde -f DeletedOU.ldif -s {SnapshotPfad} -d "OU=DeletedOU,DC=example,DC=com"

ldifde -i -f DeletedOU.ldif -s {ActiveDirectoryServer}

Abbildung 3: Erweiterte Wiederherstellungsvorgänge lassen sich mit ldifde durchführen.
Abbildung 3: Erweiterte Wiederherstellungsvorgänge lassen sich mit ldifde durchführen.

Spezifisches Attribut aus dem Snapshot exportieren und importieren:

csvde -f ExportedAttributes.csv -s {SnapshotMountPath} -r "(objectClass=user)" -l "cn,mail"

csvde -i -f ExportedAttributes.csv -s {ActiveDirectoryServer}

Entfernen nicht mehr benötigter Snapshots

Snapshots, die nicht mehr benötigt werden, lassen sich jederzeit wieder entfernen:

ntdsutil

snapshot

list all

delete {Bezeichner}

Sicherung von Gruppenrichtlinien

Das Cmdlet Backup-GPO wird verwendet, um eine Sicherung aller oder spezifischer Gruppenrichtlinienobjekte (GPOs) zu erstellen:

Backup-GPO -All -Path "C:\GPOBackup"

Zur Wiederherstellung eines GPO kann das Cmdlet Restore-GPO genutzt werden:

Restore-GPO -Path "C:\GPOBackup"

Erfahren Sie mehr über Backup-Lösungen und Tools