Introduction
Qui n’a jamais expérimenté une suppression involontaire d’un compte utilisateur dans Active Directory en s’arrachant les cheveux pensant qu’il va falloir faire une restauration autoritaire pour le retrouver, à condition d’avoir des backups!
Je vais donc vous montrer dans ce mini-article qui va faire office de petite astuce pour pouvoir récupérer un objet qui a été supprimé malencontreusement. C’est ce que nous appelons la réanimation d’objets défunts.
Je vous ai préparé une webcast (en fin d’article) qui vous permettra de suivre les étapes de cette procédure en détail pour que vous puissiez le refaire vous même et conserver cette vidéo dans un coin au chaud, pour le jour où vous en aurez besoin.
Cette procédure est déjà traitée sur un certain nombre de sites, mais pas forcément en français et pas forcément de façon très claire. Je vais donc essayer d’apporter ma version, en espérant qu’elle aidera toujours certaines personnes.
Ce qu’il faut savoir…
Lorsque l’on supprime un objet dans Active Directory, comme un compte utilisateur, celui-ci n’est pas supprimé instantanément de la base de données car cette suppression doit d’abord être répliquée sur les autres contrôleurs de domaine, Active Directory Domain Services étant un système distribué. Celui-ci est donc marqué pour la suppression via l’attribut “IsDeleted” de l’objet qui se voit attribuer la valeur TRUE et l’objet est déplacé dans le conteneur caché “Deleted Objects” de la partition d’annuaire correspondante. On appelle l’objet se retrouvant dans cet état un “tombstone”. En effet, chaque partition possède son propre conteneur “Deleted Objects”, mis à part la partition de schéma car il n’est pas possible de supprimer des objets du schéma.
Cependant, les objets ne sont pas stockés éternellement dans ces conteneurs “Deleted Objects”. Un processus s’exécute sur chaque contrôleur de domaine (Garbage Collection) et supprime les objets expirés. La durée de vie par défaut des “tombstones” est de 180 jours depuis Windows Server 2003 SP1 (60 jours avant cette version).
Cette durée de vie des objets supprimés dans les conteneurs Deleted Objects peut être modifiée en changeant la valeur de l’attribut “tombstoneLifetime” dans les propriétés de l’objet “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=domaineRacineForet” de la partition de configuration. Voir la capture d’écran ci-dessous.

Maintenant que nous comprenons un peu mieux le fonctionnement de la suppression des objets dans Active Directory, rentrons dans le vif du sujet avec le détail des étapes pour faire cette réanimation!
Sauvons nos objets!
Pour réanimer nos objets défunts (tombstoned objects) , nous allons utiliser l’outil LDP.exe, présent nativement sur Windows Server 2008. L’astuce va venir du fait qu’il faut activer le contrôle 1.2.840.113556.1.4.417 lors de la recherche pour que le conteur Deleted Objects soit visible, vu qu’il est caché par défaut.
Commençons par lancer l’outil LDP.exe. Une fois lancé, allons dans le menu Connection et cliquons sur Connect… pour nous connecter à un contrôleur de domaine. Dans mon cas, le contrôleur de domaine est la machine locale, je laisse donc localhost.

Une fois connecté, rendons nous encore une fois dans le menu Connection, mais cette fois pour sélectionner l’option Bind… Ceci permet de spécifier le compte d’utilisateur avec lequel nous allons travailler. Attention d’utiliser un compte d’utilisateur ayant les autorisations suffisantes, le plus simple étant d’utiliser un compte faisant parti du groupe Domain Admins. Attention toutefois car toute erreur pourrait être fatale vu que vous disposerez de toutes les autorisations sur le domaine.

Une fois authentifié, il va falloir activer le contrôle 1.2.840.113556.1.4.417 pour que l’on puisse avoir accès au conteneur Deleted Objects lors de notre recherche. Pour cela rendons nous dans le menu Options et selectionnons Controls (Contrôles en français). Une fois dans la fenêtre Controls, sélectionnons Return deleted objects (Retourner les objets supprimés en français) dans la liste Load Predefined en bas à droite de la fenêtre. Vérifiez que le contrôle actif est bien le numéro 1.2.840.113556.1.4.417 et cliquez sur OK pour valider.

Ensuite connectons nous à la partition qui nous intéresse. Dans mon cas, je vais réanimer un compte utilisateur, je me connecte donc à la partition de domaine, “DC=supinfo,DC=lan”, aussi appelée Default Naming Context. Pour cela, rendez-vous dans le menu View (Affichage) et sélectionnez Tree (Arborescence) et dans la liste Base DN, sélectionnez votre partition de domaine. Si votre domaine s’appelle supinfo.lan, alors le DN est “DC=supinfo,DC=lan”.

Dans la partie gauche de LDP, vous devez maintenant retrouver votre partition de domaine, dépliez là et rendez vous dans le conteneur “CN=Deleted Objects,DC=votreDomaine”. Cherchez maintenant l’objet que vous souhaitez réanimer, faites un clic-droit dessus et sélectionnez Modify (Modifier). Bien sûr le Distinguished Name (DN) de votre objet a été modifié lors de la suppression. La première étape va donc de le changer à nouveau pour le faire correspondre à l’OU dans laquelle vous souhaitez restaurer votre objet. Dans mon cas, je veux restaurer l’objet dans l’unité d’organisation Formateurs, qui se trouve dans l’OU Lyon, qui elle même se trouve à la racine de mon domaine. Le DN est donc le suivant: “CN=Romain Lacour,OU=Formateurs,OU=Lyon,DC=supinfo,DC=lan”.
Première étape: Dans le champ Attribute (Attribut), saisir distinguishedName et dans Values (Valeurs), saisir le DN de votre objet. Ensuite dans Operation, sélectionnez Replace (Remplacer) et cliquez sur le bouton Enter (Entrer).
Seconde étape: Il faut supprimer la valeur de l’attribut isDeleted. Pour cela, dans Attribute, tapez isDeleted et sélectionnez directement l’opération Delete puis cliquez sur Enter.
Enfin sélectionnez l’option Extended en bas à gauche de la fenêtre.
Vous devriez obtenir un écran comme celui-ci:

Si tout est bon, vous pouvez cliquer sur Run (Exécuter) pour lancer les modifications. Fermez ensuite la fenêtre de modification et vérifiez qu’il n’y a pas eu d’erreur.
Ensuite il ne vous reste plus qu’à aller vérifier dans la console Utilisateurs et Ordinateurs Active Directory, si votre object est bien à nouveau présent.
Conclusion
Voilà, nous avons vu en détail la procédure de réanimation des objets, vous pouvez appliquer cela à n’importe quel objet dans Active Directory ayant été supprimé de n’importe quelle partition (excepté celle du schéma ne pouvant pas en supprimer d’objets).
Cette procédure ne ramène pas tous les attributs de votre objet. Malheureusement, beaucoup d’informations sont définitivement perdues malgré cette réanimation et il vous faudra reconfigurer l’objet manuellement. Cependant le SID, le GUID et descripteur de sécurité ainsi que n’importe quelle attribut indexé. A savoir que depuis Windows Server 2003 SP1, l’attribut sIDHistory est aussi retenu.
J’espère que cette procédure vous sera utile et que maintenant vous ne perdrez plus de cheveux lors de la suppression d’un objet qui ne devait pas l’être. :)
Voici la webcast que vous pouvez visionner, cela vous facilitera peut-être la tâche:
Microsoftement vôtre!