Mar 14 2010

PRA AD: Metadata cleanup

Lors d’une restauration de domaine ou de forêt suite à un desastre, une fois le system state du premier DC restauré avec votre sauvegarde, vous devez effacer les metadatas des DCs que vous allez restaurer avec dcpromo. Pour plus d’informations concernant les PRA AD je vous conseille la lecture de ce document.

Sur un DC Windows 2008 quand vous effacez l’objet ordinateur du DC sous votre console dsa.msc l’effacement de l’objet serveur (cn=ServerName,cn=Servers,cn=SiteName, cn=Sites,cn=Configuration,dc=ForestRootDomain) et le metadata cleanup sont effectués automatiquement, sous Windows 2003 vous devez utiliser la commande ntdsutil.exe et effacer l’objet serveur manuellement. Le but de ce post est d’automatiser cette procédure.

Si vous avez beaucoup de DCs sur votre infrastructure le nettoyage des metadatas et l’effacement des objets serveurs est une tâche chronophage et source d’erreur, ce dont vous n’avez vraiment pas besoin lors de la restauration complète d’une forêt ou d’un domaine. Le script ci dessous effectue ces deux tâches, tout ce qu’il vous faut c’est au préalable avoir préparé un fichier texte “list.txt” dans le repertoire du script, avec sur chaque ligne le DN des objets serveurs de vos DCs. Ne pas oublier de préparer votre fichier à l’avance et le mettre à jour quand vous installez ou supprimez un DC, de manière à être prêt le jour où avez besoin du script.

1
2
3
4
5
6
7
8
9
10
11
12
13
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
sCurPath = fso.GetAbsolutePathName(".")
Set f2 = fso.OpenTextFile(sCurPath&"\list.txt",ForReading)
Set shl = Wscript.CreateObject("Wscript.Shell")
Do While f2.AtEndOfStream <> True
    DC = f2.ReadLine
    shl.run "cmd /c ntdsutil "&chr(34)&"popups off"&chr(34)&" "&chr(34)&"metadata cleanup"&chr(34)&" "&chr(34)&"remove selected server "&DC&chr(34)&" quit quit >> "&chr(34)&sCurPath&"\result.txt"&chr(34),2,True
    set objComputer = GetObject("LDAP://"&DC)
    objComputer.DeleteObject (0) 
    MsgBox DC&" Medata cleanup completed and server object deleted"
Loop
f2.close

Pour télécharger le script c’est ici:

Le resultat du metadata cleanup est retourné dans le fichier result.txt. Ce script a été validé sur une plateforme de tests, j’espère que vous n’aurez jamais à vous en servir en production.

This post is also available in: Anglais

2 Comments

  • By CTXBLOG, March 14, 2010 @ 1:35 am

    Sympa le script, juste peut-être préciser qu’il faut créer le fichier list.txt dans le répertoire courant non ?

  • By ldap389, March 14, 2010 @ 12:14 pm

    Oui effectivement, cette precision ne figurait pas dans la version FR du post, c’est corrigé, merci!

Other Links to this Post

RSS feed for comments on this post. TrackBack URI

Leave a comment

*

WordPress Themes

Blossom Icon Set

Software Top Blogs