Lister les rôles FSMO en PowerShell

I. Présentation

Il est possible de vérifier les rôles FSMO directement depuis l'interface graphique ou en utilisant l'utilitaire ntdsutil en ligne de commande, cependant pour faire une telle vérification dans un script ce n'est pas pratique, et, en plus l'heure est au PowerShell !

Le module Active Directory de PowerShell 4.0 intègre plusieurs commandlets intéressants dont deux qui nous permettent de récupérer facilement le maître d'opération pour chacun des rôles FSMO.

Pour rappel, il existe 5 rôles FSMO différents ayant chacun un maître d'opération unique, deux d'entre eux (Maître de schéma - Maître d'attribution des noms de domaine) au niveau de la forêt, les trois autres au niveau du domaine (Émulateur PDC - Maître RID - Maître d'infrastructure).

II. Lister les maîtres d'opérations

Passons à la manipulation de PowerShell, commencez par ouvrir une console. Pour lister les maîtres d'opérations définit au niveau de la forêt, on utilisera la commande Get-ADForest où l'on indiquera uniquement deux propriétés à afficher :

- Maître de schéma = SchemaMaster

- Maître d'attribution des noms de domaine = DomainNamingMaster

Ce qui donnera la commande suivante (exemple avec le domaine "it-connect.fr") :

Get-ADForest it-connect.fr | Format-Table SchemaMaster,DomainNamingMaster

Concernant les 3 derniers rôles FSMO, on passera par l'utilisation de Get-ADDomain à la place de Get-ADForest, le principe de la commande reste le même.

- Émulateur PDC = PDCEmulator

- Maître RID = RIDMaster

- Maître d'infrastructure = InfrastructureMaster

Get-ADDomain it-connect.fr | Format-Table PDCEmulator,RIDMaster,InfrastructureMaster

Voici un aperçu du résultat de mon côté :

fsmops2

Vous me direz cela n'est pas très exploitable dans un script... Je suis d'accord, voyons une méthode plus précise pour obtenir uniquement le nom du contrôleur de domaine qui est le FSMO master du rôle concerné. Le principe pour sélectionner la propriété est le suivant :

(Get-ADDomain <domaine>).<nom-rôle-forêt>
(Get-ADDomain <domaine>).<nom-rôle-domaine>

Ce qui donnera :

(Get-ADForest it-connect.fr).SchemaMaster
(Get-ADForest it-connect.fr).DomainNamingMaster
(Get-ADDomain it-connect.fr).PDCEmulator
(Get-ADDomain it-connect.fr).RIDMaster
(Get-ADDomain it-connect.fr).InfrastructureMaster

fsmops1

On peut facilement imaginer un script où l'on définit la valeur que doit avoir chaque maître d'opération, et, qu'on la compare à la valeur récupérée en production via Get-ADDomain et Get-ADForest, afin de savoir si la configuration au niveau des rôles FSMO n'est pas modifiée. Il faut également prévoir un envoi de mail dans le script ou pourquoi pas remonter une alerte sur l'application de supervision.

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, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". 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.

Nombre de posts de cet auteur : 5561.Voir tous les posts

4 thoughts on “Lister les rôles FSMO en PowerShell

  • Je ne suis pas vraiment fan du PowerShell : il faut vraiment se taper les commandes à rallonge !

    Cependant, c’est toujours bon à prendre. Pour info, l’équivalent de la commande en cmd : netdom query fsmo.

    Répondre
    • Salut hwasink,

      C’est sur que certaines commandes sont à rallonges, mais, c’est puissant et flexible ! Et pour le scripting il sera plus facile de s’en sortir avec la manipulation d’une commande PowerShell qu’avec des utilitaires comme netdom. Mais je suis d’accord sur un point avec toi : Les deux sont bons à prendre !

      Bonne journée.
      Florian

      Répondre
      • Je suis aussi d’accord avec toi sur le PS : puissant et flexible !

        Répondre
  • Bonjour Florian.

    Je suis à la recherche d’un moyen via powershell de faire une vérification de notre KDC.

    Aurais-tu cela sous la main ?

    Excellente journée.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.