(Dies ist die am 28. Februar 2009 überarbeitete Fassung des Artikels, der ursprünglich auf der Beta 3 von Windows Server 2008 beruhte.)
Ein feines Feature ist im Windows Server 2008 verfügbar. Es können Snapshots der Active-Directory-Datenbank gemacht werden um später, evtl. im Falle einer versehentlichen Löschung von Objekten, den alten Zustand zu prüfen.
Diese Informationen sind ein unschätzbarer Vorteil bei der Wiederherstellung („Reanimierung“) von AD-DS-Objekten aus dem Tombstone-Bereich. BuiltIn- und 3rd-Party-Tools ermöglichen die Reanimierung eines gelöschten Objekts in Verbindung mit der Ergänzung der verlorenen Attribute aus dem Snapshot.
Um dieses Feature zu verwenden, sind folgende Schritte notwendig:
Snapshot erzeugen (regelmäßig z.B. wöchentlich per Taskplaner)
- Snapshot mounten oder eine ältere Version des AD DS aus dem Backup wiederherstellen (natürlich an eine alternative Stelle im Dateisystem)
- Snaphot oder wiederhergestelltes AD DS bereitstellen
- Inhalt mit LDP, „adsiedit.msc“ oder AD Benutzer & Computer analysieren
Snapshot erzeugen
Der AD Snapshot wird mit „ntdsutil“ erzeugt:
ntdsutil: snapshot snapshot: activate instance NTDS snapshot: create Creating snapshot ... Snapshot set {4ec66502-d944-4290-b6b5-62c3dbfee9a2} generated successfully.
Dieser Zustand ist jetzt festgehalten und kann später immer wieder zu Vergleichen herangezogen werden.
Abbildung 1: Snapshot mit „ntdsutil“ erzeugen
Snapshot finden und mounten
Ein Snapshot der AD-DS-Datenbank kann jetzt im Dateisystem bereitgestellt werden. Alle vorhandenen Snapshots können aufgelistet werden, um den richtigen zu finden:
snapshot: list all
Der „list all“-Befehl nummeriert alle vorhandenen Snapshots durch. Der „mount“ des Snapshots kann sehr einfach mit der laufenden Nummer durchgeführt werden. Ob man jetzt die „11″ oder die „12″ nimmt spielt keine Rolle.
snapshot: mount 11 Snapshot {ef83f91c-4324-47a2-a2ff-b8e1f99075ae} mounted as C:\$SNAP_200704291352_VOLUMEC$\
Abbildung 2: Snapshot mit „ntdsutil“ mounten
Abbildung 3: Vom Snapshot bereitgestellte AD DS Datenbank
Den Zustand der AD-DS-Datenbank kann man in dem $snap..\windows\ntds Verzeichnis mit „esentutl /mh ntds.dit“ prüfen. Dort sollte die „ntds.dit“ den Zustand „clean shutdown“ besitzen.
Abbildung 4: AD-DS-Datenbank ist „clean shutdown“
Snapshot AD DS Bereitstellen
Nachdem jetzt die Datenbankdatei bereitgestellt wurde, kann ein temporärer Verzeichnisprozess gestartet werden. Dazu wird „dsamain.exe“ verwendet. Man denkt sich dabei eine Portnummer aus, die noch von keinem anderen Prozess verwendet wird, und legt ein temporäres Verzeichnis an, das als Logverzeichnis verwendet wird.
„dsamain“ erhöht die Portnummern für die weiteren drei notwendigen Ports einfach um „eins“. Diese weiteren Ports können natürlich auch als Befehlszeilenoption von „dsamain“ angegeben werden, „dsamain /?“ hilft.
dsamain -dbpath C:\$SNAP_200802161155_VOLUMEC$\Windows\NTDS\ntds.dit -logpath c:\temp -ldapport 15000
Abbildung 5: Snapshot der AD DS Datenbank bereitgestellt
Inhalt mit LDP prüfen
Jetzt kann man sich mit LDP zum LDAP-Port (in diesem Fall Port 15000) verbinden und in aller Seelenruhe den AD-DS-Zustand im Snapshot begutachten.
Abbildung 6: Verbinden mit LDP (hier Port: 15000)
Abbildung 7: Analysieren mit LDP
Inhalt mit „adsiedit.msc“ oder AD Benutzer & Computer prüfen
Nicht nur „ldp“ gibt die alten Informationen her. Auch „adsiedit.msc“ oder AD Benutzer & Computer können verwendet werden.
Abbildung 8: Analysieren mit „adsiedit.msc“
Abbildung 9: Analysieren mit AD Benutzer & Computer
Objekt reanimieren und aus dem Snapshot vervollständigen
In diesem Zustand kann die Information aus dem bereitgestellten Snapshots verwendet werden, um ein reanimiertes Objekt mit den Snapshot Informationen zu vervollständigen. „oirecmgr“ von http://www.one-identity.net/tools/snapshot/ bietet diese Möglichkeit. Als Identifikator des wiederherzustellenden Objekts dient dessen GUID. Diese GUID kann entweder aus dem Snapshot ermittelt werden oder auch aus dem Live-AD-DS, wenn man die gelöschten Objekte anzeigt.
Abbildung 10: ObjectGUID eines Benutzers
Diese GUID wird nun zur Reanimierung verwendet. Nach der Reanimierung werden alle Attribute und Gruppenmitgliedschaft automatisch aus dem Snapshot übernommen.
oirecmgr -o cf114d4c-c536-4c7c-9a8c-4d38540ec181 -sh longhorn:15000 -ol -real
Abbildung 11: Reanimierung und Zuordnung der Attribute aus dem Snapshot
Aufräumen
Nachdem die notwendigen Informationen aus dem Snapshot gewonnen wurden, kann die Bereitstellung des Snapshots aufgehoben werden. Folgende Schritte sind dazu notwendig:
- dsamain mit ctrl-c beenden
-
Snapshot dismounten (wieder mit "ntdsutil")
snapshot: list mounted 1: 2008/02/16:11:55 {4ec66502-d944-4290-b6b5-62c3dbfee9a2} 2: C: {41e10137-c425-403f-b42f-64f99a466b4a} C:\$SNAP_200802161155_VOLUMEC$\ snapshot : unmount 1 Snapshot {41e10137-c425-403f-b42f-64f99a466b4a} unmounted.
Abbildung 12: Beenden von „dsamain“ mit Ctrl-C
Abbildung 13: Snapshot mit „ntdsutil“ dismounten
Snapshots verwalten
Im „snapshot“-Kontext von „ntdsutil“ gibt es noch die Kommandos:
- list all: um alle Snapshots anzuzeigen
- list mounted: um alle bereitgestellten Snapshots anzuzeigen
- delete: um einzelne Snapshots zu löschen
AD DS Daten aus einer Datensicherung wiederherstellen
Im Normalbetrieb eines DC wird hoffentlich regelmäßig eine Datensicherung des AD DS durchgeführt. Die AD-DS-Datenbank muss nicht unbedingt durch einen Snapshop bereitgestellt werden. Auch die „ntds.dit“ aus der Sicherung kann wie ein Snapshot gemountet werden. Zu diesem Zweck stellt man die „ntds.dit“ an einer alternativen Stelle im Dateisystem bereit.
Abbildung 14: Bereitstellen der „ntds.dit“ aus der Datensicherung
Jetzt kann man, wie ab dem Punkt „Snapshot AD DS Bereitstellen“ beschrieben, fortfahren und diese „ntds.dit“ bereitstellen.
http://faq-o-matic.net/?p=622