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