Partage via


Gestion avancée de la topologie et de la réplication Active Directory avec Windows PowerShell (Niveau 200)

Cette rubrique décrit plus en détail les applets de commande de gestion de la topologie et de la réplication d’AD DS et fournit des exemples supplémentaires. Pour une introduction, voir Gestion de la topologie et de la réplication Active Directory avec Windows PowerShell (niveau 100).

  1. Introduction

  2. Réplication et métadonnées

  3. Get-ADReplicationAttributeMetadata

  4. Get-ADReplicationPartnerMetadata

  5. Get-ADReplicationFailure

  6. Get-ADReplicationQueueOperation et Get-ADReplicationUpToDatenessVectorTable

  7. Sync-ADObject

  8. Topology

Introduction

Le tableau suivant répertorie les applets de commande de topologie et de réplication qui ont été ajoutées au module Active Directory pour Windows PowerShell :

Cmdlet Explanation
Get-ADReplicationAttributeMetadata Renvoie des métadonnées de réplication d'attribut pour un objet
Get-ADReplicationConnection Retourne les informations sur les objets de connexion du contrôleur de domaine
Get-ADReplicationFailure Renvoie l'échec de réplication le plus récent d'un contrôleur de domaine
Get-ADReplicationPartnerMetadata Retourne la configuration de réplication d'un contrôleur de domaine
Get-ADReplicationQueueOperation Renvoie la liste d'attente actuelle de la réplication
Get-ADReplicationSite Retourne les informations sur le site
Get-ADReplicationSiteLink Renvoie les informations sur les liens du site
Get-ADReplicationSiteLinkBridge Retourne les informations sur le pont lien de sites
Get-ADReplicationSubnet Renvoie les informations du sous-réseau Active Directory
Get-ADReplicationUpToDatenessVectorTable Retourne le vecteur de mise à jour (UTD) d'un contrôleur de domaine
Get-ADTrust Renvoie les informations relatives à l'approbation inter-domaines ou inter-forêts
New-ADReplicationSite Crée un site
New-ADReplicationSiteLink Crée un lien de sites
New-ADReplicationSiteLinkBridge Crée un pont lien de sites
New-ADReplicationSubnet Crée un sous-réseau Active Directory
Remove-ADReplicationSite Supprime un site
Remove-ADReplicationSiteLink Supprime un lien de sites
Remove-ADReplicationSiteLinkBridge Supprime un pont lien de sites
Remove-ADReplicationSubnet Supprime un sous-réseau Active Directory
Set-ADReplicationConnection Change une connexion
Set-ADReplicationSite Modifie un site
Set-ADReplicationSiteLink Change un lien de sites
Set-ADReplicationSiteLinkBridge Modifie un pont lien de sites
Set-ADReplicationSubnet Change un sous-réseau Active Directory
Sync-ADObject Force la réplication d'un objet unique

La base de la plupart des applets de commande se trouve dans Repadmin.exe. D'autres applets de commande (non répertoriées) gèrent des fonctionnalités comme le contrôle d'accès dynamique et les comptes de service administrés de groupe.

Pour obtenir la liste complète de toutes les applets de commande Active Directory pour Windows PowerShell, exécutez :

Get-Command -module ActiveDirectory

Pour obtenir la liste complète de tous les arguments d'applets de commande Active Directory pour Windows PowerShell, consultez l'aide. Par exemple:

Get-Help New-ADReplicationSite

Utilisez l’applet de commande Update-Help pour télécharger et installer les fichiers d’aide

Réplication et métadonnées

Repadmin.exe valide l'état et la cohérence de la réplication Active Directory. Repadmin.exe offre des options de manipulation simple des données (certains arguments prennent par exemple en charge les sorties CSV) mais l'automatisation a généralement exigé une analyse des sorties de fichiers texte. Le module Active Directory pour Windows PowerShell offre pour la première fois la possibilité de contrôler directement les données renvoyées. Auparavant, vous deviez créer des scripts ou utiliser des outils tiers.

En outre, les applets de commande suivantes implémentent un nouvel ensemble de paramètres Target, Scope et EnumerationServer :

  • Get-ADReplicationFailure

  • Get-ADReplicationPartnerMetadata

  • Get-ADReplicationUpToDatenessVectorTable

L’argument Cible accepte une liste séparée par des virgules de chaînes qui identifient les serveurs cibles, les sites, les domaines ou les forêts spécifiés par l’argument Étendue . Un astérisque (*) est également autorisé et signifie « tous les serveurs » de l'étendue spécifiée. Si aucune étendue n’est spécifiée, il implique tous les serveurs de la forêt de l’utilisateur actuel. L’argument Étendue spécifie la latitude de la recherche. Les valeurs acceptables sont Server, Site, Domain et Forest. EnumerationServer spécifie le serveur qui énumère la liste des contrôleurs de domaine spécifiés dans La cible et l’étendue. Il fonctionne de la même façon que l’argument Serveur et nécessite que le serveur spécifié exécute le service web Active Directory.

Pour présenter les applets de commande, voici quelques exemples de scénarios démontrant ce que repadmin.exe ne peut pas réaliser. Avec ces illustrations, les possibilités d’administration deviennent évidentes. Consultez l'aide sur les applets de commande pour connaître les exigences spécifiques en matière d'utilisation.

Get-ADReplicationAttributeMetadata

Cette applet de commande est similaire à repadmin.exe /showobjmeta. Elle vous permet de renvoyer des métadonnées de réplication, dans des situations telles que le changement d'un attribut, le contrôleur de domaine d'origine, les informations de version et numéro de séquence de mise à jour (USN, Update Sequence Number) et les données d'attribut. Cette applet de commande est utile pour vérifier où et quand le changement s'est produit.

Contrairement à Repadmin, Windows PowerShell permet une recherche et un contrôle de sortie flexible. Par exemple, vous pouvez effectuer la sortie des métadonnées de l'objet Admins du domaine, sous forme de liste lisible :

Get-ADReplicationAttributeMetadata -object "cn=domain admins,cn=users,dc=corp,dc=contoso,dc=com" -server dc1.corp.contoso.com -showalllinkedvalues | format-list

Capture d’écran montrant la sortie des métadonnées de l’objet Admins du domaine, sous forme de liste lisible.

Vous pouvez aussi réorganiser les données en tableau comme dans repadmin :

Get-ADReplicationAttributeMetadata -object "cn=domain admins,cn=users,dc=corp,dc=contoso,dc=com" -server dc1.corp.contoso.com -showalllinkedvalues | format-table -wrap

Capture d’écran montrant les données organisées pour ressembler à repadmin dans une table.

Vous pouvez également obtenir des métadonnées pour une classe entière d’objets, en canalisant l’applet de commande Get-Adobject avec un filtre, tel que tous les groupes, puis combiner cela avec une date spécifique. Le pipeline est un canal utilisé entre plusieurs applets de commande pour transmettre des données. Pour afficher tous les groupes modifiés d'une certaine façon le 13 janvier 2012 :

Get-ADObject -filter 'objectclass -eq "group"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com | where-object {$_.lastoriginatingchangetime -like "*1/13/2012*" -and $_.attributename -eq "name"} | format-table object

Capture d’écran montrant comment afficher tous les groupes modifiés d’une certaine façon le 13 janvier 2012.

Pour plus d’informations sur d’autres opérations Windows PowerShell avec des pipelines, consultez Définition et utilisation des pipelines dans Windows PowerShell.

Vous pouvez aussi rechercher chaque groupe qui comporte le membre Tony Wang et la date à laquelle le groupe a été modifié pour la dernière fois :

Get-ADObject -filter 'objectclass -eq "group"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com -showalllinkedvalues | where-object {$_.attributevalue -like "*tony wang*"} | format-table object,LastOriginatingChangeTime,version -auto

Capture d’écran montrant comment rechercher chaque groupe qui comporte le membre Tony Wang et la date à laquelle le groupe a été modifié pour la dernière fois.

Sinon, pour trouver tous les objets qui ont été restaurés à l'aide d'une sauvegarde de l'état du système dans le domaine, d'après leur version arbitrairement haute :

Get-ADObject -filter 'objectclass -like "*"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com | where-object {$_.version -gt "100000" -and $_.attributename -eq "name"} | format-table object,LastOriginatingChangeTime

Capture d’écran montrant comment trouver tous les objets qui ont été restaurés avec autorité à l’aide d’une sauvegarde de l’état du système dans le domaine, d’après leur version arbitrairement haute.

Vous pouvez aussi envoyer toutes les métadonnées de l'utilisateur dans un fichier CSV pour le consulter ultérieurement dans Microsoft Excel :

Get-ADObject -filter 'objectclass -eq "user"' | Get-ADReplicationAttributeMetadata -server dc1.corp.contoso.com -showalllinkedvalues | export-csv allgroupmetadata.csv

Get-ADReplicationPartnerMetadata

Cette applet de commande renvoie les informations sur la configuration et l'état de réplication d'un contrôleur de domaine pour surveiller, créer un inventaire ou résoudre un problème. À la différence de Repadmin.exe, Windows PowerShell permet d'afficher uniquement les données que vous considérez importantes, au format souhaité.

Par exemple, l'état de réplication lisible d'un contrôleur de domaine unique :

Get-ADReplicationPartnerMetadata -target dc1.corp.contoso.com

Capture d’écran montrant comment obtenir l’état de réplication lisible d’un contrôleur de domaine unique.

Ou la dernière réplication entrante d'un contrôleur de domaine et ses partenaires, dans un tableau :

Get-ADReplicationPartnerMetadata -target dc1.corp.contoso.com | format-table lastreplicationattempt,lastreplicationresult,partner -auto

Capture d’écran montrant la dernière réplication entrante d’un contrôleur de domaine et ses partenaires, dans un tableau.

Ou encore, vous pouvez contacter tous les contrôleurs de domaine de la forêt et afficher celui dont la dernière tentative de réplication a échoué pour une raison quelconque :

Get-ADReplicationPartnerMetadata -target * -scope server | where {$_.lastreplicationresult -ne "0"} | ft server,lastreplicationattempt,lastreplicationresult,partner -auto

Capture d’écran montrant comment contacter tous les contrôleurs de domaine de la forêt dans la forêt et afficher celui dont la dernière tentative de réplication a échoué pour une raison quelconque.

Get-ADReplicationFailure

Cette applet de commande peut être utilisée pour renvoyer des informations sur les erreurs récentes de réplication. Il est analogue à Repadmin.exe /showreplsum, mais encore une fois, avec beaucoup plus de contrôle grâce à Windows PowerShell.

Par exemple, vous pouvez renvoyer les échecs les plus récents d’un contrôleur de domaine et les partenaires qu’il n’a pas réussi à contacter :

Get-ADReplicationFailure dc1.corp.contoso.com

Capture d’écran montrant comment renvoyer les échecs les plus récents d’un contrôleur de domaine et les partenaires qu’il n’a pas réussi à contacter.

Vous pouvez également renvoyer un affichage sous forme de tableau pour tous les serveurs d'un site logique Active Directory spécifique, classés pour faciliter la consultation et ne contenant que les données essentielles :

Get-ADReplicationFailure -scope site -target default-first-site-name | format-table server,firstfailuretime,failurecount,lasterror,partner -auto

Capture d’écran montrant comment renvoyer un affichage sous forme de tableau pour tous les serveurs d’un site logique Active Directory spécifique, classés pour faciliter la consultation et ne contenant que les données essentielles.

Get-ADReplicationQueueOperation et Get-ADReplicationUpToDatenessVectorTable

Ces deux applets de commande renvoient les aspects futurs d’un contrôleur de domaine et précisent s’il est à jour. Vous y trouverez des informations de réplication et de vecteur de version en attente.

Sync-ADObject

Cette applet de commande est analogue à l’exécution Repadmin.exe /replsingleobject. Elle s'avère très utile pour apporter des changements qui nécessitent une réplication hors-bande, notamment pour corriger un problème.

Par exemple, si quelqu'un a supprimé le compte d'utilisateur du PDG et l'a restauré avec la Corbeille Active Directory, vous souhaitez certainement qu'il soit immédiatement répliqué sur tous les contrôleurs de domaine Vous voudrez probablement ne pas forcer la réplication de toutes les autres modifications d’objet déjà effectuées. C’est pour cela que vous avez un calendrier de réplication, pour éviter la surcharge des liaisons réseau étendu.

Get-ADDomainController -filter * | foreach {Sync-ADObject -object "cn=tony wang,cn=users,dc=corp,dc=contoso,dc=com" -source dc1 -destination $_.hostname}

Capture d’écran montrant comment répliquer un compte supprimé de la Corbeille Active Directory vers tous les contrôleurs de domaine sans forcer la réplication de toutes les autres modifications apportées aux objets.

Topology

Repadmin.exe est performant lorsqu'il s'agit de renvoyer des informations sur la topologie de réplication comme des sites, des liens de sites, des ponts liens de sites et des connexions, mais il ne dispose pas d'un ensemble complet d'arguments pour apporter des changements. En réalité, aucun utilitaire Windows intégré, scriptable, n'a été spécifiquement conçu pour des administrateurs en vue de créer et de modifier une topologie AD DS. La modification en bloc des informations logiques Active Directory devient nécessaire, car Active Directory a évolué dans des millions d'environnements de clients.

Par exemple, après une expansion rapide de nouvelles succursales, associée à la consolidation d'autres succursales, vous pouvez être amené à apporter une centaine de modifications en fonction des emplacements physiques, des changements du réseau et des besoins en termes de nouvelle capacité. Au lieu d'utiliser Dssites.msc et Adsiedit.msc pour effectuer ces modifications, vous pouvez les automatiser. Ce changement s'impose alors que vous commencez avec une feuille de calcul de données fournies par votre réseau et les équipes des sites.

Les applets de commande Get-Adreplication\* retournent des informations sur la topologie de réplication et permettent d'acheminer vers les applets de commande Set-Adreplication\* en série. Les applets de commande Get ne modifient pas les données ; elles se contentent d'afficher les données ou de créer des objets de session Windows PowerShell, qui peuvent être transmis par pipeline aux applets de commande Set-Adreplication\*. Les applets de commande New et Remove sont utiles pour créer ou supprimer des objets de topologie Active Directory.

Par exemple, vous pouvez créer de nouveaux sites à l'aide d'un fichier CSV :

Import-Csv -path C:\newsites.csv | new-adreplicationsite

Capture d’écran montrant l’interface du Bloc-notes.

Capture d’écran montrant comment créer de nouveaux sites à l’aide d’un fichier CSV.

Vous pouvez également créer un lien de sites entre deux liens existants avec un intervalle de réplication et un coût de site personnalisés :

New-ADReplicationSiteLink -name "chicago<-->waukegan" -sitesincluded chicago,waukegan -cost 50 -replicationfrequencyinminutes 15

Capture d’écran montrant comment créer un lien de sites entre deux sites existants avec un intervalle de réplication et un coût de site personnalisés.

Vous pouvez également rechercher chaque site dans la forêt et remplacer les attributs Options par l’indicateur permettant d’activer la notification de changement entre sites, afin de répliquer à la vitesse maximale tout en utilisant la compression :

Get-ADReplicationSiteLink -filter * | set-adobject -replace @{options=$($_.options -bor 1)}

gestion avancée avec PowerShell

Important

Définissez -bor 5 pour désactiver la compression sur ces liens de site.

Vous pouvez encore rechercher toutes les affectations manquantes de sous-réseaux de sites, pour rapprocher la liste avec les sous-réseaux réels de ces emplacements :

Get-ADReplicationSite -filter * -property subnets | where-object {!$_.subnets -eq "*"} | format-table name

Capture d’écran montrant comment rechercher toutes les affectations manquantes de sous-réseaux de sites, pour rapprocher la liste avec les sous-réseaux réels de ces emplacements.

Voir aussi

Gestion de la topologie et de la réplication Active Directory avec Windows PowerShell (niveau 100)