Deux articles sur les snapshots Active Directory

Bonjour à tous,

nous vous proposons aujourd’hui deux nouveaux articles sur la gestion des clichés instantanés de la base Active Directory ou snapshots AD si vous préférez.

Cette fonctionnalité très attractive mais encore trop méconnue devrait rapidement se démocratiser. En espérant que les deux articles que nous vous proposons y contriburont !

Snapshots AD: Exploiter les clichés instantanés Active Directory

Sommaire

 

Introduction

Créer et gérer vos clichés instantanés de votre base Active Directory n’est que l’étape préalable à leur exploitation que nous allons donc découvrir ensemble. Nous allons surtout vous présenter les différentes possibilités que nous apporte l’outil DSCT couplé à dsamain. Vous devriez être rapidement conquis par cette nouvelle fonctionnalité à la lecture de cet article.

 

Monter vos clichés à l’aide de dsamain

Apparu sous Windows Server 2008, dsamain est l’outil qui va permettre d’exposer les données Active Directory stocké depuis un cliché instantané ou une sauvegarde sous la forme d’un service LDAP afin de l’exploiter à l’aide de différents outils tel que la console « Utilisateur et ordinateur Active Directory ».

Si vous voulez donc explorer un cliché instantané Active Directory, il faudra au préalable créer et monter le cliché instantané à l’aide de ntdsutil  tel que nous l’avons vu dans notre article Snapshot AD: Gérer les clichés instantanés Active Directory.

{gallery}29_ADSNAPSHOT/01{/gallery} 

 

 

 

 

Une fois le cliché monté sous ntdsutil, nous allons exposer la base Active Directory à disposition à l’aide de dsamain. Pour se faire, il suffit de récupérer le chemin de la base ntds.dit en lançant  la commande « dsamain /dbpath {chemin de ntds.dit} /ldapport {port TCP} ». L’option DBPATH permet d’indiquer le chemin de notre fichier ntds.dit (le fichier par défaut de la base Active Directory) et LDAPPORT permet d’indiquer un port TCP spécifique pour pouvoir ensuite s’y connecter. Dans l’exemple ci-dessous, la commande est « dsamain -dbpath C:\$SNAP_201106202257_VOLUMEC$\WINDOWS\NTDS\ntds.dit -ldapport 51389 ».

{gallery}29_ADSNAPSHOT/02{/gallery}

 

 

 

 

 

 

Il peut arriver que vous rencontriez des problèmes lorsque vous essayer d’utiliser dsamain et plus particulièrement l’erreur « 10013 Une tentative d’accès à un socket de manière interdite par ses autorisations d’accès a été tentée ». L’errreur est causée, semble-t-il, par un problème d’allocation de ports et plus particulièrement lorsque vous tenter  d’utiliser l’outil sur un serveur faisant office de serveur DNS. Un simple redémarrage du service « Serveur DNS » devrait y remédier.

{gallery}29_ADSNAPSHOT/03{/gallery}

 

 

 

 

 

 

 

 

Explorer les clichés avec ADUC

Maintenant que notre base Active Directory est montée, nous allons donc l’explorer et pour cela nous allons simplement utiliser l’outil « Utilisateurs et ordinateurs Active Directory ». L’outil sera particulièrement utile lorsque vous aurez une idée claire sur le type d’information que vous recherchez comme un objet supprimé ou modifié. A partir de la console ADUC (Active Directory Users and Computers), faites un clic droit sur la racine et choisissez l’option « Changer de contrôleur de domaine ».

{gallery}29_ADSNAPSHOT/04{/gallery}

 

 

 

 

 

 

Sélectionner l’option « Ce contrôleur de domaine ou cette instance AD LDS » et indiquez l’adresse de votre serveur suivi du port. Dans notre exemple, nous choisissons « LOCALHOST:51389 » sachant que la base est montée avec dsamain sur la même machine.

{gallery}29_ADSNAPSHOT/05{/gallery}

 

 

 

 

 

 

 

Nous pouvons désormais naviguer dans la base montée depuis notre cliché instantané. Ci-dessous, nous voyons un exemple de comparaison entre une base montée depuis un cliché et la base de production. On pourra rapidement savoir à quel moment un compte a été créé et quel jeu de sauvegarde nous pourrons utiliser pour le restaurer par exemple et sans forcément passer par de multiples restaurations.

{gallery}29_ADSNAPSHOT/06{/gallery}

 

 

 

 

 

 

 

 

Une fois que l’objectif a été atteint avec dsamain et ntdsutil, pensez à fermer dsamain à l’aide de la combinaison CTRL+C et de démonter le ou les clichés instantanés à l’aide de la commande « unmount » depuis ntdsutil.

{gallery}29_ADSNAPSHOT/07{/gallery}

 

 

 

 

 

 

 

Présentation de l’outil DSCT

Nous avons vu que nous pouvions exploiter assez facilement notre cliché instantané à l’aide de la console ADUC cependant l’outil ne permet pas différencier efficacement les deux versions de notre base Active Directory n’y de pouvoir réaliser d’actions hormis la visualisation. Il existe cependant un outil nettement plus complet pour visualiser clairement les modifications entre le cliché instantané et la base Active Directory et surtout de pouvoir restaurer des attributs ou objets! L’outil est Directory Service Comparison Tool développé par Fredrik Lindström et est disponible ici. L’outil vous offrira, entre autres, les fonctionnalités suivantes :

  • Visualiser efficacement les différences entre les objets du cliché instantané et de la base Active Directory
  • Restaurer les attributs d’objets
  • Réanimer des objets supprimés
  • Restaurer l’appartenance d’un objet à des groupes ou les membres d’un groupe

L’outil propose également une prise en charge des journaux d’évènements relatifs aux audits Active Directory que nous ne verrons pas dans le cadre de cet article. Cette fonctionnalité permet simplement de lier une action à un évènement à condition d’avoir activer les fonctions d’audit Active Directory. Fredik Lindström présente cette fonctionnalité de manière graphique ici.

 

 

Explorer les clichés avec DSCT

Une fois DSCT téléchargé et installé, nous allons devoir passer par une MMC car l’outil n’est autre qu’un composant logiciel enfichable. Lancez donc « mmc » depuis « Démarrer » | « Exécuter » pour ensuite choisir depuis la MMC « Ajouter/Supprimer un composant logiciel enfichable… » depuis le « Fichier » dans la barre d’outils.

{gallery}29_ADSNAPSHOT/08{/gallery}

 

 

 

 

 

 

 

Dans la liste des composants logiciels enfichables disponibles, vous devriez donc trouver Directory Service Comparison Tool que vous allez ajouter dans votre console.

{gallery}29_ADSNAPSHOT/09{/gallery}

 

 

 

 

 

 

 

Le logiciel enfichable désormais disponible au sein de la console MMC, nous allons donc commencer par nous connecter conjointement à notre base Active Directory et à notre cliché instantané. Il faudra bien entendu et au préalable avoir monté le cliché instantané à l’aide de la commande « mount » depuis ntdsutil et d’initialiser la base à l’aide de dsamain.

Réaliser un clic droit sur « Directory Service Comparison Tool » et choisissez « Datasource Settings… ». Indiquez ensuite dans la partie « Directory Service » le nom ou l’IP d’un de vos contrôleur de domaine dans le champ Host et le nom de la partition « Default Naming Context » pour le champ Naming Context. Précisez ensuite pour la partie Snapshot, le nom d’hôte du serveur exécutant votre cliché instantané sans oublier le port relatif au paramètre LDAPPORT spécifié avec dsamain.

{gallery}29_ADSNAPSHOT/10{/gallery}

 

 

 

 

 

 

 

 

 

L’outil nous propose dans un premier temps et depuis l’onglet « Tree » l’aborescence de notre base Active Directory avec un code couleur permettant intuitivement de repérer les différents objets affectés par une manipulation entre la prise du snapshot et la base Active Directory actuel. Le code couleur étant le suivant :

  • Vert : les objets modifiés
  • Rouge : les objets supprimés
  • Noir : les objets ajoutés
  • Gris : les objets restés en l’état

Quant aux onglets « Modified », « Added » et « Deleted », ils regroupent les informations concernant les différents types de manipulation relatifs aux objets pour plus de clarté.

{gallery}29_ADSNAPSHOT/11{/gallery}

 

 

 

 

 

 

Nous voyons également dans la partie inférieure un récapitulatif de l’objet sélectionné depuis l’onglet « Attributes » afin de déterminer clairement le ou les attributs concernés par une modification. Cela peut s’avérer particulièrement intéressant lorsqu’un objet a été modifié et que l’on veut savoir sur quel attribut porte cette modification. Un deuxième onglet « Auditing » est disponible qui permet de mettre en relation les actions sur l’objet avec les entrées du journal d’évènements.

 

 

Restaurer un objet avec DSCT

Une des fonctionnalités particulièrement intéressante de DSCT est la possibilité de restaurer un objet dans son état antérieur à la date du cliché instantané. La restauration peut se situer au niveau de l’objet lui-même mais également au niveau d’un attribut. Cela offre un atout supplémentaire par rapport à la corbeille Active Directory proposé depuis Windows 2008 R2 qui est capable de restaurer un objet mais certainement pas un attribut.

Remarque: nous verrons dans la suite de notre article la restauration d’un attribut.

Pour restaurer un objet, il suffit simplement de se placer sur l’objet supprimé (code couleur rouge), et de sélectionner depuis le volet « Actions » placé sur la droite, l’option « Reanimate ». Après une demande de confirmation, notre objet est restauré dans son conteneur d’origine !

{gallery}29_ADSNAPSHOT/12{/gallery}

 

 

 

 

 

 

Une fois l’objet réanimé, ses appartenances aux groupes ne le sont pas. Il est nécessaire de passer par une étape supplémentaire par le biais de l’option « restore group membership… » depuis le volet « Actions ». Nous obtenons dès lors la liste des groupes anciennement liés à l’objet concerné et qu’il faudra sélectionner pour en restaurer l’appartenance.

{gallery}29_ADSNAPSHOT/13{/gallery}

 

 

 

 

 

 

Remarque: un objet restauré via DSCT est désactivé par défaut.

 

 

Restaurer un attribut avec DSCT

Restaurer un attribut avec DSCT est une opération simple à réaliser. Il suffit dans un premier temps de se placer sur l’objet qui sera assujetti à une restauration d’un de ses attributs. L’objet doit être détecté au préalable comme modifié par DSCT (code coleur vert). Une fois placé sur l’objet, il faudra cocher depuis l’onglet « Attributes » le ou les attributs à restaurer.

{gallery}29_ADSNAPSHOT/16{/gallery}

 

 

 

 

 

 

Une fois les attributs sélectionnés, nous allons cliquer  sur « Restore attribute values… » depuis le volet « Actions » placé à droite.

{gallery}29_ADSNAPSHOT/17{/gallery}

 

 

 

 

 

Après une demande de confirmation, nous obtenons la liste des attributs restaurés.

{gallery}29_ADSNAPSHOT/18{/gallery}

 

 

 

 

 

 

 

Restaurer un groupe avec DSCT

Lorsqu’un groupe est supprimé et qu’il est réanimé via DSCT, il est possible également d’en restaurer ses membres cependant le processus est un peu plus compliqué. En effet, un groupe réanimé ne dispose plus de ses membres et pour les récupérer il est nécessaire de restaurer l’attribut « member ». Malheureusement, lorsqu’un groupe est réanimé, l’attribut member étant null, il n’apparait pas dans DSCT. Il faut donc au préalable y ajouter un membre quelconque pour ensuite restaurer l’attribut « member ».

Prenons l’exemple du groupe « IT_Support » comprenant deux utilisateurs et que nous supprimons. Une fois l’objet réanimé, le groupe ne contient plus de membre et l’objet au sein de DSCT ne dispose pas de l’attribut « member ».

{gallery}29_ADSNAPSHOT/14{/gallery}

 

 

 

 

 

 

 

 

Afin de pouvoir restaurer les membres du groupe « IT_Support », nous allons devoir préalablement rajouter un membre, en l’occurrence le compte « Administrateur », pour que nous puissions avoir la possibilité de sélectionner l’attribut « member » du groupe « IT_Support » depuis DSCT et de restaurer cet attribut à l’aide de « Restore attribute values… ». Nous pouvons constater que les membres initiaux du groupe « IT_Support » ont été finalement restauré.

{gallery}29_ADSNAPSHOT/15{/gallery}

 

 

 

 

 

 

 

 

 

Conclusion

Nous avons donc vu ensemble dans le cadre de cet article comment explorer une base Active Directory depuis un cliché instantané ou une sauvegarde à l’aide de différents outils et en particulier DSCT, produit non estampillé Microsoft mais qui n’a pas d’équivalence entre son ergonomie et ses fonctionnalités.

Les clichés instantanés Active Directory sont encore trop méconnus des administrateurs mais devraient se démocratiser en vu de la réelle plus-value qu’ils apportent… sans les contraintes !

Snapshots AD: Gérer les clichés instantanés Active Directory

Sommaire

 

 

Introduction

Une des nouveautés introduites avec Active Directory sous Windows 2008 est la possibilité de gérer les clichés instantanés de votre base Active Directory. Ces derniers permettront en clair de disposer de plusieurs versions de votre base Active Directory et de pouvoir les exploiter rapidement pour divers besoins d’administration comme l’exploration ou la restauration.

Réelle avancée d’un premier abord, la nouveauté est toute relative car cette amélioration se situe principalement au niveau de l’outil ntdsutil et de l’apparition de dsamain. La fonctionnalité exploite principalement la technologie Volume Shadow Copy Service apparue dès les versions de Windows Server 2003 (vous pouvez consulter notre article relatif à ce sujet: Les clichés instantanés de dossiers partagés sous Windows 2008). Cependant cela n’en rend pas moins intéressant le sujet que nous vous proposons donc de découvrir ensemble.

Nous verrons dans ce premier article les moyens de gérer les clichés instantanés Active Directory pour ensuite nous consacrer dans notre second article Snapshot AD: Exploiter les clichés instantanés Active Directory à leur exploitation.

 

 

Pourquoi utiliser les clichés instantanés Active Directory ?

Réaliser des clichés instantanés de votre base Active Directory va vous apporter plusieurs avantages non négligeables :

  • Réaliser de façon régulière plusieurs points de sauvegarde de votre base Active Directory grâce à la faible consommation de ressources que les clichés génèrent et leur rapidité d’exécution.
  • Consolider votre plan de sauvegarde de l’annuaire et disposer d’une solution complémentaire.
  • Explorer à l’aide de la console Utilisateurs et ordinateurs Active Directory ou DSCT (Directory Service Comparison Tool) les clichés réalisés et en observer les différences.
  • Restaurer granulairement des objets ou même des attributs à l’aide de DSCT.

Remarque : les deux derniers points sont traités dans notre second article.

ATTENTION !!! Les clichés instantanés de la base Active Directory ne sont pas une alternative à votre solution de sauvegarde. Ils ne sont qu’un complément.

Concernant les pré-requis, la seule exigence pour exploiter les clichés instantanés Active Directory sera de disposer d’un contrôleur de domaine sous Windows Server 2008. Autre point intéressant est que la fonctionnalité s’appuye exclusivement sur le service Volume Shadow Copy et sur ntdsutil et qu’il n’y a donc aucune exigence particulière relatif au niveau fonctionnel du domaine.

 

 

Gérer les clichés instantanés de votre base Active Directory

Pour réaliser un cliché instantané (ou plus communément appelé snapshot) de la base Active Directory, il faudra passer par l’incontournable ntdsutil depuis un contrôleur de domaine sous Windows Server 2008. Nous allons donc commencer par lancer depuis une invite de commandes « ntdsutil » et saisir la commande « snapshot ».

{gallery}28_ADSNAPSHOT/01{/gallery}

 

 

 

 

 

Remarque : Pour des questions de sécurité, seul les membres du groupe « Administrateurs de l’entreprise » ou « Admins du domaine »  ont la capacité de réaliser un cliché instantané.

Une fois dans le menu « snapshot » de ntdsutil et pour d’obscures raisons, il faut préciser la base Active Directory à activer. En l’occurrence, nous allons donc saisir la commande « activate instance ntds ».

{gallery}28_ADSNAPSHOT/02{/gallery}

 

 

 

 

 

Il ne reste plus qu’à créer notre snapshot à l’aide de la commande « create » pour enfin disposer assez simplement d’un cliché instantané de notre base Active Directory.

{gallery}28_ADSNAPSHOT/03{/gallery}

 

 

 

 

 

Vous pourrez bien sûr répéter l’opération autant de fois que nécessaire sachant que la seule contrainte sera l’espace disponible sur votre disque et le nombre de clichés instantanés que vous voudrez conserver. Il est assez compliqué de l’évaluer car cela dépend de plusieurs critères mais un cliché instantané ne devrait pas dépasser quelques dizaines de méga-octets. En terme de performances, cela n’aura d’effet que durant la création du cliché instantané qui multipliera les entrées/sorties sur le disque stockant la base Active Directory.

Si nous retournons dans le menu « snapshot » de ntdsutil, vous pouvez également lister l’ensemble des snapshots disponibles à l’aide de la commande « list all ». Nous voyons ci-dessous que nous disposons de deux snapshots.

{gallery}28_ADSNAPSHOT/04{/gallery}

 

 

 

 

 

Comme nous l’évoquions précédemment, les clichés instantanés Active Directory s’appuient exclusivement sur le service Volume Shadow Copy déjà présent sur les systèmes Microsoft Windows depuis la version 2003. Nous pouvons le vérifier rapidement à l’aide de l’outil en ligne de commande « vssadmin ». Ouvrez une invite de commande et saisissez la commande « vssadmin list shadows » pour obtenir la liste des clichés instantanés présents et constater que les clichés créés depuis ntdsutil y sont listés.

{gallery}28_ADSNAPSHOT/05{/gallery}

 

 

 

 

 

 

 

Obtenir la liste des clichés instantanés à l’aide de la commande « list all » va nous permettre dans un premier temps de récupérer l’index du cliché à monter pour pouvoir l’exploiter par la suite. En effet, il est nécessaire dans un premier temps de monter un des clichés instantanés pour l’exploiter et pour cela nous allons utiliser la commande « mount {index} » ou « mount {GUID} ». Nous allons monter par exemple le cliché portant l’index 1 en saisissant la commande « mount 1 ».

Remarque : chaque cliché instantané est toujours associé à deux index. Le premier index représente le numéro du jeu de clichés instantanés et le deuxième index concerne l’ID du cliché instantané. Vous pouvez utiliser indifféremment  l’un ou l’autre.

{gallery}28_ADSNAPSHOT/06{/gallery}

 

 

 

 

 

Une fois le cliché monté, nous obtenons en résultat le point de montage qui est en l’occurrence dans notre exemple « C:\$SNAP_201106131831_VOLUMEC$\ » et que nous pouvons visualiser désormais depuis l’explorateur Windows. Cela nous permettra de pouvoir accéder au fichier de la base Active Directory « ntds.dit »  par la suite.

{gallery}28_ADSNAPSHOT/07{/gallery}

 

 

 

 

 

 

Remarque : vous pouvez monter plusieurs clichés simultanément.

Il vous est possible à tout moment de lister les clichés montés à l’aide de la commande « list mounted ». Cela vous permettra de vérifier si un snapshot a été monté et surtout de pouvoir le démonter à l’aide de la commande « umount {index} » après usage. La commande « unmount * » vous permettra de démonter l’ensemble des snapshots.

{gallery}28_ADSNAPSHOT/08{/gallery}

 

 

 

 

 

 

Vous pouvez enfin supprimer soit un snapshot en particulier à l’aide de la commande « delete {index} » soit l’intégralité des snapshots à l’aide de la commande « delete * ».

{gallery}28_ADSNAPSHOT/09{/gallery}

 

 

 

 

 

 

 

Automatiser la création

Remarque: je vous conseille de consulter l’article « Gérer efficacement la création des snapshots AD » (http://www.alexwinner.com/articles/divers/132-snapshotactivedirectory3.html) pour l’automatisation de la création de vos snapshots.

Il n’est pas possible par défaut d’automatiser la création des clichés instantanés Active Directory. La seule option que nous propose Microsoft est de créer une tâche planifiée pour exécuter la commande « ntdsutil snapshot  « activate instance ntds » create » de manière régulière. Le principal désavantage de cette solution est l’absence de gestion d’une rotation. En effet, avec cette solution il ne sera pas possible de définir le nombre de snapshots que vous désirez conserver et donc de supprimer les plus anciens.

Nous vous proposons donc une solution pour palier à cette déficience en passant par un script qui sera lancé régulièrement via le planificateur de tâche.

{codecitation style= »brush: PowerShell; »}

<#

Gestion des clichés instantanés Active Directory (Snapshots AD)

 

Automatisation de la création d’un snapshot et gestion de la rotation.

 

Auteur: Augagneur Alexandre

Date de création: 31/05/2011

#>

 

#Nombre de snapshots à conserver: valeur 0 désactive la rotation

$MaxSnapshots = 14

 

#——————————————————————

#Fonction comparant le nombre de snapshot à conserver par rapport

#à la valeur $MaxSnapshots (n’est pas appelé si la valeur est à 0)

#——————————————————————

function RemoveSnapshots()

{

#liste le nombre de snapshots

$Items = ntdsutil snapshot « activate instance ntds » « list all » quit quit

 

#verifie la présence de snapshots

If ($Items -eq « Captures instantanées introuvables. »)

{

Return

}

 

#applique un filtr et compte le nombre de snapshots

$NumItems= ($Items | where-object {($_ -like « *{*}* ») -and ($_ -like « */*/* »)}).count

 

#Supprime le(s) snapshot(s) le(s) plus ancien(s)

While ($NumItems -ge $MaxSnapshots)

{

ntdsutil snapshot « list all » « delete 1 » quit quit | Out-Null

$NumItems -= 1

}

}

 

#Appel la fonction RemoveSnapshots si la rotation est activée

if ($MaxSnapshots -ne 0)

{

RemoveSnapshots

}

 

ntdsutil snapshot « activate instance ntds » create quit quit | Out-Null

{/codecitation}

Il faudra donc récupérer l’intégralité du code ci-dessus pour l’intégrer dans un fichier ADSnapshots.ps1. La seule variable qui devra être modifiée selon vos convenances sera $MaxSnapshots qui vous permettra d’indiquer le nombre de snapshots que vous voudrez conserver. Le script est assez rudimentaire sans journalisation ni gestion d’exceptions mais devrait pouvoir convenir à la majorité des usages ou du moins vous servir de base pour pouvoir développer votre propre script.

Il sera également nécessaire d’autoriser l’exécution de scripts PowerShell en local sur le serveur. Pour cela taper la commande suivante depuis la console PowerShell : Set-ExecutionPolicy RemoteSigned.

 

 

Active Directory Snapshot Manager

Afin de simplifier la gestion au quotidien des clichés instantanés Active Directory et surtout pour offrir la possibilité de les gérer depuis une interface graphique, nous avons développer un front-end en Powershell. Le script est disponible depuis notre zone de téléchargement et fera sans doute l’objet de différents articles afin de vous montrer comment construire votre interface graphique à l’aide de Powershell.

Le script ne peut être exécuter que sur un contrôleur de domaine Windows Server 2008 ou 2008 R2 et nécessitera de disposer de Powershell 2.0.

A l’aide de ADSM, vous pourrez créer, supprimer ou monter un cliché instantané sur simple clic et même l’exposer en exploitant les fonctionnalités de Dsamain.

{gallery}28_ADSNAPSHOT/10{/gallery}

 

 

 

 

 

 

 

 

 

 

Conclusion

Nous avons donc vu dans un premier temps comment gérer la fonctionnalité des clichés instantanés sous Active Directory et automatiser leur création afin de pouvoir dans un second temps les exploiter. Nous vous invitons donc à poursuivre votre lecture en consultant notre second article Snapshot AD: Exploiter les clichés instantanés Active Directory.