Afficher les propriétés d’un utilisateur Active Directory avec Powershell

Dans cet article je vous propose d’afficher l’ensemble des propriétés d’un compte Active Directory depuis l’interpréteur Powershell.

Ce type de manipulation est très instructif et surtout très utile lorsque l’on souhaite lister les propriétés d’un compte AD dans le cadre de la construction de scripts plus élaborés. En effet nous allons lister ici le nom des propriétés et leurs contenus ce qui permettra en un clin d’œil de savoir par exemple que le propriété contenant la valeur Etage1 se nomme physicalDeliveryOfficeName

Consultez la section Powershell Pour les Nuls pour accédez à l’index de tous les tutoriels Powershell proposés sur SysKB

Nous allons travailler directement depuis l’interpréteur Powershell mais vous pourriez très bien chaîner les différentes actions depuis un script .PS1

Avant de commencer et si vous n’êtes pas encore à l’aise en Powershell je vous invite à consulter les articles suivants:

Récupérer les propriétés d’un utilisateur

Je vais écrire dans la variable $user toutes les propriétés Active Directory de l’utilisateur Jean Dupont, situé dans l’OU Utilisateurs du domaine domlab.com. Pour ce faire j’attaque directement le serveur Active Directory SRVAD

PS C:\>$user = New-Object DirectoryServices.DirectoryEntry('LDAP://SRVAD/cn=Jean Dupont,ou=Utilisateurs,dc=domlab,dc=com')

Je peux alors afficher la contenu de la variable $user en entrant:

PS C:\>$user

Ce me renvoie le résultat suivant:

distinguishedName
-----------------
{CN=Jean Dupont,OU=Utilisateurs,DC=Domlab,DC=com}

Ce n’est pas tout à fait convaincant car l’on affiche que la première valeur de la variable $user. Nous allons donc voir comment afficher TOUTES les propriétés de ce compte.

Afficher toutes les propriétés de l’utilisateur

Pour cela entrer la commande suivante:

PS C:\>$user | fl *

Filtrer les propriétés à afficher

Maintenant que nous connaissons la correspondance entre les propriétés et les valeurs nous pouvons sélectionner uniquement les propriétés qui nous intéresse vraiment grâce à la commande select

PS C:\>$user | select cn,displayname,description,physicalDeliveryOfficeName,telephoneNumber,givenName,initials,sn,company,
homeDrive,homeDirectory,profilePath,scriptPath,sAMAccountName,mail

On obtient ainsi:

cn : {Jean Dupont}
displayName : {Jean Dupont}
description : {Utilisateur du domaine}
physicalDeliveryOfficeName : {Etage 1}
telephoneNumber : {12345}
givenName : {Jean}
initials : {JD}
sn : {Dupont}
company : {SARL DUCOIN}
homeDrive : {Z:}
homeDirectory : {\\srvad\profile$\JDupont}
profilePath : {\\srvad\profile$\JDupont}
scriptPath : {Logonscript.cmd}
sAMAccountName : {JDUPONT}
mail : {j.dupont@ducoin.com}

Exporter les informations vers un fichier .CSV

Nous allons maintenant exporter les informations concernant cet utilisateur vers un fichier .CSV:

PS C:\>$user | select cn,displayname,description,physicalDeliveryOfficeName,telephoneNumber,givenName,initials,sn,company,
homeDrive,homeDirectory,profilePath,scriptPath,sAMAccountName,mail | Export-Csv -NoTypeInformation c:\users.csv

Laisser un commentaire

Cliquez ici pour révoquer votre décision.