Catégories

Gestion des snapshots sous Active Directory

Les snapshots avec Active Directory doivent être réalisés de manière particulière. Ce billet va aborder la façon de gérer les snapshots mais également de restaurer des objets de façon simple et sans arrêt de production.

Pour créer un snapshot, l’outil NTDSUTIL doit être utilisé et la syntaxe est assez simple et peut être scripté, idéal donc pour planifier des snapshots régulier.

  • Pour créer un snapshot
    • ntdsutil "Activate Instance NTDS" snapshot create quit quitt
  • Pour lister tous les snapshots
    • ntdsutil snapshot "list all" quit quit
  • Pour monter un snapshot
    • ntdsutil snapshot "list all" "mount x" quit quit
  • Pour démonter un snapshot
    • ntdsutil snapshot "list mounted" "unmount x" quit quit
  • Pour supprimer un snapshot
    • ntdsutil snapshot "list all" "delete x"quit quit

Maintenant, il convient de monter le snapshot désiré à l’aide de la syntaxe suivante sur un port différent du LDAP, ici 33389: [test]dsamain -dbpath « C:\monchemin\ntds.dit » -ldapport 33389[/text]. Laissez la fenêtre de l’invite de commande ouverte.

Ensuite, il convient d’explorer le snapshot pour y retrouver les informations tant désirées, avec ADSIEDIT, LDP ou encore Utilisateurs et Ordinateurs Active Directory. Ici, on se connecte au serveur LDAP monté par DSAMAIN sur le port 33389.

Si vous ne savez pas ce qui a été supprimé, je vous conseille de lancer le script  de Ken St. Cyr avant et après snapshot et de comparer les fichiers générés.

'--------------------------------------------------------------------------
' NAME:        export-attr.vbs
' DATE:        3/6/2008
' DESCRIPTION: Connects to a directory service provider on the specified
'              port and exports a list of attributes for each user object
'              in the directory to a tab-separated values file.
' AUTHOR:      Ken St. Cyr
'--------------------------------------------------------------------------
Option Explicit
' Define our parameters
CONST LDAPPORT = 33389
CONST DCNAME = "localhost"

CONST ATTRIBUTES = "samAccountName,displayName"

CONST OUTPUT_FILE = "attribute_backup.tsv"

' Create the necessary objects for writing to a file

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim objFile : Set objFile = objFSO.OpenTextFile(OUTPUT_FILE, 8, True)

' Get the RootDSE for the directory on the port that we want

Dim objRootDSE : Set objRootDSE = GetObject("LDAP://" & DCNAME & ":" & _

LDAPPORT & "/RootDSE")

' Create the connection object for the AD provider

Dim objConnection : Set objConnection = CreateObject("ADODB.Connection")

objConnection.Provider = "ADsDSOObject"

objConnection.Open "Active Directory Provider"

' Define the search to execute

Dim objCommand : Set objCommand = CreateObject("ADODB.Command")

objCommand.CommandText = "<LDAP://" & DCNAME & ":" & LDAPPORT & "/" & _

objRootDSE.Get("defaultNamingContext") & ">;(&objectCategory=user);" & _

ATTRIBUTES & ";subtree"

objCommand.ActiveConnection = objConnection

' Execute the search

Dim objRecordSet : Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

' Go through each result about output the attributes to a Tab-Separated file

While Not objRecordSet.EOF

Dim strSAMAccountName : strSAMAccountName = objRecordSet.Fields("samaccountname")

Dim strDisplayName : strDisplayName = objRecordSet.Fields("displayName")

objFile.WriteLine strSAMAccountName & vbtab & strDisplayName

objRecordSet.MoveNext

Wend

objFile.Close

WScript.Echo objRecordSet.RecordCount & " entries written to " & OUTPUT_FILE

Si vous désirez rajouter des attributs, il convient de rajouter une ligne de type

 Dim strMONATTRIBUT: strMONATTRIBUT = objRecordSet.Fields("attribut")

et de rajouter à la ligne 64

  objFile.WriteLine strSAMAccountName & vbtab & strDisplayName & strMONATTRIBUT

L’utilitaire Directory Service Comparison Tool permet de réanimer très très simplement un object. Téléchargez l’utilitaire ici, et lancez une console MMC et ajouter le snap-in Directory Service Comparison Tool et renseignez les serveurs avec les différents ports IP. ET instantanément, l’outil affiche les objets supprimés et permet même de les restaurer d’un simple clic avec « Reanimate ». Toutes les informations ici.

Lorsque vous avez terminé, appuyez sur CTRL+C dans la fenêtre qui exécute DSAMAIN, puis démontez le snapshot.

Retrouvez l’intégralité de la syntaxe de dsamain ici.

image_pdfimage_print

Laisser un commentaire