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:
- http://technet.microsoft.com/de-de/library/dd392261(WS.10).aspx
- http://blog.dikmenoglu.de/PermaLink,guid,18ffdd1d-9bad-4ae6-ad21-7e1a9f36d635.aspx
- http://blog.icewolf.ch/archive/0001/01/01/active-directory-restore-with-adrestore.net-gui.aspx
- http://blog.icewolf.ch/archive/0001/01/01/example-ldap-querys.aspx
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)