Active Directory – Logon Server : sur quel contrôleur de domaine ma machine s’est-elle authentifiée ?
I. Présentation
Dans ce tutoriel, nous allons apprendre à identifier le contrôleur de domaine utilisé par un ordinateur pour s'authentifier auprès de l'annuaire Active Directory. Autrement dit, nous allons identifier le Logon Server.
Lorsque l'on se connecte à une machine intégrée à un domaine Active Directory, l'ordinateur doit contacter un contrôleur de domaine pendant la phase d'authentification. Dans un environnement avec plusieurs contrôleurs de domaine, on fait en sorte de bien configurer les sites Active Directory de manière à ce que l'authentification soit réalisée auprès d'un contrôleur de domaine rattaché au site sur lequel on se trouve.
Dans certains cas, notamment pour vérifier le bon fonctionnement de sa configuration de Sites Active Directory ou pour essayer de comprendre l'origine d'un problème (lenteur à la connexion, GPO qui ne s'applique pas, etc.), il est très intéressant d'identifier le Logon Server utilisé par une machine au moment de la connexion.
C'est le service NetLogon, intégré à Windows, qui est en charge de solliciter le domaine Active Directory afin de savoir quel contrôleur de domaine doit être contacté. À partir de là, l'Active Directory retourne la liste des contrôleurs de domaine disponibles dans le site où se situe la machine. Pour rappel, cette configuration est visible dans la console "Sites et services Active Directory", où l'on fait l'affectation entre des noms de sites, des contrôleurs de domaine et des réseaux IP.
II. Quel est le Logon Server ?
Pour voir quel est le Logon Server utilisé par une machine au moment de l'authentification, il est possible de consulter la variable d'environnement "LogonServer". On peut consulter cette variable avec PowerShell ou l'Invite de commandes !
Voici la commande PowerShell :
$env:logonserver
En retour, j'obtiens le nom du contrôleur de domaine sur lequel je me suis authentifié, à savoir "SRV-ADDS-01" :
En passant par l'Invite de commande, la même information, via la même variable d'environnement, peut être obtenue. Dans ce cas, c'est cette commande qu'il faut exécuter :
set logonserver
Le retour sera celui-ci :
LOGONSERVER=\\SRV-ADDS-01
Personnellement, j'ai l'habitude d'utiliser la lecture via PowerShell, mais c'est toujours bon à savoir avec l'Invite de commande. Si aucun serveur n'est capable de traiter la demande d'authentification, un message d'erreur s'affichera sur la fenêtre de connexion Windows, à moins que la machine soit en mesure d'exploiter le cache des identifiants (si l'utilisateur s'est déjà connecté sur cette même machine).
Puisque l'on parle de Logon Server, sachez que lors de la connexion sur une machine avec un utilisateur local, c'est le nom de l'ordinateur local qui sera affecté à la variable "Logon Server". Par exemple, sur mon poste, cela donne :
LOGONSERVER=\\PC-FLO
III. Aller plus loin avec nltest
Pour aller plus loin dans l'analyse de la configuration (et de la situation), nous pouvons utiliser l'outil "nltest" qui est intégré à Windows. Il permet notamment d'obtenir une liste des contrôleurs de domaine. Voici deux commandes à connaître, ou en tout cas, à garder dans un coin.
- Obtenir des informations sur le contrôleur de domaine le plus proche
nltest /SC_QUERY:it-connect.local
- Obtenir des informations sur le contrôleur de domaine utilisé
nltest /DSGETDC:it-connect.local
Comme le montre l'image ci-dessus, au-delà d'indiquer le nom du serveur, on a également son adresse IP, le nom du domaine Active Directory, ainsi que le nom du site Active Directory du contrôleur de domaine et le nom du site Active Directory de notre machine. C'est très pratique pour vérifier si notre configuration est à la fois cohérente et bien prise en compte. Ici, c'est un exemple sur un environnement monosite avec le site par défaut nommé "Default-First-Site-Name".
Pour avoir des informations sur le catalogue global utilisé, l'option "/GC" peut être ajoutée :
nltest /DSGETDC:it-connect.local /GC
IV. Conclusion
Voilà, suite à la lecture de cet article, vous êtes désormais capable d'identifier le serveur contrôleur de domaine utilisé par votre machine pour vous authentifier auprès de l'annuaire Active Directory ! Cette variable d'environnement est à connaître, et les commandes "nltest" sont également utiles pour approfondir un dépannage ou analyser une configuration existante.
Merci Florian. Instructif comme d’habitude.