[UPDATE] La corbeille Active Directory


Active Directory / mercredi, juin 1st, 2011

Dans les versions précédentes de Windows Server 2008, il était possible de restaurer des objets Active Directory supprimés accidentellement. Seulement, la procédure était « assez lourde » car il fallait redémarrer le ou les DC concernés en mode de restauration des services d’annuaire et utiliser l’utilitaire ntdsutil en utilisant une sauvegarde précédemment réalisée. Egalement avec la réanimation des désactivations (tombstone), les objets étaient ainsi stockés dans la base dans un certain laps de temps (généralement la valeur tombstoneLifetime est de 180 jours et 60 jours pour Windows 2003 R2 et antérieur), et il n’y avait pas besoin de mettre hors ligne les DC.

Avec Windows Server 2008 R2, il est possible d’activer une corbeille Active Directory ! Tour d’horizon…

Cette corbeille est désactivée par défaut car elle nécessite un niveau fonctionnel de votre forêt à 2008 R2. L’activation de cette fonctionnalité grossira le fichier NTDS.DIT d’au moins 10 à 20 % sur l’ensemble des DC. L’activation de cette fonctionnalité est disponible pour AD DS et LDS et est irréversible.

La corbeille est une bien meilleure solution que les précédentes car avec les anciennes méthodes, si vous restauriez une sauvegarde 3 jours, les attributs modifiés entre temps ne pourront être récupérés.

Windows Server 2008 R2 introduit des nouvelles notions d’états: supprimé (attribut IsDeleted) et recyclé (attribut IsRecycled), qui permettent à un objet de conserver toutes ses propriétés.

Testez le niveau fonctionnel de votre forêt à l’aide de la commande Powershell suivante (à exécuter dans le module AD de Powershell ou alors, lancez la commande suivante)

 import-module ActiveDirectory 
get-adforest -current loggedonuser

Nous voyons ici que la forêt est Windows 2003, il convient donc la passer en 2008 R2. Voici comment procéder:

set-adforestmode -identity transtec-labo.local -forestmodewindows 2008r2forest

Activer la fonction de la corbeille

Toujours avec Powershell, lancez la syntaxe suivante:

Enable-ADOptionalFeature -Identity 'CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=transtec-labo,DC=local' -Scope ForestOrConfigurationSet -Target 'mondomaine.local'
OU
enable-adoptionalfeature 'Recycle Bin Feature' -Scope ForestorconfigurationSet - target mondomaine.local
La corbeille dispose d’un GUID unique: 766ddcd8-acd0-445e-f3b9-a7f9b6744f2a
Vérifier que la corbeille est bien active
Lancez une console LDP.EXE et vérifier la CN=Configuration => Services => Windows NT => Directory Services => Optional Features => Recycle Bien Feature et vérifiez la présence de l’attribut msDS-EnabledFeatureBL
Ou en Powershell, la présence de l’attribut.
get-ADOptionalFeature -filter *
Vérifier les objets supprimés
Toujours avec LDP.EXE, dans les contrôles, sélectionnez Return Recycled objects et Return Deleted objects puis ouvrez DC=mondomaine,DC=local au niveau de l’arborescence à afficher.
Restaurez des objets
Maintenant que vous avez pu identifier les objets à restaurer, quelques commandes powershell vous permettront de restaurer simplement ces objets:
Get-adobject -filter 'givenname -eq "corbeille" -Includedeletedobjects | restore-adobject
OU pour un UO
Get-adobject -ldapfilter:"(msDS-LastKnownRDN=corbeille)" -Includedeletedobjects | restore-adobject
OU
Get-adobject -SearchBase "CN=Deleted Objects,DC=mondomaine,DC=local" -filter {lastknownparent -eq "OU=utilisateurs,dc=mondomaine,dc=local"} -includedeletedobjects | restore-adobject
Toute la syntaxe est disponible à cette adresse => http://technet.microsoft.com/fr-fr/library/dd379509(WS.10).aspx

Mise à jour du 01/06/2011

L’outil ADRestore.NET de Guy Teverovsky permet de restaurer encore plus simplement les objets Active Directory. L’outil est disponible ici http://blogs.microsoft.co.il/blogs/guyt/archive/2007/12/15/adrestore-net-rewrite.aspx