Active Directory – Comment récupérer le DistinguishedName d’un objet ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir différentes façons de récupérer le DistinguishedName d'un objet Active Directory, que ce soit un utilisateur, un ordinateur ou encore un groupe. Lorsque l'on manipule l'Active Directory, cet attribut est l'un des plus utilisés ! Avant cela, une présentation de cet attribut s'impose !
II. L'Active Directory et le DistinguishedName
Le Distinguished Name (DN) est un nom unique qui identifie chaque objet dans l'Active Directory. C'est une chaîne de caractères qui représente la position de l'objet dans l'arborescence de l'annuaire. Il est composé de plusieurs parties, appelées composants de nom, qui sont séparées par des points et qui correspondent à des objets parent dans l'arborescence.
Par exemple, dans le DN suivant :
CN=Florian Burnel,OU=Personnel,DC=it-connect,DC=local
Quelques explications :
- CN=Florian Burnel : est le nom commun de l'objet, qui correspond à l'utilisateur Florian Burnel.
- OU=Personnel : est l'unité d'organisation où se situe l'objet, mais le DN peut intégrer plusieurs OUs (s'il y a une arborescence complète)
- DC=it-connect,DC=local : sont là pour représenter le domaine auquel appartient cet objet, à savoir ici "it-connect.local"
Le DN complet d'un objet est utilisé pour identifier de manière unique l'objet dans l'Active Directory. Ce chemin vers l'objet peut être utilisé dans les requêtes LDAP. On l'utilise très souvent au travers de requêtes PowerShell pour cibler un objet spécifique.
III. Récupérer le DistinguishedName dans l'Active Directory
Il existe plusieurs façons de récupérer le Distinguished Name (DN) d'un utilisateur dans l'Active Directory, autant en mode graphique qu'à partir de la ligne de commande. Voyons quelques méthodes.
A. Utiliser la console "Utilisateurs et ordinateurs Active Directory"
Ouvrez la console "Utilisateurs et ordinateurs Active Directory" sur votre contrôleur de domaine ou une machine équipée des outils RSAT.
Une fois que c'est fait, cliquez sur "Affichage" dans le menu, puis "Fonctionnalités avancées" pour que l'onglet "Editeur d'attributs" soit visible dans les propriétés d'un objet. Dans la liste des attributs, vous pouvez trouver le fameux "distinguishedName" : en double cliquant sur la ligne, une fenêtre s'ouvre et celle-ci vous permet de copier-coller le DN de l'objet !
La console "Centre d'administration Active Directory" peut également être utilisée pour récupérer le DN d'un objet. Lorsque l'on accède aux propriétés de l'objet, il faut se rendre dans la section "Extensions" pour visualiser la liste des attributs. Ceci donne accès au DN.
B. Utiliser PowerShell
Une autre façon de faire, très pratique, c'est d'utiliser le module PowerShell "ActiveDirectory", à partir d'un contrôleur de domaine Active Directory ou d'une machine où ce module est installé.
Si besoin, car normalement c'est automatique, importez le module :
Import-Module ActiveDirectory
Puis, pour récupérer uniquement la valeur du DN d'un utilisateur spécifique, utilisez cette commande :
(Get-ADUser -Identity "login de l'utilisateur").DistinguishedName
Pour l'utilisateur Guy Mauve dont l'identifiant est "guy.mauve", cela donne :
(Get-ADUser -Identity "guy.mauve").DistinguishedName
Et la commande me retourne bien le DN :
CN=Guy Mauve,OU=Personnel,DC=it-connect,DC=local
Dans le même esprit, on peut récupérer le DN d'un ordinateur avec PowerShell :
(Get-ADComputer -Identity "nom de la machine").DistinguishedName
Par exemple :
(Get-ADComputer -Identity "PC-01").DistinguishedName
CN=PC-01,OU=PC,DC=it-connect,DC=local
Ainsi que le DN d'un groupe, toujours avec PowerShell :
(Get-ADGroup -Identity "Nom du groupe").DistinguishedName
Par exemple :
(Get-ADGroup -Identity "Admins du domaine").DistinguishedName
CN=Admins du domaine,CN=Users,DC=it-connect,DC=local
A chaque fois le principe reste le même, si ce n'est que l'on utilise une commande différente (Get-ADUser, Get-ADComputer, Get-ADGroup), en fonction du type d'objet que l'on cible.
C. Utiliser dsquery
Depuis Windows Server 2008, il y a un outil nommé "dsquery" qui est inclus au système sur tous les serveurs où le rôle ADDS est installé. Autrement dit, sur les contrôleurs de domaine.
Avec cet outil, on peut également récupérer le DN d'un utilisateur assez facilement.
dsquery user -name "nom de l'utilisateur"
Cette commande affichera le DN de l'utilisateur. On peut le constater en reprenant l'exemple de Guy Mayve :
dsquery user -name "Guy Mauve"
Qui va me retourner cette valeur :
"CN=Guy Mauve,OU=Personnel,DC=it-connect,DC=local"
On peut aussi cibler un ordinateur avec dsquery :
dsquery computer -name "PC-01"
Ainsi qu'un groupe de l'Active Directory :
dsquery group -name "Admins du domaine"
Il faut savoir que ça existe, mais personnellement j'utilise plutôt la méthode basée sur PowerShell notamment au sein de scripts.
IV. Conclusion
Suite à la lecture de ce tutoriel, vous connaissez différentes façons de récupérer le DN d'un objet Active Directory ! À vous de choisir la méthode qui convient le mieux à votre besoin !