logo

Restauration des objets Active Directory à l’aide de la corbeille

La corbeille Active Directory permet aux utilisateurs de récupérer des objets Active Directory sans avoir à effectuer une restauration à partir d’une sauvegarde et sans être obligés de redémarrer les services de domaine Active Directory ou les contrôleurs de domaine (DC).

Examinons en détail comment fonctionne la restauration d’objets Active Directory à l’aide de la corbeille et analysons ses limites.

Sélection de contenu connexe :

Restauration des objets Active Directory à l’aide de la corbeille AD

Quand la corbeille AD est activée, lorsqu’un objet est supprimé, la plupart de ses attributs sont conservés durant une certaine durée pour permettre leur restauration. Pendant cette période de temps, l’état d’un objet est défini comme supprimé. (Cette période est définie par l’attribut msDS-DeletedObjectLifetime. Par défaut, sa valeur est celle de l’attribut tombstoneLifetime. Si la valeur de l’attribut msDS-DeletedObjectLifetime est nulle ou que celui-ci n’existe pas, sa valeur est alors considérée égale à celle de l’attribut tombstoneLifetime. Si la valeur de ce dernier est également nulle, la période de temps pour les deux attributs est alors définie par défaut à 60 jours.)

Sélection de contenu connexe :

Lorsque le temps défini dans l’attribut d’un objet supprimé est écoulé, l’état de ce dernier est défini comme recyclé. Un objet recyclé ressemble étonnamment à un objet tombstone dont l’attribut isRecycled aurait pris la valeur TRUE. Tout comme pour ce dernier, la plupart de ses attributs sont supprimés, mais il est conservé dans l’Active Directory pour la durée de temps définie dans l’attribut tombstoneLifetime. Il est ensuite définitivement supprimé de l’Active Directory par le processus de nettoyage de la mémoire.

Lorsque la corbeille est activée, le cycle de vie d’un objet supprimé ressemble à ça :

Changements des attributs d’un objet lorsqu’il est placé dans la corbeille

Bien qu’un objet placé dans la corbeille Active Directory conserve plus d’attributs qu’un objet tombstone, sa version restaurée ne sera pas tout à fait identique à l’originale. Découvrons pourquoi.

Voici un compte d’utilisateur que j’ai l’intention de supprimer :

Et voici l’objet dont l’état est défini comme supprimé dans la corbeille :

La plupart des attributs ont été conservés, mais il existe des différences importantes :

  • L’objet a été déplacé. L’objet a été déplacé vers le conteneur Objets supprimés.
  • L’objet a été renommé. Le nom de l’objet a été mis à jour à l’aide des attributs Common-Name DEL:Object-Guid.
  • L’objet a de nouveaux attributs. L’attribut isDeleted a pris la valeur TRUE et l’attribut LastKnownParent a désormais une valeur. La valeur d’un nouvel attribut, msDS-LastKnownRDN, correspond au dernier nom unique relatif connu de l’objet (cet attribut permet à la corbeille de rétablir correctement le RDN lors de la restauration, même si la modification du nom de l’objet a donné lieu à la suppression de tout ou partie du RDN original).
  • Deux attributs ont été supprimés. Deux attributs, objectCategory et sAMAccountType, sont, quant à eux, toujours supprimés lorsqu’un objet est placé dans la corbeille. Si l’objet est récupéré, la valeur objectCategory est automatiquement définie sur la valeur la plus précise de son attribut objectClass. Celle de l’attribut sAMAccountType est, quant à elle, calculée à partir de la valeur des attributs userAccountControl (pour les objets Utilisateur) ou groupType (pour les objets Groupe).

Les lecteurs qui ont un œil attentif auront également remarqué qu’il manque les attributs manager et memberOf dans ma capture d’écran. En réalité, ils sont juste masqués. Ces deux attributs ont tous les deux des valeurs de lien (c’est-à-dire qu’ils contiennent des liens vers d’autres objets). L’outil que j’utilise (LDP) ne récupère pas les liens désactivés sauf si l’option judicieusement nommée Return Deactivated Links est activée. Si j’avais activé cette fonction, les attributs et leurs valeurs respectives auraient été visibles dans ma capture d’écran, mais je serais passé à côté d’une belle occasion d’apprentissage.

Comment récupérer un objet à partir de la corbeille AD

Avant Windows Server 2012, la restauration d’un objet à partir de la corbeille AD nécessitait l’utilisation d’un outil LDAP ou l’exécution d’une commande PowerShell afin d’établir une liste de l’ensemble des objets supprimés. Vous deviez ensuite passer au crible cette liste pour trouver l’objet supprimé et entrer une nouvelle commande PowerShell pour le restaurer.  Heureusement, la corbeille AD était d’une grande utilité. Son utilisation, en revanche, n’était pas des plus conviviales !

Aujourd’hui, la fonctionnalité de corbeille est intégrée au centre d’administration Active Directory :

Comme vous pouvez le voir, grâce aux filtres de recherche, il est très facile de trouver un objet supprimé.

Pour restaurer un objet, il vous suffit de cliquer sur Restaurer à partir du volet Tâches sur le côté droit de l’écran. Voici à quoi ressemble l’objet restauré :

Inconvénients de la corbeille Active Directory

Bien que la corbeille facilite considérablement la restauration d’objets, elle comporte néanmoins quelques limitations : les objets ne sont conservés que durant une période de temps plutôt courte et certains de leurs attributs sont supprimés. Il existe d’autres désavantages. En voici quelques-uns :

  • Activer la corbeille Active Directory implique une modification du schéma. Une fois la corbeille activée, vous ne pouvez ainsi pas la désactiver sans une restauration complète de la forêt Active Directory.
  • La taille de l’Active Directory augmente. Une fois la corbeille AD activée, les objets supprimés conservent beaucoup plus d’attributs et restent disponibles plus longtemps que les objets tombstone. En conséquence, la taille de l’Active Directory est susceptible d’augmenter légèrement.
  • Activer la corbeille supprime tous les objets tombstone. L’une des conséquences les plus significatives que l’activation de la corbeille entraîne est la perte immédiate de tous les objets tombstone présents dans la forêt Active Directory. Nombreux sont les administrateurs qui en ont fait l’amère expérience.

Toutefois, ces problèmes ne sont pas suffisants pour l’emporter sur les avantages que présente l’activation de la corbeille Active Directory.

Restauration des objets Active Directory sans utiliser la corbeille AD

Afin de nous faire une idée plus précise de l’utilité d’activer la corbeille AD, penchons-nous en détail sur ce qu’implique la restauration d’un objet AD lorsque la corbeille AD est désactivée.

Lorsqu’un objet Active Directory est supprimé d’un domaine sur lequel la corbeille AD n’est pas activée, il devient un objet tombstone. Dépouillé de la plupart de ses attributs, celui-ci est conservé sur le conteneur Objets supprimés pour une durée définie dans l’attribut du domaine tombstoneLifetime. Pendant cette période de temps, l’objet peut techniquement être récupéré, mais les attributs supprimés sont généralement considérés comme irrécupérables. Lorsque la valeur de l’attribut tombstoneLifetime est atteinte, l’objet est supprimé par le processus de nettoyage de la mémoire et cesse d’exister. Voici à quoi ressemble le cycle de vie d’un objet tombstone :

Examinons comment réanimer cet objet tombstone grâce à la fonction Modifier de l’utilitaire LDP :

  1. Cliquez avec le bouton droit sur l’objet tombstone et sélectionnez l’option Modifier.
  2. Dans la zone Modifier l’entrée, saisissez la valeur « isDeleted » dans le champ Attribut, sélectionnez la case d’option Supprimer dans la zone Opération, et cliquez sur le bouton Entrée pour ajouter l’entrée dans la liste.
  3. Dans la zone Modifier l’entrée, saisissez la valeur « distinguishedName » dans le champ Attribut, saisissez le nom unique de l’objet avant sa suppression dans le champ Valeurs, sélectionnez la case d’option Remplacer dans la zone Opération, et cliquez sur le bouton Entrée pour ajouter l’entrée dans la liste.
    Vous vous souvenez lorsque j’ai souligné que l’attribut LastKnownParent pouvait s’avérer utile ? Pas d’inquiétude, si vous ne savez pas quel était le DN de l’objet avant sa suppression, voici une astuce : dans le DN actuel, remplacez la chaîne de caractères à terminaison nulle (« A ») et tout ce qui se trouve à sa droite avec la valeur actuelle de l’attribut LastKnownParent.
  4. Sélectionnez l’option Étendue en bas à gauche de la fenêtre.
  5. Enfin, cliquez sur le bouton Exécuter.

L’objet restauré est de nouveau visible et nous pouvons voir à quoi il ressemble :

Comme vous pouvez le constater, nous avons techniquement récupéré l’objet Utilisateur supprimé. La plupart des informations qu’il contenait avant sa suppression sont néanmoins absentes.

Vous pouvez (en théorie) contourner ce problème en prenant régulièrement des clichés instantanés des volumes à l’aide d’un fournisseur VSS. Ensuite, si vous devez récupérer un objet supprimé, il vous « suffit » de trouver une copie de sauvegarde enregistrée avant la suppression de l’objet, de monter le cliché instantané à l’aide du programme NTDSUTIL, de vous y connecter grâce à l’utilitaire LDAP, de localiser l’objet, de l’exporter vers… bref, peu importe.

Mais attendez, ce n’est pas tout.

Le conteneur Objets supprimés n’a pas non plus une durée de vie éternelleLa valeur de l’attribut judicieusement nommé tombstoneLifetime de l’objet CN=Directory Service,CN=Windows NT,CN-Services,CN=Configuration,ForestDistinguishedName détermine le nombre de jours avant qu’un objet supprimé ne soit définitivement éliminé de l’Active Directory.

La valeur de l’attribut tombstoneLifetime est définie en fonction de la version de Windows Server utilisée lors de la création de la forêt de domaine Active Directory. Par défaut, elle est de 180 jours (configuration actuelle recommandée par Microsoft) pour les forêts créées sous Windows Server 2003 ou une version plus récente. Dans les versions précédentes, la durée par défaut est de 60 jours. Le fonctionnement de l’attribut tombstoneLifetime est d’ailleurs plutôt intéressant et vaut la peine qu’on y prête attention. Si la valeur existe, la durée de vie de l’objet tombstone correspond à la valeur spécifiée. Sauf si celle-ci est inférieure à 2. Dans ce cas, la durée par défaut est soit de 60 jours (à partir de Windows Server 2000 jusqu’à Windows Server 2008) soit de 2 jours (Windows Server 2008 R2 ou versions supérieures). Si aucune valeur n’est définie, la durée de vie par défaut est de 60 jours.

Si la valeur de l’attribut tombstoneLifetime dans votre environnement pique votre curiosité, utilisez ce script PowerShell pour la connaître (vous aurez besoin des outils AD DS et AD LDS) :

(Get-ADObject -Identity "CN=Directory Service,CN=Windows NT,CN=Services,$((Get-ADRootDSE).configurationNamingContext)" -Properties *).tombstoneLifetime

Une fois qu’un objet tombstone a terminé sa durée de vie dans le conteneur Objets supprimés, il est logiquement supprimé de l’Active Directory par le processus de nettoyage de la mémoire. À ce stade, il est définitivement éliminé et n’est plus récupérable.

Comment Netwrix peut vous aider

La corbeille AD constitue un outil très utile pour restaurer des objets supprimés il y a peu de temps. Pour une solution plus complète, optez pour Netwrix StealthRECOVER. Notre outil vous permet de restaurer des objets sauvegardés qui ont dépassé leur durée de vie définie dans l’attribut mdDS-DeletedObjectLifetime et qui ne sont donc plus récupérables à partir de la corbeille AD.