Gelöschte Active-Directory-Objekte wiederherstellen mit PowerShell

    Wird ein AD-Objekt wie zum Beispiel ein User-Objekt gelöscht, ist es noch nicht ganz verloren. Es wird bekanntlich in einen speziellen Container (auch Tombstone genannt) mit dem Namen "CN=Deleted Objects" verschoben, indem es in der Regel noch 180 Tage (dieser Wert kann variieren) frisch gehalten wird. Dieser Container wird in der regulären Active Directory Benutzer- und Computer-Konsole nicht angezeigt, kann aber mit dem Tool Ldp.exe sichtbar gemacht werden.

    Um ein solches Objekt per PowerShell und den Cmdlets aus dem ActiveDirectory-Modul wiederherzustellen, muss beim Abrufen des Objekts per Get-ADObject der Parameter IncludeDeletedObjects gesetzt werden. Die auf diese Weise gefunden Objekte werden per Restore-AdObject-Cmdlet wiederhergestellt.

    User anlegen, löschen und wiederherstellen

    Ein einfaches Beispiel soll das Prinzip veranschaulichen. Zu Testzwecken wird in der aktuellen Domäne per New-AdUser ein neuer User angelegt:

    New-AdUser –Name Hannes

    Dieser User wird gleich danach wieder per Remove-AdObject gelöscht:

    Get-AdUser–Identity Hannes | Remove-AdObject –Confirm:$False

    Beim Abrufen per Get-AdObject wird der Parameter IncludeDeletedObjects gesetzt:

    Get-AdObject –Filter { objectClass –eq "user" –and Name –like "*Hannes*” –IncludeDeletedObjects

    Der gelöschte User sollte dabei ausgegeben werden. Der nächste Aufruf stellt den gelöschten User wieder her:

    Get-AdObject –Filter { objectClass –eq "user" –and Name –like "*Hannes*” –IncludeDeletedObjects | Restore-AdObject

    Die hier beschriebene Funktionalität hat nichts mit dem AD-Papierkorb zu tun, der mit Windows 2008 R2 eingeführt wurde.

    Keine Kommentare