Tags: Backup, System-Management, Active Directory
Die Möglichkeit, vom Active Directory Snapshots anzufertigen, gibt es neu seit Windows Server 2008. Analog zu einem Snapshot vom Dateisystem wird damit eine Kopie der AD-Datenbank mit allen Objekten erstellt. Damit kann man etwa alte AD-Datenbankstände einsehen und den Status von Objekten und deren Attributen über die Zeit nachverfolgen, also Vorher-Nachher-Vergleiche anstellen. Nicht möglich ist es, den kompletten AD-Stand aus einem Snapshot zu rekonstruieren.
AD-Snapshots werden etwa im Laufe einer Windows-Serversicherung automatisch angefertigt, sofern man sie nicht explizit ausgeschlossen hat, können aber auch jederzeit manuell angefertigt werden.
Snapshots manuell erstellen und Snapshots auflisten
Einen Snapshot kann man mit dem Kommandozeilentool
ntdsutil.exe
manuell erstellen. Dazu ruft man es innerhalb einer Eingabeaufforderung mir Administratorrechten auf und gibt folgende Befehle ein:
activate instance ntds
snapshot
create
Beendet wird das Tool durch die zweimalige Eingabe von quit
. Diese Befehle können auch aus einer Zeile als Argument an ntdsutil.exe
übergeben werden, etwa um den Snapshot per Aufgabenplaner zu automatisieren:
ntdsutil "activate instance ntds" snapshot create quit quit
Gibt man im Kontext „Snapshot“ den Befehl list all
statt create
ein, erhält man eine Auflistung aller angefertigten Snapshots.
Snapshots mounten, Objekte ansehen und vergleichen
Beim Auflisten der Snapshots sind diese jeweils mit einer Nummer versehen. Active-Directory-Snapshots verbergen sich jeweils hinter denen, die den Buchstaben des Systemlaufwerks vor ihrer UID haben.
mount ‹Nummer›
hängt man einen Snapshot ins Dateisystem ein. ntdsutil.exe
gibt zurück, unter welchem Ordner dies geschieht. Hierhin navigiert man im Explorer und öffnet im Bereitstellungspunkt den Ordner %SystemRoot%\NTDS
. Mit gedrückter ‹Shift-Taste› ruft man per rechter Maustaste das erweiterte Kontextmenü der Datei ntds.dit
auf, klickt auf den Menüpunkt „Als Pfad kopieren“ bekommt dadurch den Pfad- und Dateinamen der Snapshot-Datenbankdatei in die Zwischenablage.
Diesen verwendet man in einer zweiter Eingabeaufforderung: In dieser stellt man die Snapshot-Datenbankdatei per LDAP auf einem alternativen Port zur Verfügung:
dsamain -dbpath "‹\Pfad\zur\›ntds.dit" –ldapport 10389
weiter. Als LDAP-Port taugt auch ein beliebiger anderer unbenutzter Port.
dsamain.exe
startet eine separate Instanz der Active-Directory-Domänendienste auf dem angegebenen Port und informiert darüber, wenn es damit fertig ist. Der Vorgang dauert ein paar Sekunden.
Nun kann man die Snapshot-Datenbank mit den üblichen AD-Verwaltungstools bearbeiten, etwa dem MMC-Snap-In „Active-Directory-Benutzer und -Computer“. Hier klickt man mit der rechten Maustaste auf die Domäne und wählt aus dem Kontextmenü den Punkt „Domänencontroller ändern“. Hier wählt man die Option, sich mit einem bestimmten Controller oder AD-LDS-Instanz zu verbinden und gibt den eigenen DC an, gefolgt von einem Doppelpunkt und dem oben angegebenen LDAP-Port. Verwendet man AD-Snapshots öfter, bietet es sich an, für diese Verbindung extra eine Management-Console zu erstellen und diese zu speichern. Diese kann man dann etwa parallel zur Console für das aktuelle AD verwenden, um Objekte und Attribute zu vergleichen. Die Snapshot-Datenbank kann nicht geschrieben werden, entsprechend sind alle GUI-Elemente zur Bearbeitung deaktiviert. Dies bietet auch gleich eine gute visuelle Hilfe.
Alternativ können auch der ADSI-Editor adsieedit.msc
oder ldp.exe
verwendet werden; sie bieten beide jeweils die Möglichkeit, sich mit benutzerdefinierten LDAP-Instanzen zu verbinden.
Snapshots unmounten, Snapshots löschen
Die für einen gemounteten Snapshot gestartete LDAP-Instanz beendet man, indem man das laufende dsamain.exe
per ‹Ctrl›-‹C› abbricht. Die Service-Instanz wird daraufhin heruntergefahren und eine entsprechende Meldung angezeigt.
Die Aufhebung der Bereitstellung des Snapshots im Dateisystem geschieht in ntdsutil.exe
, indem man im „Snapshot“-Kontext den Befehl
unmount ‹Nummer›
absetzt. Die gegenwärtig eingebundenen erfährt man per
list mounted
Löschen kann man einen Snapshot per
delete ‹Nummer›
im „Snapshot“-Kontext. Beide Befehle funktionieren analog zu den anderen auch auf einer Zeile der Eingabeaufforderung:
ntdsutil "activate instance ntds" snapshot "unmount ‹Nummer›" quit quit
respektive
ntdsutil "activate instance ntds" snapshot "delete ‹Nummer›" quit quit
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Active-Directory-Snapshots mit Sysinternals AD-Explorer erstellen und vergleichen
- Schema-Änderungen im Active Directory
- Active Directory mit nicht-autoritativem Restore wiederherstellen
- Benutzer im Active Directory mit Power Automate for Desktop erstellen
- Wiederherstellung von Objekten aus dem Active Directory-Papierkorb delegieren
Weitere Links