Optimierungen für Ntdsutil, Teil 1

24. November 2010

Mit der Einführung des Windows Server 2008 kamen sechs große Verbesserungen für das Tool Ntdsutil ins Spiel: Funktionalitäten wie Snapshots, das Activate Instance, das Verzeichnisdienst-Verhalten (DS Behavior), lokale Rollen (Local Roles), die Verwaltung von Partitionen (Partition Management) und das Installieren von Medium (IFM, Install From Media) sind hier zu nennen.

Sean Deuby stellt diese Neuerungen in einer Artikelreihe vor.

Administratoren im Umfeld des Active Directory (AD) sollten Ntdsutil kennen – das Kommandozeilen-Tool eignet sich für kritische Wartungsarbeiten am Active Directory (AD). Eine wesentliche Arbeitserleichterung bringt die Snapshot-Funktionalität des Tools mit sich, das ab Windows Server 2008 bei Ntdsutil zur Verfügung steht.

Diese Funktionalität wird auch als „Active Directory Database Mounting Tool” bezeichnet und ist ein neues Kommando im Rahmen von Ntdsutil, das zu einem bestimmten Zeitpunkt einen Snapshot der AD-Datenbank mit all ihren Objekten und Attributen erstellt. Im Zusammenspiel mit der Reanimation von Tombstone-Objekten (AD-Objekte, die zwar gelöscht aber noch nicht aus der AD-Datenbank endgültig entfernt wurden) lässt sich damit eine komplette Wiederherstellung von gelöschten Objekten und ihren Attributen erzielen.

In früheren Versionen war es notwendig, dass bei einem versehentlichen Löschen etwa einer kompletten OU (Organisationseinheit, Organizational Unit) der AD-Administrator einen vollständigen autoritative Wiederherstellung durchzuführen hatte. Und zu einer derartigen Aktion musste ein Domänencontroller (DC), der sich in einer Produktivumgebung befand, offline genommen werden. Dann galt es eine Sicherung (von einer Festplatte oder einem Bandlaufwerk) zu mounten und eine nicht autoritative Wiederherstellung aus der Sicherung auszuführen.

Anschließend war das Ntdsutil-Kommando zu einer autoritativen Wiederherstellung nötig, um die betreffenden Objekte auszuwählen, die wiederhergestellt werden mussten Und schließlich musste man den DC nochmals neu starten. Zudem waren dann auch in vielen Fällen noch die Gruppenmitgliedschaften wieder neu einzutragen.

Aus dieser gerafften Darstellung lässt sich schon vermuten, dass es sich um einen aufwändigen Vorgang handelt – und das wurde in der Regel auch noch verschärft, da in den meisten Fällen die Unternehmensführung nachfragt (beziehungsweise nachfragen lässt), wann der Zugriff auf die Ressourcen im Netzwerk wieder gegeben ist.

Mit der Reanimation von Tombstone-Objekten, die Microsoft beim Windows Server 2003 eingeführt hat, steht ein Weg zur Verfügung, um gelöschte Objekte aus dem AD-Container DeletedObjects an ihren ursprünglichen Platz zurückzuführen. Doch die meisten Attribut-Werte eines gelöschten Objekts werden weggeworfen. Daher ist eine alleinige Wiederherstellung der Tombstones nicht besonders hilfreich. Erst wenn die Attribute wieder so hergestellt sind, wie sie vor dem Löschen vorlagen, lassen sich die AD-Objekte wieder sinnvoll verwenden. Angenommen ein Benutzerkonto wird gelöscht und danach reanimiert, dann wären die Attribute für MemberOf und das Kennwort leer.

Viele Systemadministratoren und verschiedene Dritthersteller haben Methoden kreiert, um diese Informationen beim Löschen zu behalten und sie dem gelöschten Objekt zuzuordnen, um letztendlich den Wiederherstellungsprozess zu beschleunigen. Handelt es sich beim betreffenden Objekt um ein Benutzerobjekt, wird auch das Kennwort beim Löschen weggeworfen. Und damit kommt ein großes Problem auf den Administrator zu: Speziell wenn viele Benutzerobjekte wiederhergestellt werden müssen und für alle neue Kennwörter zu erzeigen sind.

Man kann das Bit 3 (0x00000008) des Attributes sSearchFlags eines attributeSchema-Objekts verwenden und damit vorgeben, welche Attribute bei einem Tombstone-Objekt verbleiben (sprich nicht gleich beim ersten Löschen unwiederbringlich mit gelöscht werden). Dabei kann man auch das Kennwort für das Benutzerobjekt angeben. Mehr Informationen zum Wiederbeleben von Tombstone-Objekten bietet der Technet-Beitrag „Reanimating Active Directiory Tombstone Objects“.

Da ein Snapshot alle Objekte und Attribute des Verzeichnisdienstes zum dem Zeitpunkt enthält, an dem der Snapshot ausgeführt wurde, lässt sich aus diesem Snapshot das gelöschte Objekt ansehen und der Administrator kann daraus alle Attribute auch extrahieren. Die einzige Bedingung dafür: Es muss ein „zeitnaher“ Snapshot vorliegen, der erstellt wurde, ehe das Objekt gelöscht und somit zu einem Tombstone gemacht wurde.

Danach lassen sich diese Attribute dem reanimierten Objekt wieder hinzufügen und das gewünschte Ergebnis liegt vor. Um einen Snapshot ausführen zu können, muss der Administrator Mitglied in der Gruppe der Enterprise- oder Domänenadministratoren sein.

ngenommen ein Administrator hat versehentlich das Benutzerobjekt des Chefs (also des CEO) gelöscht. Da der Administrator bereits früher die SearchFlags so modifiziert hat, dass das Kennwort eines gelöschten Objekts nicht verloren geht, kann er mit einem frei verfügbaren Tool zur Reanimation von Tombstones wie etwa den „AD Tombstone Reanimation Cmdlets“ (von SDM Software).

Das gelöschte Objekt in den ursprünglichen Zustand zurückversetzen und die Löschung aufheben. Danach könnte er den passenden Snapshot mounten und muss dabei den Anweisungen folgen, die der Technet-Beitrag „Active Directory Domain Services Database Mounting Tool (Snapshot Viewer or Snapshot Browser) Step-by-Step Guide“ verdeutlicht.

Dann lassen sich die wichtigen Attribute des Objekts mit einem Tool wie „Joewares AdFind“ extrahieren und dann diese Informationen dem wiederhergestellten Objekt mit einem Werkzeug wie „Joewares AdMod“  hinzufügen. Damit sieht das zuvor versehentlich gelöschte Benutzerobjekt wieder genauso aus wie vorher – ohne dass der aufwändige Weg über die autoritative Wiederherstellung einzuschlagen wäre.

Zudem besteht die Möglichkeit, diesen Prozess zu automatisieren. Darren Mar-Elia zeigt in seinem Blog zum Thema „PowerShell Script to leverage AD Tombstonde cmdlets“ wie hier vorzugehen ist. Zudem verweist er auf ein passendes Skript von Guido Grillenmeier.

Das Erstellen eines Snapshots geht ganz einfach von der Hand: Der Administrator muss nur ein Kommandozeilenfenster auf dem DC öffnen (mit administrativen Rechten auf dem DC) und dann Ntdsutil starten. Dann ist der Befehl:

activate instance ntds

einzugeben. Damit wird die Instanz des Directory angegeben, von der der Snapshot erstellt werden soll. Dann muss noch der Befehl

create

eingegeben werden und es wird ein Snapshot erstellt, wie er zum Beispiel in Abbildung 1 zu sehen ist.

Lesen Sie auch