Sylver SCHORGEN Blog's

Articles, astuces et news sur les technologies Microsoft et plus particulièrement tournant autour de Powershell

[PowerShell] Lister tous les utilisateurs de tous les groupes Active Directory

Récemment, un client m'a demandé de lui transmettre un fichier plat contenant tous les groupes AD avec les membres de chacun de ces groupes, ainsi que l'état du compte (activé ou non). Le fichier devait être du type : 

NOM_DU_GROUPE :

- User 1 -> Enable
- User 2 -> Disable
- User 3 -> Enable
- ...

Afin de pouvoir réaliser cette action, j'ai uniquement besoin de 3 commandes : 

  • Get-ADGroup : Avec l'option "-Filter *", cette commande permet de récupérer tous les groupes AD
  • Get-ADGroupMember : Commande permettant de récupérer tous les membres d'un groupe
  • Get-ADUser : Avec le paramètre "-Properties Enabled", cette commande permet de récupérer l'état du compte (actif ou désactivé)

J'ai ensuite utilisé des foreach afin de boucler sur tous les groupes et tous les utilisateurs. J'ai également utilisé des Write-Host et Write-Output afin d'écrire sur la console et d'écrire dans un fichier.

La liste des paramètres à fournir au script :

  • LogFilePath : Chemin du fichier de log qui sera généré par le script. Attention, ce chemin doit finir par un "\".

Un exemple d'exécution du script : .\AD_Get-ADUserByGroup.ps1 -LogFilePath "D:\Logs\"

Pour télécharger le script : C'est par ici.

Ce script peut bien entendu être amélioré; notamment au niveau du fichier de sortie (création d'un csv ou xml ou directement d'un fichier Excel avec plusieurs onglets - ajout de vérification, try catch, ...). Je vous laisse améliorer ce script en fonction de vos besoins.

Facebook Like
Anonymous