Sylver SCHORGEN Blog's

Articles, astuces et news sur les technologies Microsoft et plus particulièrement tournant autour de Powershell
  • [PowerShell] Lister tous les objets AD stockés dans vos groupes AD

    J'ai récemment fait un article sur comment récupérer tous les utilisateurs stockés dans vos groupes AD en utilisant un script PowerShell.

    J'ai fait évoluer ce script pour lister également les ordinateurs et les groupes imbriqués. Un fichier de sorti est toujours généré suite à l'exécution du script est ce dernier sera du type :

    Le script utilise les commandes PowerShell suivantes :

    • Get-ADGroup : Avec le paramètre "-Filter *", cette commande permet de récupérer les groupes AD. Cette commande (sans l'option -Filter *) permet également de récupérer les groupes imbriqués dans un autre groupe
    • Get-ADGroupMember : Permet de récupérer les membres d'un groupe AD
    • Get-ADUser : Avec le paramètre "-Properties Enabled", cette commande permet de récupérer l'état du compte (actif ou désactivé).
    • Get-ADComputer : Permet de récupérer les objets ordinateurs

    J'ai ensuite utilisé des foreach afin de boucler sur les groupes, les ordinateurs et les comptes utilisateurs. J'utilise également des conditions if/else afin de pouvoir filtrer et loguer (si c'est un compte utilisateur, s'il est actif ou non, si c'est un compte ordinateur ou un groupe).

    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-ADObjectsByGroup.ps1 -LogFilePath "D:\Logs\"

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

  • [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.