Souvenez-vous de l’un de mes précédents articles qui vous expliquait comment réanimer des objets supprimés accidentellement. Cela n’était pas très simple et surtout, un grand nombre d’attributs sur cet objet réanimé étaient tout simplement perdus. Il était donc plus intéressant de passer par des outils tiers qui permettaient d’avoir de bien meilleurs résultats.
Ce temps est révolu depuis la sortie de Windows Server 2008 R2 car Microsoft a intégré le concept de “Corbeille”.

Comment ça marche?
Le principe est simple, c’est le même fonctionnement que la corbeille du système: lorsque vous supprimez un fichier, il se retrouve dans la corbeille et vous avez la possibilité si vous le souhaitez de restaurer ce fichier dans son état avant suppression.
On a maintenant la même chose dans Active Directory Domain Services (et même Active Directory Lightweight Directory Services): si vous supprimez un objet, un compte utilisateur par exemple, celui-ci n’est pas réellement supprimé et vous pourrez le restaurer très facilement si finalement il ne fallait pas le supprimer!
L’intérêt est qu’avec cette corbeille, l’objet que vous restaurez récupère l’intégralité de son état juste avant la suppression: l’appartenance aux différents groupes et l’ensemble des autorisations qui lui étaient affectées. C’est donc très pratique en cas de suppression accidentelle ou un peu trop hâtive.
Cependant un object supprimé n’est pas gardé indéfiniment dans la base de données Active Directory. Avant Windows Server 2008 R2, un objet supprimé se trouvait dans le conteneur “Deleted Objects” et était conservé pendant une durée de 180 jours par défaut. Après cette durée, l’objet était supprimé définitivement de la base de données Active Directory.
Dans Windows Server 2008 R2, quand la corbeille est activée, le cycle de vie d’un objet supprimé est modifié. L’objet est toujours déplacé dans le conteneur “Deleted Objects” et son DN est modifié mais tous ses attributs sont conservés et l’objet n’est supprimé que de manière logique, ce qui correspond à un état nouveau dans Windows Server 2008 R2.
Pour mieux comprendre ce nouveau cycle de vie des objets supprimés, voici un petit schéma:

Un objet peut donc être restauré dans son état complet uniquement pendant la durée de vie des objets supprimés, c’est à dire durant 180 jours après sa suppression. Une fois cette durée atteinte, l’objet est recyclé et se retrouve dans le même état qu’un objet défunt de Windows Server 2003 ou Windows Server 2008, et il perd donc une grande partie de ses attributs.
Par défaut, les durées de vie des objets supprimés et des objets recyclés est de 180 jours.
Comment l’activer?
En effet, cette fonctionnalité est désactivée par défaut dans Windows Server 2008 R2. La première étape va donc être celle de l’activation de la fonctionnalité. Pour cela, la première condition va être d’augmenter le niveau fonctionnel de la forêt à Windows Server 2008 R2. Cela veut donc dire que tous les contrôleurs de domaine de votre domaine doivent être sous Windows Server 2008 R2.
Attention: Le fait d’activer la corbeille est irréversible. Une fois cette fonctionnalité activée, il n’est plus possible de la désactiver.
Il existe deux méthodes pour activer la corbeille: PowerShell ou LDP.exe. Je ne vous montrerai que la méthode d’activation via Windows PowerShell car c’est celle qui est recommandée par Microsoft.
On va donc utiliser le nouveau module PowerShell pour Active Directory. Pour cela, rendez-vous dans le menu Démarrer, puis dans les Outils d’administration et enfin faites un clic droit sur Module Active Directory pour Windows PowerShell et sélectionnez Exécuter en tant qu’administrateur.
Une fois la fenêtre chargée, tapez la commande suivante:
Enable-ADOptionalFeature –Identity “CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=romainlacour,DC=lan” –Scope ForestOrConfigurationSet –Target “romainlacour.lan”
Bien sûr vous devez remplacer les parties “romainlacour” , “lan” et “romainlacour.lan” par votre nom de domaine équivalent.

Restauration d’un objet supprimé
Maintenant que l’on sait comment activer la fonctionnalité, il nous reste à voir comment restaurer un objet depuis la corbeille.
Il y a deux possibilités pour restaurer un objet: utiliser l’outil LDP.exe ou bien Windows PowerShell.
Pour l’instant nous allons rester sur la méthode basée sur PowerShell. Pour cela deux cmdlets vont nous être utiles: Get-ADObject et Restore-ADObject.
Voici un exemple avec un compte d’utilisateur “Romain Lacour” dans mon domaine “romain.lacour.lan”. Comme vous pouvez le voir sur l’image ci-dessous, l’utilisateur appartient au groupe “IT Management”.

Pour le test, je supprime donc le compte. Comme vous le voyez ci dessous, il n’est plus là.
Maintenant, il ne nous reste plus qu’à tester la restauration du compte d’utilisateur et vérifier qu’on le récupère dans le même état.
Dans l’invite de commandes PowerShell avec le module pour Active Directory, exécutez la commande suivante:
Get-ADObject –Filter {displayName –eq “Romain Lacour”} –IncludeDeletedObjects | Restore-ADObject
Il vous suffit de remplacer le filtre pour correspondre à l’objet que vous souhaitez restaurer. Dans mon exemple l’objet supprimé portait le nom complet “Romain Lacour”, j’ai donc choisi ce filtre, mais il est tout a fait envisageable de filtrer sur n’importe quel autre attribut de l’objet.
Il n’y a rien de très compliqué et l’avantage est que l’objet récupère réellement son état avant suppression. Il n’y a aucune perte d’information comme vous pouvez le voir sur la capture suivante. J’ai bel et bien récupéré l’objet avec l’appartenance au groupe “IT Management” comme elle l’était avant suppression.
Voila, j’espère que vous avez compris l’utilité de cette nouvelle fonctionnalité et que vous saurez l’utiliser quand vous en aurez besoin.
Je referai peut-être un petit article pour voir comment restaurer un objet avec LDP.exe ou comment restaurer plusieurs objets.
En effet, le fait de restaurer plusieurs objets nécessite de faire attention car ils doivent être restaurés dans un conteneur existant, ce qui peut rendre les choses plus complexes dans le cas d’une suppression d’unité d’organisation par exemple.