Partager 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. Topologie

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 :

Applet de commande Explication
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.

De plus, les applets de commande suivantes implémentent un nouveau jeu de paramètres Target, Scope et EnumerationServer :

  • Get-ADReplicationFailure

  • Get-ADReplicationPartnerMetadata

  • Get-ADReplicationUpToDatenessVectorTable

L'argument Target accepte une liste CSV de chaînes qui identifient les serveurs, sites, domaines ou forêts cibles spécifiés par l'argument Scope. 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 Scope spécifie la latitude de la recherche. Les valeurs acceptables sont Server, Site, Domain et Forest. L'argument EnumerationServer indique le serveur qui énumère la liste des contrôleurs de domaine spécifiés dans Target et Scope. Il fonctionne comme l'argument Server et nécessite que le serveur spécifié exécute les services 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 semblable à 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.

Sinon, vous pouvez obtenir les métadonnées pour une classe entière d'objets, en traitant en pipeline l'applet de commande Get-Adobject avec un filtre, tel que « tous les groupes », associé à 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. Elle est analogue à Repadmin.exe /showreplsum, mais avec un niveau nettement plus élevé 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 revient à exécuter 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.

Topologie

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\* renvoient des informations sur la topologie de la réplication et sont utiles pour traiter en pipeline les applets de commande Set-Adreplication\* en bloc. Les applets de commande Get ne modifient pas les données, elles affichent uniquement les données ou créent des objets de session Windows PowerShell qui peuvent être traités en pipeline vers les applets de commande Set-Adreplication\*. Les applets de commande New et Remove servent à créer et supprimer les 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.

Sinon, vous pouvez rechercher chaque site dans la forêt et remplacer leurs attributs Options par le drapeau pour activer la notification de modifications inter-sites, afin de répliquer le plus rapidement possible avec une compression :

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

gestion avancée avec PowerShell

Important

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

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)