Windows 2008 R2 Active Directory Recycle Bin (AD Papierkorb)

Hallo zusammen,

Ich habe mir mal den AD Papierkorb von Windows 2008 R2 angeschaut.

Hilfreiche Links:

Voraussetzungen:

  • Alle DomainController des Forests sind auf Windows 2008 R2
  • Forest Functional Level ist Windows 2008 R2

Starten der "Active Directory Power Shell"

Setzen des Forest Functional Levels mit dem Befehl:

Set-ADForestMode –Identity foo.com -ForestMode Windows2008R2Forest

Aktivieren des AD Papierkorbs. Dieser Befehl muss zwingend eingegeben werden, ansonsten ist der AD Papierkorb nicht aktiv.

Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=foo,DC=com’ –Scope ForestOrConfigurationSet –Target ‘foo.com’

Dadurch werden folgende AD Settings gemacht:

  • Im Container "CN=Partitions,CN=Configuration,DC=Foo,DC=com" wird das Attribut "msDS-EnabledFeature" gesetzt
  • Die Attribute "tumbstoneLifetime" und "msDS-DeletetObjectLifetime" im Container "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=Foo,DC=com" bestimmen die Werte für den Verbleib im Papierkorb, bzw als Tumbstone. Hat "msDS-DeletetObjectLifetime" keinen Wert, wird automatisch der Wert von "tumbstoneLifetime" übernommen.

Also dann schauen wir mal wie das Funktioniert und erstellen eine OU

In dieser "TestOU" habe ich zwei User erstellt.

Also dann löschen wir mal die OU

Ah yeah - In den Eigenschaften der OU unter der Registerkarte "Object" das Häcklein bei "Protect object from accidential deletion"

Okay - wir löschen ja eine ganze OU inklusive aller darin enthaltenen Objekte.

So, die OU ist gelöscht....

Nun wollen wir mal die Objekte im Papierkorb anzeigen

Get-ADObject –Searchbase „CN=Deleted Objects,DC=foo,DC=com“ –LdapFilter „(objectclass=*)“ –Includedeletedobjects | Format-List

Oder wir zeigen uns erst mal alle Objekte vom Typ "organizationalUnit" an

Get-ADObject -filter {objectclass -eq "organizationalUnit"} -IncludeDeletedObjects

Jetzt können wir die OU ja über die "ObjectGUID" ansprechen

Get-ADObject -Filter {ObjectGUID -eq "bf48364d-52fb-46e3-a044-6fda27b2ebb8"} -IncludeDeletedObjects

Und durch das pipen an das CMDlet  Restore-ADObject wird die OU wiederhergestellt.

Get-ADObject -Filter {ObjectGUID -eq "bf48364d-52fb-46e3-a044-6fda27b2ebb8"} -IncludeDeletedObjects | Restore-ADObject

Also bleiben noch die zwei Accounts zum wiederherstellen.

  • Get-ADObject -filter {samaccountname -eq "m.lisa"} -IncludeDeletedObjects
  • Get-ADObject -filter {samaccountname -eq "m.twain"} -IncludeDeletedObjects

Die User-Objekte werden so gefunden, dann kann der Restore durchgeführt werden.

  • Get-ADObject -filter {samaccountname -eq "m.lisa"} -IncludeDeletedObjects | Restore-ADObject
  • Get-ADObject -filter {samaccountname -eq "m.twain"} -IncludeDeletedObjects | Restore-ADObject

Nun sind die OU und die Useraccounts wieder in Active Directory wiederhergestellt.

Fazit

Der AD Papierkorb funktioniert und ist eigentlich eine recht tolle Angelegenheit. Jedoch müssen die Search Filter genau stimmen und hier habe ich einige Zeit verbracht die entsprechenden Search Kriterien zusammenzustellen. Aber Übung macht den Meister. Aber ein UI hätte da auch nicht geschadet ;o)

Grüsse
Andres Bohren