Windows Server 2008 R2 in der Praxis

Workshop: Objekte aus dem Active Directory wiederherstellen

22.08.2012 von Thomas Joos
Das Löschen von Objekten im Active Directory kann verheerende Folgen haben und zeitaufwendige Nacharbeiten erfordern. Windows Server 2008 R2 bietet einen Papierkorb für das Active Directory an. Der folgende Beitrag erläutert praxisnah die Wiederherstellung von Objekten und Organisationseinheiten.

Windows Server 2008 R2 bietet für die Wiederherstellung von Objekten eine neue Funktionsebene für das Active Directory an. Der Papierkorb steht erst dann zur Verfügung, wenn ein Administrator mit Enterprise-Administrator-Rechten ihn aktiviert.

Da der Papierkorb ein optionales Feature ist, sollten Sie dieses erst dann aktivieren, wenn Sie die Funktion auch produktiv nutzen wollen. Nach der einmaligen Aktivierung lässt sich diese Funktion nicht mehr deaktivieren. Aber nun der Reihe nach.

Papierkorb aktivieren

Die Aktivierung erfolgt über das Active-Directory-Modul der PowerShell. Dieses starten Sie in der Programmgruppe Verwaltung über den Link Active Directory Module for Windows PowerShell:

  1. Geben Sie in der PowerShell nach dem Start den Befehl Get-ADOptionalFeature ein.

  2. Anschließend fragt Sie die Befehlszeile nach dem Filter. Hier verwenden Sie am besten den Platzhalter *.

  3. Als Nächstes zeigt die PowerShell Informationen zu den optionalen Features an. Im Bereich EnabledScopes ist dies der Wert { }, was bedeutet, dass dieses Feature noch deaktiviert ist. Wichtig ist, dass der Wert bei RequiredForestMode auf WindowsServer2008R2Forest steht und aktiviert ist.

  4. Um den Papierkorb zu aktivieren, geben Sie den Befehl Enable-ADOptionalFeature "Recycle Bin Feature" ein.

  5. Anschließend fragt die PowerShell nach dem Scope. Hier verwenden Sie ForestOrConfigurationSet.

  6. Nun benötigen Sie das Target. Geben Sie hier als Wert die Bezeichnung Ihrer Gesamtstruktur ein, also den FQDN, zum Beispiel contoso.com.

  7. Danach müssen Sie noch die Aktivierung bestätigen. Wenn Sie nochmals mit dem Befehl Get-ADOptionalFeature den Status abrufen, wird das Feature als aktiv gekennzeichnet.

Objekte aus dem Active Directory wiederherstellen
Objekte aus dem Active Directory wiederherstellen
Sie können sich den Status des Papierkorbs in der PowerShell anzeigen lassen.
Objekte aus dem Active Directory wiederherstellen
Laden Sie den Container-Konfiguration um den tombstoneLifetime-Wert einzusehen.
Objekte aus dem Active Directory wiederherstellen
Hier sehen Sie den tombstoneLifetime für eine Gesamtstruktur.
Objekte aus dem Active Directory wiederherstellen
Fehlermeldung beim Versuch ein untergeordnetes Objekt wiederherzustellen und Anzeigen von gelöschten Objekten.
Objekte aus dem Active Directory wiederherstellen
Anzeigen von übergeordneten Objekten eines gelöschten Objektes.
Objekte aus dem Active Directory wiederherstellen
Anzeigen und Verwenden eines übergeordneten Objektes.
Objekte aus dem Active Directory wiederherstellen
Anzeigen der übergeordneten OU einer OU.
Objekte aus dem Active Directory wiederherstellen
Wiederherstellen einer OU.
Objekte aus dem Active Directory wiederherstellen
Mit dem Tool Adrestore können Sie gelöschte Objekte wiederherstellen.
Objekte aus dem Active Directory wiederherstellen
Mit dem Tool Object Restore For Active Directory lassen sich gelösche Objekte in einer grafischen Oberfläche wiederherstellen.
Objekte aus dem Active Directory wiederherstellen
In Windows Server 2008 R2 sind Active Directory-Objekte vor dem versehentlichen Löschen geschützt.
Objekte aus dem Active Directory wiederherstellen
Geschützte Objekte in Active Directory können auch durch Administratoren nicht gelöscht werden.
Objekte aus dem Active Directory wiederherstellen
Aktivieren des Systemstatus bei der Konfiguration der Sicherung der Active Directory-Datenbank auf einem Domänencontroller.
Objekte aus dem Active Directory wiederherstellen
So erstellen Sie einen Snapshot von Active Directory.

Die Aktivierung ist einmalig, sie lässt sich nicht mehr rückgängig machen. Das bedeutet, dass Sie die entsprechende Domäne oder die Gesamtstruktur löschen und neu erstellen müssen, um die Funktion wieder zu deaktivieren.

Dieser Artikel basiert auf einem Beitrag unserer Schwesterpublikation TecChannel. (ph)

Inhalt des Papierkorbs anzeigen

Wollen Sie den Inhalt des Papierkorbs anzeigen, verwenden Sie im Active-Directory-Modul der PowerShell, das Sie über die Programmgruppe Verwaltung starten, den Befehl:

Get-ADObject -SearchBase "CN=Deleted Objects,DC=<Domänenname>,DC=<Top-Level-Domänenname>" -ldapFilter "(objectClass=*)" -includeDeletedObjects

Die Option -includeDeletedObjects stellt sicher, dass die PowerShell nicht nur alle herkömmlichen Objekte anzeigt, sondern auch gelöschte Objekte berücksichtigt.

Zustandsmeldung: Sie können sich den Status des Papierkorbs in der PowerShell anzeigen lassen.

Die PowerShell zeigt die GUID des entsprechenden Objektes an. Diese benötigen Sie für die Wiederherstellung. Über das Menü und dann Auswahl von Bearbeiten/Markieren können Sie die GUID in die Zwischenablage kopieren und mit dem Befehl Restore-ADObject -Identity <GUID> das entsprechende Objekt wiederherstellen.

Um Benutzerkonten oder Domänen wiederherzustellen, benötigen Sie das ehemalige übergeordnete Objekt des gelöschten Objekts. Diese Info erhalten Sie über die Option -properties lastknownparent des Befehls Get-ADObject.

Der Active-Directory-Papierkorb im Praxiseinsatz

Vorgabe: Laden Sie die Container-Konfiguration, um den tombstoneLifetime-Wert einzusehen.

Der Papierkorb von Windows Server 2008 R2 verwendet die Werte isDeleted und isRecycled. Ist der Wert isRecycled für ein AD-Objekt auf True gesetzt, können Sie dieses nicht wiederherstellen.

Objekte, bei denen der Wert isDeleted auf True gesetzt ist, lassen sich wiederherstellen, und zwar innerhalb des Tombstone-Lifetime. Dieser beträgt bei Windows Server 2008 R2 180 Tage. Sie finden den jeweiligen Wert für Ihr Active Directory am besten in ADSI-Edit über den Container Konfiguration.

Ablaufdatum: Hier sehen Sie den tombstoneLifetime für eine Gesamtstruktur.

Navigieren Sie zu Konfiguration/Configuration/Services/Windows NT/Directory Service. Rufen Sie die Eigenschaften von Directory Service auf. Den Tombstone-Wert finden Sie auf der Registerkarte Attribut-Editor beim Wert tombstoneLifetime. Sie können den Wert an dieser Stelle auch anpassen; allerdings ist dies in den wenigsten Fällen notwendig.

Sobald Sie ein Objekt im Active Directory löschen, erhält dieses den Wert True bei isDeleted. Der Zeitraum, in dem Sie das Objekt wiederherstellen können, heißt Deleted Object Lifetime (DOL). Dieser Wert beträgt ebenfalls 180 Tage. Sie finden ihn über msDS-deletedObjectLifetime. Nach 180 Tagen erhält das Objekt den Wert True bei isRecycled und lässt sich nicht mehr wiederherstellen. Nach Ablauf der Tombstone-Lifetime löscht Windows das Objekt aus der AD-Datenbank.

Objekte aus dem AD-Papierkorb mit Bordmitteln wiederherstellen

Um gelöschte Objekte wiederherzustellen, verwenden Sie das PowerShell-Modul für Active Directory. Sie benötigen vor allem die beiden CMDlets Get-ADObject und Restore-ADObject: Klicken Sie auf Start/Verwaltung und dann mit der rechten Maustaste auf Active Directory-Modul für Windows PowerShell. Wählen Sie Als Administrator ausführen. Geben Sie in der Eingabeaufforderung den Befehl

Get-ADObject -Filter {<Name des Objekts>} -IncludeDeletedObjects | Restore-ADObject

ein. Wenn Sie zum Beispiel das Benutzerkonto mit dem Anzeigenamen Thomas Joos wiederherstellen wollen, geben Sie

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

ein. Wollen Sie ein untergeordnetes Objekt wiederherstellen, müssen Sie erst alle übergeordneten Objekte wiederherstellen. Mit dem Befehl

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

lassen Sie sich gelöschte Objekte anzeigen.

Folgeerscheinung: Fehlermeldung beim Versuch, ein untergeordnetes Objekt wiederherzustellen, und Anzeigen von gelöschten Objekten.

Haben Sie zum Beispiel eine Organisationseinheit (OU) mit Benutzerkonten gelöscht, müssen Sie erst die OU und dann die einzelnen Benutzerkonten wiederherstellen. Mit Get-ADObject zeigen Sie die Objekte an und übergeben sie mit Pipeline (|) an das Cmdlet Restore-ADObject. Kennen Sie die ursprüngliche Hierarchie der Organisationseinheit nicht, müssen Sie mit dem Cmdlet Get-ADObject die Hierarchie recherchieren:

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -ldapFilter:"(msDs-lastKnownRDN=Thomas Joos)" -IncludeDeletedObjects -Properties lastKnownParent

Dieser Befehl gibt auch übergeordnete Objekte des gelöschten Objektes an.

Objekte und OU anzeigen und wiederherstellen

Mit dem Befehl

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -Filter {lastKnownParent -eq 'OU=Einkauf\\ 0ADEL:26e19d03-80db-4c9c-b7dd-e472193222e0,CN=Deleted Objects,DC=contoso,DC=com'} -IncludeDeletedObjects -Properties lastKnownParent | ft

Lassen Sie sich alle untergeordneten Objekte in der entsprechenden OU anzeigen. Den Namen beziehen Sie aus der Verwendung von

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -ldapFilter:"(msDs-lastKnownRDN=Thomas Joos)" -IncludeDeletedObjects -Properties lastKnownParent

Sie müssen bei der Verwendung im Cmdlet Get-ADObject einen weiteren umgekehrten Schrägstrich im Namen setzen. Stellen Sie in diesem Beispiel also zunächst die Organisationseinheit Einkauf wieder her, bevor Sie das untergeordnete Objekt Thomas Joos wiederherstellen. Sie haben alle bisherigen Untersuchungen mit dem lastKnownParent-Attribut durchgeführt. Dieses verweist auf das direkt übergeordnete Objekt. Allerdings gibt der Befehl nicht an, ob das nächste übergeordnete Objekt ebenfalls gelöscht ist. Sie sollten daher mit dem Wert lastKnownParent überprüfen, ob Einkauf nicht noch einer weiteren Organisationseinheit untergeordnet ist:

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -ldapFilter:"(msDs-lastKnownRDN=Einkauf)" -IncludeDeletedObjects -Properties lastKnownParent

Anzeigen und wiederherstellen von Objekten und ein
Anzeigen und wiederherstellen von Objekten und einer OU
Anzeigen von übergeordneten Objekten eines gelöschten Objektes.
Anzeigen und wiederherstellen von Objekten und einer OU
Anzeigen und Verwenden eines übergeordneten Objektes.
Anzeigen und wiederherstellen von Objekten und einer OU
Anzeigen der übergeordneten OU einer OU.
Anzeigen und wiederherstellen von Objekten und einer OU
Wiederherstellen einer OU.

Im Beispiel sehen Sie, dass die OU Einkauf direkt in der Domäne contoso.com angelegt ist, also keine weitere Organisationseinheit gelöscht wurde. Es reicht folglich, wenn Sie die OU Einkauf wiederherstellen, um das Objekt Thomas Joos wiederherzustellen:

Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=Einkauf)" -IncludeDeletedObjects | Restore-ADObject

Der Befehl stellt allerdings nur die OU, nicht die gelöschten Objekte innerhalb der OU wieder her. Diese müssen Sie manuell herstellen, zum Beispiel mit:

Get-ADObject -SearchBase "CN=Deleted Objects,DC=contoso,DC=com" -Filter {lastKnownParent -eq "OU=Einkauf,DC=contoso,DC=com"} -IncludeDeletedObjects | Restore-ADObject

Objekte aus dem Active Directory mit AdRestore wiederherstellen

Das Löschen von Konten im Active Directory ist rasch passiert und kann unangenehme Auswirkungen haben. Die Wiederherstellung mit Bordmitteln kann aufwendig und zeitintensiv sein. Vor allem ungeübte Administratoren können mit solchen Vorgängen sehr schnell mehrere Stunden oder einen ganzen Tag verbringen.

Für diese Fälle gibt es das Tool AdRestore von Sysinternals. Zwar steht Windows Server 2008 R2 noch nicht auf der Liste der unterstützten Betriebssysteme, aber die Wiederherstellung funktioniert problemlos.

Adrestore: Mit dem Tool können Sie gelöschte Objekte wiederherstellen.

Mit dem Tool lassen sich gelöschte Objekte wiederherstellen, ohne dass Sie die Active-Directory-Werkzeuge verwenden müssen. AdRestore reanimiert nur den Tombstone selbst, stellt aber keine weiteren Daten wieder her. Dadurch fehlen die erweiterten Namensfelder, die Adressinformationen und Organisationsdaten und vor allem die Gruppenmitgliedschaften. Die wichtigsten Daten und allen voran die SID sind nach der Wiederherstellung aber wieder verfügbar.

Die Wiederherstellung der Objekte durch AdRestore erfolgt über die Befehlszeile. Wenn Sie das Tool ohne weitere Optionen aufrufen, zeigt es die gelöschten Objekte an, die es wiederherstellen kann. Mit der Option -r stellen Sie Objekte wieder her. Dabei ist die Syntax recht einfach: adrestore -r <Name oder Teil des Namens>. Das Objekt befindet sich anschließend wieder auf dem Domänencontroller. Damit das Objekt auch im kompletten Active Directory wieder verfügbar ist, müssen Sie eine Replikation starten.

Object Restore for Active Directory

Mit diesem Freeware-Tool von Quest können Sie einzelne, versehentlich gelöschte Objekte einfacher als mit der Windows-Datensicherung wiederherstellen. Das Tool stellt eine grafische Oberfläche zur Verfügung und benötigt zur Wiederherstellung keinen Neustart des Domänencontrollers.

Im Grunde genommen arbeitet das Programm auf dem gleichen Weg wie ADRestore von Sysinternals, allerdings mit grafischer Benutzeroberfläche. Die Software ist nach der Installation sechs Monate lauffähig. Kosten fallen dabei keine an. Offiziell unterstützt das Tool zwar nur Windows Server 2003, bei unseren Tests hat Object Restore for Active Directory aber seine Dienste problemlos auch in einer Windows-Server-2008-(R2)-Domäne verrichtet.

Object Restore for Active Directory: Mit dem Tool lassen sich gelöschte Objekte in einer grafischen Oberfläche wiederherstellen.

Die Domänen, von denen das Tool gelöschte Objekte einlesen soll, fügen Sie per Rechtsklick auf den Menüpunkt Quest Object Restore for Active Directory und dann mit Connect To hinzu. Über das Kontextmenü eines gelöschten Objektes können Sie dieses mit Restore wiederherstellen. Als weitere Informationen sehen Sie im Fenster das Datum der Löschung sowie in welcher OU das Objekt gespeichert war.

Da das Löschen von Objekten noch nicht auf alle Domänencontroller repliziert ist, lässt sich über das Menü Aktion bestimmen, mit welchem Domänencontroller sich das Tool verbinden soll, um gelöschte Objekte anzuzeigen. Da es sich bei dem Programm um ein vollwertiges Snap-In für die MMC handelt, kann man auch spezielle Aufgabenblockansichten anpassen.

Versehentliches Löschen von Objekten in Active Directory verhindern

In Windows Server 2008 R2 sind Active-Directory-Objekte vor dem versehentlichen Löschen geschützt.

Sicherheitsbewusst: In Windows Server 2008 R2 sind Active-Directory-Objekte vor dem versehentlichen Löschen geschützt

Dieser Schutz ist standardmäßig aktiviert. Nachdem Sie über das Menü Ansicht die erweiterte Ansicht aktiviert haben, finden Sie auf der Registerkarte Objekt die Option Objekt vor zufälligem Löschen schützen.

Durch diese Option steuern Sie die Berechtigungen auf der Registerkarte Sicherheit des Objektes. Windows verweigert der Gruppe Jeder den Eintrag Löschen. Dies äußert sich darin, dass ein Administrator vor dem Löschen eines solchen geschützten Objektes zunächst Kontrollkästchen zu dieser Option deaktivieren muss, bevor sich das Objekt löschen lässt. Wenn Sie die Option nicht deaktivieren, erhalten auch Administratoren eine Fehlermeldung, dass der Zugriff verweigert wird.

Active Directory sichern und wiederherstellen

Die komplette AD-Datenbank können Sie in Windows Server 2008 R2 mit der internen Datensicherung sichern. Die Sicherung lässt sich manuell durchführen, Sie können aber auch einen Zeitplan erstellen. Rufen Sie zunächst die Windows-Server-Sicherung auf und starten Sie den Assistenten für eine Einmalsicherung oder einem Sicherungszeitplan. Wählen Sie bei der Option der Sicherung Benutzerdefiniert aus. Die Windows-Serversicherung ist standardmäßig nicht installiert. Sie müssen das Feature über den Server-Manager nachinstallieren.

Sicherheitshalber: Systemstatus bei der Konfiguration der Sicherung der Active-Directory-Datenbank auf einem Domänencontroller aktivieren.

Natürlich besteht auch die Möglichkeit, die Option Vollständig bei einem Domänencontroller auszuwählen. In diesem Fall sichert Windows, neben der Datensicherung, den kompletten Server mit allen vorhandenen Festplatten und Partitionen. Auf der nächsten Seite wählen Sie aus, was Sie sichern wollen. Aktivieren Sie die Optionen Systemstatus und System-reserviert, damit notwendige Daten zur Wiederherstellung von Active Directory mitgesichert werden. Auf der nächsten Seite wählen Sie aus, wo Sie die Daten im Netzwerk sichern wollen. Die Datensicherung unterstützt nicht das Ablegen der Sicherung auf der gleichen Partition.

Durch Aktivierung der Option VSS-Kopiesicherung in den erweiterten Einstellungen nutzt das Sicherungsprogramm den Volumeschattenkopie-Dienst (Volume Shadow Copy Service, VSS). Nach Bestätigung der restlichen Eingaben beginnt der Assistent mit der Sicherung. Das Sicherungsprogramm ermöglicht es, die Datensicherung über die Befehlszeile zu konfigurieren.

Das kann zum Beispiel sinnvoll sein, wenn Sie die Sicherung über ein Skript oder auf einem Core-Server durchführen wollen. Mit dem Befehl

wbadmin start backup -allCritical -backuptarget:<Zielfestplatte> -quiet

sichern Sie die notwendigen Partitionen auf die Zielfestplatte. Durch Eingabe von -quiet müssen Sie die Eingabe nicht bestätigen, sondern die Sicherung beginnt sofort. Mit dem Befehl

wbadmin start backup -include:<Partition1>:,<Partition2>:,<PartitionN> -backuptarget:<Zielfestplatte>: -quiet

werden alle hinterlegten Partitionen in die Sicherung eingeschlossen. Die Partitionen trennen Sie durch Kommas ohne Leerzeichen voneinander.

Snapshots der Active-Directory-Datenbank erstellen

In Windows Server 2008 R2 ist es möglich, einen Snapshot der Active-Directory-Datenbank zu erstellen und diesen bereitzustellen. Diese bereitgestellte Offline-Version der Datenbank können Sie genauso bearbeiten wie die Online-Version.

Einfache Abfolge: So erstellen Sie einen Snapshot von Active Directory.

Windows erstellt den Snapshot als Schattenkopie der Datenbank. Die Bereitstellung der Active Directory-Datenbank führen Sie durch das Tool Dsamain.exe durch. Die Erstellung von Snapshots nehmen Sie mit dem Befehl snapshot in Ntdsutil.exe vor. Auf den Snapshot können Sie mit beliebigen LDAP-Tools zugreifen, zum Beispiel mit Ldp.exe oder dem Snap-In Active-Directory-Benutzer und -Computer,.

Snapshots dürfen nur Domänen-Admins und Organisations-Admins erstellen. Um einen Snapshot bereitzustellen, müssen Sie nicht zwingend einen solchen mit Ntdsutil.exe erstellt haben. Sie können auch eine Datensicherung von Active Directory bereitstellen. Der beste und schnellste Weg, einen Snapshot zu erstellen, ist folgender:

  1. Öffnen Sie eine Befehlszeile und starten Sie Ntdsutil.exe.

  2. Geben Sie snapshot ein.

  3. Geben Sie den Befehl activate instance ntds ein.

  4. Geben Sie create ein. Der Snapshot wird anschließend erstellt und dessen GUID angezeigt.

  5. Geben Sie den Befehl mount <GUID des Snapshots> ein. Mit list mounted sehen Sie alle gemounteten Snapshots. Mit unmount <GUID> heben Sie die Bereitstellung wieder auf, und mit delete <GUID> löschen Sie den Snapshot erneut.

Mit ntdsutil "activate instance ntds" snapshot create quit quit können Sie die Erstellung auch über ein Skript durchführen. Mit dem Befehl dsamain /dbpath <Pfad zur Datenbankdatei> /ldapport <Port> stellen Sie eine Offline-Kopie der Active Directory-Datenbank auch als LDAP-Server bereit. (TecChannel/ph)