Obtenir des informations sur les contrôleurs de domaine

I. Présentation

Au sein du module Active Directory de PowerShell, Microsoft a introduit un cmdlet nommé « Get-ADDomainController » et il s’avère excellent pour obtenir des informations au sujet des contrôleurs de domaine. Dans ce chapitre, nous allons le manipuler afin de récupérer différentes informations au sujet des contrôleurs de domaine.

II. Lister les contrôleurs de domaine avec PowerShell

Pour commencer, nous pouvons exécuter la commande sans filtre, simplement en demandant un affichage en mode tableau :

Get-ADDomainController -Filter * | Format-Table

Cette commande retourne de nombreuses propriétés. Je vous propose d’en sélectionner quelques-unes : le nom, l’adresse IP, le système d’exploitation, catalogue global (oui ou non) et le nom du site auquel est associé le contrôleur de domaine. Une commande intéressante pour faire un état des lieux rapide de ses contrôleurs de domaine !

Get-ADDomainController -Filter *| Select-Object Name, ipv4Address, OperatingSystem, IsGlobalCatalog, site

Voici le résultat retourné dans mon cas :

Cette commande très générique peut être affinée pour rechercher un contrôleur de domaine en particulier. Par exemple, pour rechercher le contrôleur de domaine « SRV-ADDS-01 » :

Get-ADDomainController -Filter { name -eq "SRV-ADDS-01"}

En fait, on pourrait également rechercher tous les contrôleurs de domaine qui ont le nom qui commence par « SRV-ADDS » en utilisant l’opérateur -like à la place de -eq :

Get-ADDomainController -Filter { name -like "SRV-ADDS*"}

Vous n’êtes pas sans savoir que les contrôleurs de domaine peuvent être répartis entre plusieurs sites Active Directory. Grâce à ce cmdlet, nous pouvons lister les contrôleurs de domaine qui appartiennent à un site spécifique. Par exemple, avec le site par défaut « Default-First-Site-Name » :

Get-ADDomainController -Discover -ForceDiscover -Site "Default-First-Site-Name"

Le paramètre -Discover sert à réaliser une découverte de l’environnement Active Directory, il peut également être utilisé pour localiser un catalogue global :

Get-ADDomainController -Discover -Service "GlobalCatalog"

Dans le même esprit, mais directement à l’aide d’un filtre, nous pouvons afficher la liste des contrôleurs de domaine en lecture seule (RODC) grâce à un filtre sur la propriété « isReadOnly » :

Get-ADDomainController -Filter { IsReadOnly -eq $true }

Pour finir avec cette commande, nous pouvons également exploiter cette commande pour compter le nombre de contrôleurs de domaine que contient ce domaine.

(Get-ADDomainController -Filter * | Measure-Object).Count

III. Vérifier la disponibilité des contrôleurs de domaine

À l’aide de quelques lignes de code en PowerShell, nous pouvons vérifier la disponibilité des contrôleurs de domaine. L’objectif : s’assurer que tous les contrôleurs de domaine sont joignables.

Nous allons réutiliser la commande Get-ADDomainController que nous allons coupler à l’utilisation de Test-NetConnection. Dans cet exemple, j’utilise le port 389 correspondant au LDAP pour vérifier la connexion, mais il est tout à fait possible d’utiliser le port TCP/636 pour le LDAPS.

Ci-dessous, le bout de code qui permettra de vérifier la disponibilité des contrôleurs de domaine :

ForEach($DC in (Get-ADDomainController -Filter *))
{
    $NetConnectionResult = Test-NetConnection -ComputerName $DC.Hostname -Port 389 -InformationLevel Quiet

    if ($NetConnectionResult -ne $True){
        Write-Host "$($DC.Hostname) indisponible !" -ForegroundColor Red
    }else {
        Write-Host "$($DC.Hostname) disponible !" -ForegroundColor Green
    }
}

Une ligne sera générée pour chaque contrôleur de domaine :

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3218 posts and counting.See all posts by florian