Comment récupérer les informations d’un contrôleur de domaine à l’aide de PowerShell

Obtenir des informations sur vos contrôleurs de domaine Active Directory à l’aide de PowerShell est essentiel pour le dépannage ou la compréhension de votre environnement. La cmdlet Get-ADDomainController du module AD peut s’avérer précieuse, notamment pour vérifier l’installation, les rôles ou les configurations. Cependant, de nombreux utilisateurs rencontrent des difficultés, par exemple une installation RSAT incorrecte ou une méconnaissance des commandes. Ce guide présente les méthodes les plus courantes d’utilisation de cette cmdlet, ainsi que des scripts pratiques pour vérifier l’accessibilité et le bon fonctionnement de tous vos contrôleurs de domaine.

Que vous cherchiez à identifier le contrôleur de domaine actuellement utilisé par votre machine, à lister tous les contrôleurs ou à explorer des sites ou des rôles spécifiques, ces commandes et scripts vous éviteront bien des tracas. Car, comme toujours, Windows complique un peu les choses. Attendez-vous à utiliser des lignes de commande, des raccourcis et peut-être même un ou deux scripts pour automatiser la vérification de la disponibilité et de la réactivité de vos contrôleurs de domaine.

Comment utiliser PowerShell pour obtenir des informations sur les contrôleurs de domaine

Obtenir des informations de base sur votre contrôleur de domaine actuel

Sans paramètres, ce script Get-ADDomainControllerrécupère les données du contrôleur de domaine auquel votre machine est actuellement authentifiée ; pratique pour vérifier avec quel contrôleur de domaine vous communiquez. Il affiche des informations telles que l’adresse IP, le nom d’hôte, la version du système d’exploitation et les rôles. Son fonctionnement reste flou, mais les résultats sont généralement précis si votre environnement Active Directory n’est pas trop complexe.

Get-ADDomainController

Par défaut, toutes les informations disponibles sont renvoyées, mais si vous souhaitez des informations spécifiques, vous pouvez sélectionner des champs ou affiner votre recherche.

Recherche des contrôleurs de domaine les plus proches ou spécifiques à l’aide des commandes de découverte

C’est là que ça devient intéressant, car Windows peut vous aider à découvrir les contrôleurs de domaine sur votre réseau ou au sein d’un site spécifique. Par exemple, pour trouver le contrôleur de domaine le plus proche (celui auquel votre machine se connecte habituellement), vous pouvez exécuter la commande suivante :

Get-ADDomainController -Discover

Et si vous souhaitez être plus agressif, en forçant une nouvelle découverte et en recherchant le rôle de service Web AD (utile si vous voulez vous assurer qu’un contrôleur de domaine l’a installé), essayez :

Get-ADDomainController -ForceDiscover -Discover -Service ADWS

Si vous devez localiser le contrôleur de domaine principal (PDC) ou d’autres rôles FSMO, vous pouvez spécifier les rôles comme ceci :

Get-ADDomainController -Discover -Service PrimaryDC

Pour obtenir des informations sur tous les contrôleurs de domaine de votre domaine, exécutez simplement la commande suivante :

Get-ADDomainController -Filter *

Cette fonction peut également être intégrée à d’autres commandes, par exemple pour mesurer le nombre de contrôleurs disponibles :

Get-ADDomainController -Filter * | Measure-Object

Et si le résultat est trop volumineux, vous pouvez le formater correctement :

Get-ADDomainController -Filter * | Select-Object Name, ipv4Address, OperatingSystem, Site | Sort-Object Name

Dans certaines configurations, si les contrôleurs de domaine se trouvent dans des domaines approuvés différents, vous pouvez spécifier le paramètre -Server avec un nom de domaine particulier, comme ceci :

Get-ADDomainController -Filter * -Server dc01.test.com | Select-Object Name, ipv4Address, IsGlobalCatalog, Site

Filtrer vos contrôleurs de domaine en fonction de certains critères

Si vous recherchez des contrôleurs de domaine spécifiques, par exemple ceux situés sur un site particulier ou ayant des rôles spécifiques, ces filtres vous seront utiles. Par exemple, trouvez un contrôleur de domaine par son adresse IP :

Get-ADDomainController -Identity "192.168.100.6"

Ou tous les contrôleurs de domaine dont le nom contient « dc02 » :

Get-ADDomainController -Filter {name -like "*dc02*"} | Select-Object Name, ipv4Address, OperatingSystem, Site

Ou recherchez tous les RODC (contrôleurs de domaine en lecture seule) :

Get-ADDomainController -Filter {IsReadOnly -eq $true} | Select-Object Name, ipv4Address, OperatingSystem, Site

Si vous souhaitez en savoir plus sur les contrôleurs de domaine d’un site spécifique, comme « Rome », vous pouvez procéder comme suit :

Get-ADDomainController -Filter {Site -eq "Rome"} | Select-Object Name, ipv4Address, OperatingSystem, Site

Vérification du bon fonctionnement de tous vos contrôleurs de domaine

C’est la solution idéale pour résoudre les problèmes de réseau ou vérifier l’état des contrôleurs de domaine. Vous pouvez créer un script rapide pour tester la connectivité des ports concernés sur chaque contrôleur de domaine. L’exemple ci-dessous vérifie le port 636 (LDAPS), un port couramment utilisé pour le protocole LDAP sécurisé. Il est facile de vérifier si le port est ouvert et en écoute. Dans le cas contraire, un avertissement s’affiche.

$DCs = Get-ADDomainController -Filter * | Select-Object Hostname, Ipv4Address, IsGlobalCatalog, Site, Forest, OperatingSystem ForEach ($DC in $DCs) { $Result = Test-NetConnection -ComputerName $DC. Hostname -Port 636 -InformationLevel Quiet if ($Result -ne $true) { write-host "$($DC. Hostname) — NOT available" -BackgroundColor Red -ForegroundColor White } else { write-host "$($DC. Hostname) — available" -BackgroundColor Green -ForegroundColor White } }

Cela permet de voir rapidement et facilement quels contrôleurs de domaine répondent et lesquels ne répondent pas. Car soyons honnêtes, il arrive que les contrôleurs de domaine soient instables ou que des problèmes surviennent, et un simple test de port peut éviter bien des conjectures.

Bien sûr, vous pouvez adapter ce script pour vérifier d’autres ports, exécuter des diagnostics supplémentaires, voire consigner les résultats. Sur certaines machines, il se peut que le script nécessite quelques ajustements ou qu’il échoue lors de sa première exécution ; un redémarrage ou une nouvelle exécution suffit généralement. N’oubliez pas : l’automatisation est votre alliée.

Résumé

  • PowerShell est idéal pour interroger les contrôleurs de domaine AD et les filtrer en fonction de vos besoins.
  • Les commandes de découverte permettent de trouver les contrôleurs de domaine les plus proches ou spécifiques, ce qui représente un gain de temps considérable.
  • Les scripts permettant de vérifier la disponibilité des contrôleurs de domaine sont faciles à configurer et peuvent éviter bien des soucis lors du dépannage.

Conclure

Grâce à ces commandes et scripts, vous pouvez gérer efficacement vos contrôleurs de domaine sans avoir à éplucher des tonnes de journaux ni à les tester manuellement. Il s’agit en quelque sorte de savoir quelles questions poser à Windows et de le laisser faire le gros du travail. Je ne sais pas pourquoi c’est parfois si peu intuitif, mais une fois que vous aurez compris le système, vous vous demanderez comment vous avez pu vous en passer.

J’espère que cela permettra à certains de gagner quelques heures et de rendre la gestion des applications un peu moins mystérieuse.