Rechercher dans ce blog

jeudi 31 octobre 2013

WIN 2008 - Supprimer un contrôleur de domaine corrompu ou absent

(Active Directory Metadata Cleanup)

Introduction

La suppression d’un contrôleur de domaine dans une architecture Active Directory doit absolument passer par une rétrogradation de ce dit contrôleur. Mais que faire s’il n’est plus possible de rétrograder le contrôleur de domaine à l’aide de DCPROMO? Il faudra réaliser manuellement la suppression des métadonnées relatives à ce contrôleur de domaine que l’on appelle donc communément  Metadata cleanup.

Le sujet est très largement traité et dispose d’une documentation déjà très complète comme, par exemple, l’article Technet Clean Up Server Metadata : Active Directory, cependant nous avons toutefois décidé de vous le proposer afin de permettre à tout un chacun de mieux appréhender cette opération qui peut paraître très obscure au premier abord.

Nous verrons donc ensemble les différentes méthodes qui vous permettront de réaliser cette opération, de la plus fastidieuse (méthode manuelle) à la plus efficace (méthode graphique introduite avec Windows 2008). Nous conclurons enfin en fournissant les moyens de post-vérifications possibles pour garantir le succès de l’opération.

La méthode manuelle: qu’est-ce qu’un Metadata Cleanup ?

Le nettoyage des métadonnées d’un contrôleur de domaine corrompu n'est pas une obligation mais plus que fortement recommandé. Tant que ce contrôleur de domaine n’est pas explicitement supprimer de votre annuaire, il sera soumis inlassablement à des problèmes (essentiellement de réplication), polluant vos journaux d’évènements et même pouvant rendre impossible la réalisation de certaines opérations (par exemple l’augmentation du niveau fonctionnel du domaine ou de la forêt).

Afin de mieux comprendre cette opération, nous allons voir, dans un premier temps, comment réaliser manuellement un nettoyage des métadonnées d’un serveur corrompu. L’opération est plutôt fastidieuse et par forcément très efficace en vue des outils que Microsoft met à notre disposition pour la réaliser cependant elle a une vertu éducative (cette méthode est très largement décrite depuis l’article Complete Step by Step to Remove an Orphaned Domain Controller que je vous conseille de consulter).

Pour mener à bien cette opération, nous allons utiliser exclusivement l’outil ADSI Edit disponible par défaut sur Windows Server 2008 mais qui nécessitera d’être installé sur les versions 2000 et 2003. L’outil est intégré dans Windows Server 2003 Service Pack 2 32-bit Support Tools ou Windows 2000 Service Pack 4 Support Tools que vous devrez télécharger et installer au préalable.

ATTENTION !!! Faites preuve de vigilance avec ADSI Edit car un mauvais usage pourrait entrainer des dommages irréparables sur votre annuaire. Soyez toujours sûr des opérations que vous réalisez… et d’autant plus avec cet outil.

 

Voici donc les actions à mener pour réaliser un Metadata Cleanup manuellement :

  • Saisie des maîtres d’opérations associés au contrôleur de domaine corrompu : Cette action ne fait pas partie à proprement parler de l’opération de Metadata Cleanup mais une partie des outils que nous présentons dans cet article vérifie que le contrôleur à « nettoyer » ne dispose pas de maîtres d’opérations et si nécessaire en force la saisie. Toutefois, il est en général de mise et même nécessaire de lancer la saisie dès que l’on constate l’indisponibilité d’un maître d’opérations. Je vous conseille de consulter pour cela notre article relatif à la saisie des maîtres d’opérations Localiser et déplacer les maîtres d'opérations Active Directory et plus particulièrement le chapitre relatif à la saisie Forcer le déplacement des maîtres d'opérations.
  • Suppression de l’objet NTDS Settings associé au contrôleur de domaine corrompu : L’objet NTDS Settings contient toutes les informations relatives à un contrôleur de domaine au sein de l’annuaire. Chaque contrôleur de domaine se voit donc associé à un objet NTDS Settings lors de sa promotion. Nous devons donc le supprimer ainsi que le conteneur associé. Nous allons commencer par lancer ADSI Edit en saisissant la commande « adsiedit.msc » depuis « Démarrer » | « Exécuter ». Une fois ADSI Edit lancé, réaliser un clic droit sur « Modification ADSI » et choisissez « Connexion… ». Depuis la fenêtre « Paramètres de connexion », sélectionnez le contexte d’attribution « Configuration » comme point de connexion. 
image

image

image

L’objet NTDS Settings est situé dans l’arborescence « CN=Sites » | « CN=[MONSITE] » | « CN=Servers » | « CN=[MONSERVER] » | « CN=NTDS Settings ». Nous allons simplement supprimer le conteneur qui porte le nom du serveur corrompu en réalisant un clic droit sur ce dernier et en choisissant « Supprimer ». Sécurité oblige, par deux reprises, ADSI Edit vous demandera de confirmer votre choix. En effet, selon le type d’objet que vous viendrez à supprimer, cela pourrait entrainer des effets désastreux sur votre annuaire. Soyez donc très vigilant !

image

image

image

  • Suppression de l’objet Ordinateur associé au contrôleur de domaine corrompu : Chaque contrôleur de domaine est associé à un objet de type Ordinateur situé dans l’unité d’organisation « Domain Controllers » et accessible depuis la console « Utilisateurs et ordinateurs Active Directory » ou appelé communément ADUC. Nous allons toutefois continuer à utiliser ADSI Edit car sous Windows Server 2008, supprimer l’objet depuis ADUC réalise automatiquement un Metadata Cleanup (Nous verrons cela un peu plus tard).

Depuis ADSI Edit, Accéder donc de nouveau à la fenêtre « Paramètres de connexion » mais cette fois-ci en sélectionnant le contexte d’attribution « Contexte d’attribution de noms par défaut ».  Naviguez jusqu’à L’objet Ordinateur situé dans « OU=Domain Controllers ».

image

Vous pourrez également vous rendre compte grâce à ADSI Edit et en double cliquant sur votre objet « CN=[MONSERVER] » qu’il est lui-même un conteneur pour les informations relatives à la souscription NTFRS ou DFSR pour la réplication du dossier SYSVOL. Ils sont sous la forme d’un objet « NTFRS-subscriber » ou « msDFSR-Subscriber » (sur un domaine de niveau fonctionnel 2008 avec réplication DFS-R pour le dossier SYSVOL) et permettent de définir l’appartenance d’un contrôleur de domaine à un jeu de réplication spécifique.

image

image

Comme précédemment, réaliser un clic droit sur votre l’objet « CN=[MONSERVER] » et choisissez l’option « Supprimer ».

image

Suppression de l’objet NTFRS-member ou msDFSR-Member associé au contrôleur de domaine corrompu : Un objet de type « NTFRS-member » ou « msDFSR-Member »  (sur un domaine de niveau fonctionnel 2008 avec réplication DFS-R pour le dossier SYSVOL) correspondant au jeu de réplication associé au dossier SYSVOL, doit être également supprimé pour qu’il n’y ait plus de référence à ce contrôleur de domaine dans le cadre de la réplication du dossier SYSVOL. Toujours depuis ADSI Edit et depuis le contexte d’attribution « Contexte d’attribution de noms par défaut », naviguez jusqu’à « CN=System » | « CN=File Replication Service » | « CN=Domain System Volume (SYSVOL share) » ou « CN=System » | « CN=DFSR-GlobalSettings » | « CN=Topology »  selon que vous utilisez du NTFRS ou du DFS-R et supprimez l’entrée correspondante à votre serveur à l’aide d’un clic droit et en sélectionnant « Supprimer ».

image

image

Nous avons enfin réalisé le Metadata Cleanup. En conclusion, l’opération de nettoyage des métadonnées d’un contrôleur de domaine corrompu n’est pas une opération si complexe une fois décortiquée. Il nécessite simplement la suppression de trois objets.

La méthode classique par ligne de commande

La méthode historique et la plus communément utilisée depuis l’apparition d’Active Directory est de réaliser l’opération de Metadata Cleanup par le biais de l’outil en ligne de commande Ntdsutil. Ce dernier a évolué avec l’apparition de chaque nouvelle version de Windows Server et s’est simplifié dans le cadre d’un Metadata Cleanup. Cela induit surtout que selon la version de Ntdsutil que vous utiliserez, vous n’aurez pas accès aux mêmes commandes.

En effet, bien qu’il soit désormais peu probable que vous soyez amené un jour à réaliser cette opération sur les versions Windows Server 2000 ou Windows Server 2003 RTM (non service packé), il peut être intéressant de savoir que la méthode est différente par rapport aux versions ultérieures. Sachant que cette section représente donc un intérêt très limité, nous nous contenterons de vous rediriger vers la base de connaissance Microsoft relative à ce sujet How to remove data in Active Directory after an unsuccessful domain controller demotion si vous êtes confronté à ce cas de figure.

Nous allons donc voir comme réaliser l’opération sur une version Windows Server 2003 SP1 ou ultérieure. Commencez par ouvrir une invite de commandes et saisissez « ntdsutil » pour invoquer l’outil. Il est intégré de base dans toutes les versions de Windows Server.

ATTENTION !!! Faites preuve de vigilance avec NTDSUTIL car un mauvais usage pourrait entrainer des dommages irréparables sur votre annuaire. Soyez toujours sûr des opérations que vous réalisez… et d’autant plus avec cet outil.

image

Une fois Ntdsutil lancé, nous allons exécuter la commande « metadata cleanup ».

image

Il ne reste plus qu’a saisir la commande « remove selected server [Distinguished Name du serveur à supprimer] on [FQDN du serveur réalisant l’opération] » (Nous donnons plus de détails sur ces deux paramètres ci-dessous).

Remarque: cette commande n’est donc pas accessible sur les versions antérieures à Windows 2003 SP1 tel que nous l’énoncions plus haut. 

Distinguished Name du serveur à supprimer : Il faut indiquer ce que l’on appelle le Distinguished Name du serveur concerné par le Metadata Cleanup qui est situé sur la partition de Configuration d’Active Directory. Si nous prenons l’exemple d’un serveur nommé WIN2003 sur le site Active Directory Default-First-Site-Name sur le domaine CORPNET.NET, nous aurons le Distinguished Name « CN=WIN2003,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=CORPNET,DC=NET ». Pour vous aider à le déterminer, vous pouvez facilement retrouver ces informations depuis la console Sites et services Active Directory ou l’éditeur Adsiedit.

FQDN du serveur réalisant l’opération : ce paramètre est optionnel et permet de préciser depuis quel serveur sera réalisée l’opération. Si vous ne précisez pas cette option alors l’opération sera tout simplement réalisée localement. Pour rappel, le FQDN et le nom DNS complet d’une machine sur un réseau constitué de [Hostname].[DomainName]. Par exemple, si vous nous devions réaliser l’opération sur un contrôleur ayant comme nom d’hôte WIN2008  et avec comme nom de domaine CORPNET.NET alors le FQDN du serveur est WIN2008.CORPNET.NET.

image

Ntdsutil vous demande de confirmer l’opération et de vous assurer que le serveur est définitivement hors connexion. Selon les cas, le retour d’un contrôleur de domaine ayant fait l’objet d’un Metadata Cleanup peut avoir des effets désastreux sur votre annuaire.

image

Ntdsutil a également la capacité de détecter que le contrôleur de domaine à supprimer hébergait des maîtres d’opérations. Si cela est le cas, il tentera dans un premier temps de les transférer ce qui normalement ne doit jamais fonctionner (le transfert de rôle nécessite la présence sur le réseau du détenteur du ou des maîtres d’opérations) et fera le cas échéant une saisie. Il est préférable de réaliser l’opération de saisie des rôles au préalable tel que nous le disions en première partie.

image

image

Ntdsutil liste les opérations qu’il réalise durant le Metadata Cleanup et nous pouvons nous rendre compte qu’il ne procède pas différemment  de la méthode manuelle que nous avons vue en première partie. Il supprime le contrôleur de domaine en tant que membre FRS pour le dossier SYSVOL, l’objet Ordinateur et l’objet NTDS Settings.

image

Vous pouvez ensuite fermer Ntdsutil en saisissant par deux fois la commande  « quit ».

Il faudra toutefois réaliser encore la suppression de l’objet Server depuis la console Sites et Services Active Directory qui n’est certes pas d’une absolue nécessité mais sans doute plus propre.

image

La méthode introduite avec Windows 2008 : La console Utilisateurs et ordinateurs Active Directory

Depuis l’apparition des dernières versions des consoles Utilisateurs et ordinateurs Active Directory et Sites et Services Active Directory introduites avec Windows Server 2008 et également disponibles avec RSAT (Microsoft Remote Server Administration Tools), la procédure Metadata Cleanup s’est réellement simplifiée car il suffit simplement de supprimer l’objet associé à votre ancien contrôleur de domaine pour que le nettoyage de ses métadonnées soit réalisé.

En passant simplement par la mmc « Utilisateurs et Ordinateurs Active Directory », sélectionnez l’objet associé au contrôleur de domaine concerné par le Metadata Cleanup depuis le conteneur « Domain controllers » et sélectionner à l’aide d’un clic droit l’option « Supprimer ». Confirmez ensuite la demande de suppression.

image

image

La demande de suppression détecte que l’objet concerné est un contrôleur de domaine et vous invite à réaliser une rétrogradation à l’aide de l’assistant d’installation Active Directory (DCPROMO). Sachant qu’il nous est impossible d’exécuter l’assistant sur ce dit contrôleur, nous cochons la case « Ce contrôleur de domaine est définitivement hors connexion… ».

image

La méthode par interface graphique détecte également la présence d’un maître d’opérations ou de la fonction catalogue global (pour plus d’information sur le catalogue global, rendez-vous sur l’article Le catalogue global Active Directory). Il vous propose donc de forcer leur déplacement sur le serveur où est exécutée l’opération de Metadata Cleanup.

imageimage

 

 

 

 

 

Pour finaliser l’opération de suppression, lancez à présent la console « Sites et services Active Directory » et supprimer l’objet de votre ancien contrôleur de domaine depuis le site concerné. En l’occurrence, sur l’exemple ci-dessous, il s’agit du site « Default-First-Site-Name ».

image

La méthode introduite avec Windows 2008 : La console Sites et services Active Directory

Comme nous le disions précédemment, il est également possible de réaliser le Metadata Cleanup depuis la console Sites et services Active Directory. La méthode est encore plus rapide qu’avec ADUC.

Pour réaliser le Metadata Cleanup, ouvrez la console « Sites et services Active Directory », naviguez jusqu’à l’objet NTDS Settings relatif au contrôleur de domaine corrompu et supprimer à l’aide d’un clic droit et en sélectionnant l’option « Supprimer ».

image

Confirmez la suppression de l’objet et cocher la case « Ce contrôleur de domaine est définitivement hors connexion… ».

imageimage

Comme ADUC, la console Sites et services Active Directory détecte également la présence d’un maître d’opérations ou de la fonction catalogue global. Il vous propose donc de forcer leur déplacement sur le serveur où est exécutée l’opération de Metadata Cleanup.

imageimage

Il ne vous reste plus qu’à supprimer le conteneur de l’objet NTDS Settings portant le nom de votre serveur corrompu et le Metadata Cleanup est terminée.

image

La méthode alternative par script

La dernière et ultime méthode est d’utiliser un script pour réaliser le Metadata Cleanup. Cette méthode pourrait être utile s’il est nécessaire de réaliser une suppression par lot ou de l’automatiser pour quelques obscures raisons. Vous avez le code  Remove Active Directory Domain Controller Metadata à disposition que vous pourrez utiliser et faire évoluer pour développer votre propre script. Cela nous laisse aussi l’occasion de vous introduire l’excellent site Microsoft Script Center qui dispose d’un référentiel de scripts très étoffé sur les diverses technologies Microsoft.

Concernant le script que vous nous proposons, il vous suffira de récupérer le code, de l’introduire dans un fichier de type vbs et de l’exécuter. Il vous propose de sélectionner un serveur parmi une liste de contrôleurs de domaine disponibles sur votre annuaire. Il vous demande ensuite de confirmer la suppression du contrôleur et réalise donc le Metadata Cleanup.

imageimageimage

Contrairement aux outils de Microsoft et comme cela est le cas dans le cadre d’une suppression manuelle, le script ne réalise pas une éventuelle saisie des maîtres d’opérations. Veillez donc à ce que l’ancien contrôleur de domaine n’hébergait pas un de ces rôles. Il est d’ailleurs conseillé de vérifier que les rôles soient bien présent suite à une saisie pour éviter toutes mauvaises surprises tel que ci-dessous.

image

Le nettoyage des zones DNS

Afin de permettre la localisation d’un contrôleur de domaine au sein d’Active Directory, des enregistrements DNS de type SRV sont créés lors de la promotion d’un contrôleur de domaine et sont mis à jour régulièrement par le service NETLOGON de chaque contrôleur de domaine. Dans le cadre d’un Metadata Cleanup, il faudra donc supprimer tous les enregistrements DNS relatifs au contrôleur de domaine corrompu afin d’éviter qu’il soit localiser par les différents clients au sein de votre annuaire.

Depuis la console « Gestionnaire DNS » vous allez devoir parcourir vos différentes zones et supprimer tout enregistrement relatif au contrôleur de domaine corrompu qu’ils soient de type SRV, A ou CNAME depuis les zones _msdcs.[MONDOMAINE] et [MONDOMAINE].

image   image

Si vous ancien contrôleur de domaine faisait office de serveur DNS, il faut également faire en sorte qu’il ne soit plus considéré comme serveur de noms. Réalisez un clic droit sur la zone voulue, sélectionnez « Propriétés » et placez-vous dans l’onglet « Serveurs de noms ». Si le contrôleur corrompu apparait dans la liste des serveurs de noms, mettez l’enregistrement en surbrillance et cliquer sur le bouton « Supprimer ».

imageimage

Une fois tous les enregistrements DNS supprimés, nous allons pouvoir tester que désormais ils ne posent plus de problème dans le cadre de la réplication Active Directory. Pour cela nous allons utiliser l’outil Dnslint  que vous pouvez télécharger ICI. Une fois l’outil récupéré, exécutez la commande « dnslint /ad /s localhost » directement sur un contrôleur de domaine faisant également office de serveur DNS où alors spécifiez une adresse IP respectant cette prérogative à la place de localhost. La commande génèrera un rapport HTML.

http://support.microsoft.com/kb/321045/fr

image

image

Post-vérification

Comme nous le disions en introduction, la majeur partie des problèmes que vous rencontrez avec un contrôleur de domaine corrompu est liée à la réplication. La meilleure manière de vérifier que le Metadata Cleanup a été réalisé avec succès sera de vérifier donc au niveau de la réplication. Pour cela, nous allons utiliser l’outil Repadmin, inclus par défaut sur Windows Server 2008 et disponible depuis les Supports Tools pour les versions Windows Server 2000 et 2003. Contrairement à Repadmin qui est un outil en ligne de commande, il existe l’application avec interface graphique  Replmon mais qui n’est désormais plus supporté sur Windows Server 2008 et que nous ne présenterons donc pas sachant que Repadmin fournis d’excellents résultats.

Depuis un invite de commandes, nous allons commencer par exécuter la commande « repadmin /showrepl » et vérifier qu’il n’y a pas d’erreurs ou de quelconques références à l’ancien contrôleur de domaine.

image

Vous pouvez également utiliser la commande « repadmin /replsum ».

image

Et si vraiment vous avez encore la moindre inquiétude, vous pouvez utiliser la commande « DCDIAG /test:replications /v » qui vous fournira un plus large éventail d’information sur les réplications au sein de l’annuaire et dont nous vous montrons ci-dessous qu’une petite partie

image

Conclusion

La règle TIMTOWTDI (prononcé tim toady) pour « There Is More Than One Way To Do It » ou plus clairement en français « Il y a plus d’un moyen pour y arriver » et une définition générale au monde de l’informatique et qui se vérifie régulièrement sur Active Directory. En effet, il est possible de réaliser une grande majorité des opérations Active Directory  par Interface Graphique (GUI), par ligne de commande ou par script et comme nous avons pu le voir dans notre article, le Metada Cleanup ne déroge plus à cette règle.

Choisissez la méthode qui vous convient le mieux et selon les conditions (méthode manuelle, méthode en ligne de commande, méthode GUI ou méthode par script), faites le nécessaire pour le nettoyage de vos zones DNS et assurez-vous du succès de l’opération en vérifiant votre système de réplication.

http://www.alexwinner.com/index.php
http://www.alexwinner.com/articles/win2008/40-admetadatacleanup.html#1

Aucun commentaire: