Les casse tête de la suppression des comptes utilisateurs Active Directory !

Bonjour à tous

Lors de différentes prestations, j’ai été confronté à la problématique de la suppression des objets dans un annuaire Active Directory.
Cette article traite des points suivants :
- Pourquoi supprimer les comptes utilisateurs.
- Pourquoi en cas de suppression accidentelle d’un compte utilisateur, le recréer avec le même login / mots de passe ne sert à rien ?
- Que se passe t’il quand on supprime un compte utilisateur dans l’annuaire Active Directory ?
- Comment restaurer les comptes utilisateurs dans un annuaire Active Directory sans la corbeille Active Directory ?
- Comment restaurer les comptes utilisateurs dans un annaire Active Directory avec la corbeille Active Directory.

1. POURQUOI SUPPRIMER LES COMPTES UTILISATEURS ?
Quand un utilisateur ou un prestataire quitte la société, une bonne pratique est de bloquer les accès de cet utilisateur. Pour cela, il est possible :
- De désactiver le compte de l’utilisateur.
- De supprimer le compte de l’utilisateur.
Ces 2 méthodes permettront d’arriver au même objectif : l’utilisateur ne peut plus se connecter.
La désactivation du compte permet un retour arrière simple. Si l’utilisateur travaille de nouveau pour l’entreprise (cela arrive plus souvent qu’on le pense), on réactive le compte.
La suppression des comptes utilisateurs permet de diminuer la taille du fichier NTDS.DIT (la base de données Active Directory) surtout si on stocke des informations volumineuses dans l’annuaire comme la photo de l’utilisateur. Cependant la procédure de retour arrière est plus complexe.

2. POURQUOI EN CAS DE SUPPRESSION ACCIDENTELLE D’UN COMPTE UTILISATEUR, LE RECREER AVEC LE MEME LOGIN / MOTS DE PASSE NE SERT A RIEN ?
J’ai remarqué que les équipes informatiques recréés souvent le compte utilisateur supprimé en utilisant le même login / mot de passe.
Cette procédure n’est pas adaptée surtout en cas de suppression accidentelle d’un compte utilisateur. En effet, l’utilisateur pourra ouvrir sa session avec son login / mot de passe. Cependant il rencontrera les probèmes suivants :
- Il perdra l’accès à son profil utilisateur. En effet le profil utilisateur (dossier c:\users\nom_utilisateur) est mappé au SID du compte utilisateur (http://support.microsoft.com/kb/324734/fr). Hors le SID de l’ancien et du nouveau compte ne sont pas les mêmes. Le SID est géréné à la création de l’objet et ne pas peut être réutilisé par un autre compte.
- Il perdra l’accès à tous ses fichiers. En effet il sera nécessaire de remettre le compte utilisateur dans les bons groupes. L’utilisateur perdra l’accès à tous les fichiers sécurisés via le SID de son ancien compte utilisateur.
- Il perdra l’accès à sa boîte aux lettres Exchange (associé via le SID).
Pour toutes ces raisons, je déconseille de recréer un compte utilisateur neuf en cas de suppression accidentel d’un compte utilisateur. Les arguements ci-dessus peuvent être nuancé dans le scénario d’un utilisateur qui revient travailler dans la société après une longue absence. En effet tous ces données auront déjà été probablement déjà supprimées / réorganisées.
Nous verrons dans la suite de cet article que la bonne méthode est de restaurer le compte utilisateur en cas de suppression accidentelle.

3. QUE SE PASSE T’IL QUAND ON SUPPRIME UN COMPTE UTILISATEUR DANS L’ANNUAIRE ACTIVE DIRECTORY ?
Le compte utilisateur n’est pas supprimé réellement de la base de données Active Directory ! Ce comportement s’explique par le mécanisme de réplication Active Directory.
Quand on modifie un objet Active Directory, le numéro de séquence (attribut uSNChanged) est incrémenté. Pour déterminer les objets qu’il doit répliquer depuis un autre contrôleur de domaine, un contrôleur de domaine  liste les objets dont le numéro de séquence a été changé. Il réplique tous les objets dont le numéro de séquence sur l’autre contrôleur de domaine est supérieur.
Hors l’opération de suppression est un changement comme les autres. Ce changement doit être répliqué !!! 

Cas 1 : la corbeille Active Directory n’est pas activée.
Active Directory effectue les actions suivantes lors de la suppression d’un compte utilisateur :
- Définit l’attribut Is Deleted à 1.
- Supprime les attributs inutiles de l’objet. Les attributs systèmes comme ObjectSID (le SID du compte utilisateur) sont conservés.
- Renomme ensuite l’objet.
- Le déplace dans le conteneur suivant (exemple avec le domaine tphat.intra) : CN=Deleted Objects, DC=tphat,DC=intra
Ce conteneur n’est pas visible dans ADSIEDIT. Il faut utiliser l’utilitaire LDP.EXE (exemple sur un contrôleur de domaine Windows 2003).
Dans LDP, aller dans Connection | Bind. Entrer le login, mot de passe et le nom du domaine (nom DNS). Cliquer sur OK.
Aller dans le menu Browse | Search.
Taper comme Base DN : DC=tphat,dc=intra
Sélectionner « One Level » pour le scop.
Cliquer sur Options.
Dans la fenêtre Search Option, cocher Extended pour Search Call Type. Mettre *; dans le champ attributes. Cliquer ensuite sur Controls.
Dans la fenêtre Controls, sélectionner au niveau de Load Predefined le choix Return deleted objects. Décocher Critical. Cliquer sur OK puis dans la fenêtre Search, taper sur Run.
Cliquer sur View | Tree puis saisir DC=tphat,dc=com comme Base DN.
Le  conteneur CN=Deleted Objects apparaît maintenant.
Le compte utilisateur est réellement supprimé de l’annuaire Active Directory après un intervalle de temps appelé TombstoneLifeTime. Par défaut cette valeur est de 180 jours pour les domaines créés sous Windows 2003 SP1 et ultérieur, 60 jours pour les domaines créés à l’époque de Windows 2000.
Cette valeur est contrôlée par l’attribut tombstoneLifetime de l’objet suivant (dans mon cas le domaine s’appelle TPHAT.INTRA) :
CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=tphat,DC=intra

Cas 2 : La corbeille Active Directory est activée :
Quand la corbeille Active Directory est activée, un objet ayant été supprimé peut avoir deux états :
- Deleted : dans ce mode, tous les attributs de l’objet sont conservés. Par défaut l’objet reste dans ce mode pendant une période de temps égale à la TombstoneLifeTime
- Recycled : dans ce mode, tous les attributs non systèmes sont supprimés (attributs autres que ObjectSID). En fait ce mode correspond à l’état Tombstone d’un objet quand la corbeille Active Directory n’est pas activée. Au bout de la période de TombstoneLifeTime, l’objet est réellement supprimé de l’annuaire.
Avec la corbeille Active Directory si la TombstoneLifeTime est de 180 jours, un objet est réellement supprimé au bout de 360 jours. Pour plus d’informations :
http://windowsitpro.com/windows-server-2008/revive-deleted-ad-objects-active-directory-recycle-bin

4. COMMENT RESTAURER LES COMPTES UTILISATEURS DANS UN ANNUAIRE ACTIVE DIRECTORY SANS LA CORBEILLE ACTIVE DIRECTORY ?
Il existe deux méthodes pour restaurer un compte utilisateur :
- Méthode 1 : la restauration autoritaire Active Directory avec l’outil NTDSUTIL : cette procédure consiste à restaurer un contrôleur de domaine. Pour cela il faut  redémarrer le contrôleur de domaine en mode Restauration des services d’annuaires. Une fois la restauration terminée, il faut lancer l’outil NTDSUTIL et incrémenter le numéro d’USN du compte utilisateur. Cette seconde action est nécessaire car en cas de restauration non autoritaire, le compte utilisateur serait supprimé dès que le contrôleur de domaine restauré répliquerait avec les autres contrôleurs de domaine. Cette technique fonctionne mais s’avère complexe et entraîne une indisponibilité du contrôleur de domaine. En mode restauration des services d’annuaires (DSRM), ce dernier n’authentifie plus les utilisateurs. De plus, il faut restaurer les appartenances aux groupes via l’importation d’un fichier LDIF.
- Méthode 2 : réanimation du compte utilisateur (tombstone reanimation) : cette action peut être effectué à l’aide de l’outil AdRestore (http://technet.microsoft.com/en-us/sysinternals/bb963906.aspx) ou en applicant le chapitre « How to manually undelete objects in a deleted object’s container » de l’article Microsoft http://support.microsoft.com/kb/840001/en-us.

5. COMMENT RESTAURER LES COMPTES UTILISATEURS DANS UN ANNAIRE ACTIVE DIRECTORY AVEC LA CORBEILLE ACTIVE DIRECTORY :
Pour rappel, la forêt doit être en mode natif et la fonctionnalité de la corbeille Active Directory doit avoir été activée (action irréversible).
Pour cela, taper la commande suivante (exemple avec le domaine tphat.intra) :
Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=tphat,DC=intra -Scope ForestOrConfigurationSet -Target ‘tphat.intra’
Avec Windows 2008 R2, il faut utiliser la commande PowerShell Restore-ADobject pour restaurer un compte utilisateur.  Voir la procédure Microsoft : http://technet.microsoft.com/fr-fr/library/dd379509(v=ws.10).aspx
Il existe aussi des outils gratuits qui permettent d’effectuer cette action comme ADRecycleBin (gratuit). Cet outil est téléchargeable à l’adresse suivante : http://www.overall.ca/index.php?option=com_content&view=article&id=40:adrecyclebin&catid=15:adrecyclebinexe&Itemid=64
Sous Windows 2012, la console Active Directory Administrative Center intègre un assistant pour restaurer les objets avec la corbeille Active Directory.

A+
Guillaume MATHIEU
Consultant PROSERVIA
La connaissance s’accroit quand on la partage

À propos de Guillaume Mathieu

Consultant - Formateur chez PROSERVIA (Pôle Conseil Expertise)
Ce contenu a été publié dans Active Directory, Sécurité, Windows 2003 Server, Windows Server 2008, Windows Server 2008 R2. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


six × 2 =

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>