Comment utiliser l’applet de commande PowerShell Get-ADUser

L’applet de commande PowerShell Get-ADUser est l’une des plus utilisées par les administrateurs gérant AD. Elle sert à interroger et obtenir tous les utilisateurs AD et leurs propriétés précises, et à appliquer des filtres pour rechercher certains utilisateurs selon les unités d’organisation (UO), l’appartenance aux groupes ou des attributs. Cet article explique comment utiliser l’applet de commande Get-ADUser avec des exemples pratiques, notamment les techniques de filtrage avancées, la sélection de propriétés et bien plus encore. De plus, cet article compare directement l’applet aux rapports sur les utilisateurs AD d’ADManager Plus, outil de suivi AD.

Recherche d’utilisateurs AD : PowerShell vs ADManager Plus

Découvrez comment l’utilisation d’un script dans PowerShell se distingue du suivi simple via l’interface graphique d’ADManager Plus.

Windows PowerShell

Avant de commencer, vérifiez que :

  • Le module Active Directory pour PowerShell est installé.
  • La bonne stratégie d’exécution PowerShell est configurée.
  • Le compte que vous utilisez dispose d’autorisations en lecture pour le domaine AD à interroger.

Pour obtenir la liste de tous les utilisateurs AD via PowerShell :

  1. Ouvrez Windows PowerShell en tant qu’administrateur et exécutez le script suivant :
    Get-ADUser -Filter *

Utilisez différents paramètres avec l’applet de commande Get-ADUser pour générer des rapports sur les utilisateurs plus précis.

ADManager Plus

Pour obtenir la liste de tous les utilisateurs AD via ADManager Plus :

  1. Connectez-vous à ADManager Plus.
  2. Accédez à Rapports > Rapports sur les utilisateurs > Rapports généraux > Tous les utilisateurs.
  3. Sélectionnez le domaine concerné.
  4. Cliquez sur Générer.

Paramètres Get-ADUser

Voici certains paramètres courants utilisables avec l’applet de commande Get-ADUser :

ParamètreDescription
-IdentityCe paramètre indique un utilisateur unique à récupérer via son sAMAccountName, DN, GUID ou SID.
-FilterCe paramètre recherche les utilisateurs en fonction d’une requête. Utilisez * pour obtenir tous les utilisateurs.
-PropertiesCe paramètre indique les autres attributs d’utilisateur à récupérer.
-SearchBaseLimite la recherche à une UO ou un chemin de conteneur spécifique.
-SearchScopeDéfinit la profondeur de la recherche (Base, OneLevel ou Subtree). La valeur par défaut est Subtree.
-ResultSetSizeDéfinit le nombre maximal d’utilisateurs que la requête va renvoyer. Utilisez $null pour aucune limite.
-ServerIndique le contrôleur de domaine pour lequel exécuter la requête.
-LDAPFilterRecherche les utilisateurs avec la syntaxe de requête LDAP plus complexe au lieu du filtre PowerShell.
-CredentialExécute la commande avec les identifiants d’un autre compte d’utilisateur.

Exemples de scripts et de cas d’usage des filtres Get-ADUser

Example 1: obtenir un seul utilisateur et toutes les propriétés

Pour récupérer les détails d’un utilisateur donné, utilisez le paramètre -Identity. On peut identifier les utilisateurs par leur sAMAccountName, DN, GUID ou SID :

#Get user by sAMAccountName
Get-ADUser -Identity "jdoe"
#Get user by UPN
Get-ADUser -Identity "john.d@company.com"
#Get user by DN
Get-ADUser -Identity "CN=John Doe,OU=Users,DC=company,DC=com"

Pour obtenir tous les utilisateurs du domaine Active Directory, utilisez le paramètre -Filter *.

# Get all users (basic properties only)
Get-ADUser -Filter *
# Format output in a table for better readability
Get-ADUser -Filter * | Format-Table Name, sAMAccountName, Enabled

Example 2: obtenir d’autres propriétés d’utilisateur comme le service, l’adresse électronique, etc.

Pour afficher des détails plus utiles comme l’adresse électronique ou le service, il faut utiliser le paramètre -Properties.

# To view all properties for all users
Get-ADUser -Filter * -Properties *
# To view a specific selection of properties for all users
Get-ADUser -Filter * -Properties email, department | Select-Object Name, email, department

Example 3: filtrer et exporter les utilisateurs vers un fichier CSV

On a souvent besoin d’exporter la liste des utilisateurs vers un fichier CSV pour le suivi ou l’audit. L’utilisation de l’applet Export-Csv avec l’applet Get-ADUser le permet.

Get-ADUser -Filter * -Properties email, department | Select-Object name, email, department | Export-Csv -Path "C:\Reports\ad_users.csv" -NoTypeInformation

Example 4: obtenir les utilisateurs AD d’une UOU

La clé pour limiter la recherche à une UO consiste à utiliser le paramètre -SearchBase de l’applet Get-ADUser. Pour cela, il faut connaître le nom unique (DN) de l’UO dans laquelle effectuer la recherche. Il s’agit d’un chemin unique vers l’UO du domaine.

Voici comment l’obtenir:

  1. Ouvrez Utilisateurs et ordinateurs Active Directory.
  2. Dans le menu en haut, cliquez sur Afficher et vérifiez que la case Fonctionnalités avancées est cochée.
  3. Accédez à l’UO cible et cliquez avec le bouton droit de la souris.
  4. Sélectionnez Propriétés.
  5. Dans l’onglet Éditeur d’attributs, recherchez l’attribut distinguishedName dans la liste et copiez sa valeur.

Une fois le DN obtenu, utilisez-le avec le paramètre -SearchBase. La commande -Filter * permet d’obtenir tous les utilisateurs à cet endroit.

Get-ADUser -Filter * -SearchBase "OU=Sales,DC=yourdomain,DC=com"

Example 5: rechercher des utilisateurs avec un poste précis

Utilisez cette commande pour générer une liste de tous les utilisateurs qui occupent un poste précis dans l’organisation. Cela peut être utile pour créer des listes de distribution de courrier ciblée ou pour le suivi des services.

Get-ADUser -Filter "Title -eq 'Sales Manager'" -Properties displayName, department | Select-Object displayName, department, sAMAccountName

Example 6: rechercher les utilisateurs récemment créés

Ce script récupère une liste de tous les comptes d’utilisateur créés au cours des sept derniers jours. Cela aide à suivre les créations de compte récentes ou vérifier la bonne configuration des nouveaux employés.

$days = 7
$cutoffDate = (Get-Date).AddDays(-$days)
Get-ADUser -Filter 'whenCreated -ge $cutoffDate'-Properties whenCreated | Select-Object Name, sAMAccountName, whenCreated

Example 7: rechercher des utilisateurs par nom partiel

Si on ne connaît qu’une partie du nom d’un utilisateur, on peut le trouver avec un caractère générique (*). Par exemple, pour trouver tous les utilisateurs dont le nom contient John, on peut utiliser le script suivant :

Get-ADUser -Filter "Name -like '*John*'" -Properties displayName, email | Select-Object displayName, email

Example 8: rechercher les subordonnés directs d’un manager

Ce script utilise le DN d’un utilisateur pour rechercher tous les comptes qui l’affichent comme manager, représentant bien les structures d’équipe.

$manager = Get-ADUser "manager.sAMAccountName"
Get-ADUser -Filter "manager -eq '$($manager.distinguishedName)'"-Properties displayName, Title | Select-Object Name, DisplayName, Title

Example 9: rechercher les utilisateurs de plusieurs services

Cet exemple montre comment récupérer une liste d’utilisateurs appartenant à plusieurs services. Cela est bien plus efficace que d’exécuter une commande par service et de regrouper le résultat.

Get-ADUser -Filter "department -eq 'Sales' -or department -eq 'Marketing'" -Properties department | Select-Object name, department

Conseils de dépannage

  1. Erreur : Get-ADUser n’est pas un nom d’applet de commande reconnu.

    Solution: cette erreur signifie que le module Active Directory n’est pas installé ou disponible dans la session PowerShell. Pour la corriger, il faut installer les outils d’administration de serveur distant (RSAT) pour AD sur le poste client Windows. Sur un serveur, vérifiez que la fonctionnalité Module Active Directory pour Windows PowerShell est installée.

  2. Erreur : impossible de trouver un objet avec l’identité: 'nom d’utilisateur'

    Solution : cela indique que l'utilisateur défini par le paramètre -Identity est introuvable. Vérifiez l’orthographe du nom d’utilisateur et que le compte d’utilisateur existe bien dans AD et n’a pas été supprimé.

  3. Erreur : accès refusé

    Solution : le compte d’utilisateur servant à exécuter le script PowerShell ne possède pas les autorisations nécessaires pour lire les données dans AD. Pour résoudre ce problème, exécutez PowerShell comme utilisateur membre du domaine possédant au moins un accès en lecture.

  4. Erreur : erreur d’analyse de la requête

    ce type d’erreur, ou le fait de ne pas obtenir les résultats prévus, provient souvent d’un problème de syntaxe dans la chaîne -Filter. Vérifiez que la mise entre guillemets et l’échappement des variables et caractères spéciaux sont corrects.

  5. Erreur : impossible de trouver un serveur par défaut avec Active Directory Web Services en cours d’exécution.

    Solution: il s’agit d’une erreur de connectivité réseau. L’ordinateur exécutant le script ne peut pas contacter un contrôleur de domaine. Vérifiez la connexion réseau et la possibilité d’envoyer un ping au domaine et à un contrôleur précis.

Limites d’utilisation de l’applet de commande PowerShell Get-ADUser pour générer des rapports sur les utilisateurs AD

PowerShell offre un puissant outil pour générer des rapports, mais présente plusieurs limitations intrinsèques, surtout si une grande DSI l’utilise pour un suivi régulier.

  • Défaut d’interface utilisateur graphique (GUI) : il est difficile pour le personnel autre que les administrateurs système de base d’exécuter des requêtes ou de générer des rapports.
  • Risques de sécurité et de délégation: l’octroi aux utilisateurs d’un accès à distance à un contrôleur de domaine peut présenter un risque pour la sécurité.
  • Génération de rapports personnalisés chronophage: cela peut prendre beaucoup de temps pour écrire, tester et affiner un script afin de générer un rapport personnalisé qui filtre sur plusieurs attributs précis et présente clairement les données.

Avantages d’utiliser ADManager Plus pour les rapports sur les utilisateurs AD

ADManager Plus offre une solution de suivi AD complète qui répond directement aux limites de PowerShell, aidant à gérer et suivre l’environnement AD en gagnant en efficacité et sécurité.

  • Interface graphique et sans script: grâce à son interface intuitive, ADManager Plus permet aux utilisateurs de tout niveau de générer des rapports détaillés fiablement en quelques clics. Résultat : nul besoin de connaissances en script, moins d’erreurs et gain de temps pour les administrateurs.
  • Vaste bibliothèque de rapports prédéfinis: la solution offre plus de 200 rapports préconfigurés sur les utilisateurs AD, les ordinateurs, les groupes, les GPO, etc.
  • Délégation sure et granulaire: les administrateurs peuvent déléguer en toute sécurité des tâches de suivi à des techniciens du support technique ou des responsables RH. On peut définir des rôles pour permettre à un utilisateur de n’exécuter que des rapports précis sur certaines UO, en veillant à ne fournir que les données requises, sans créer de script ou octroyer de larges autorisations.
  • Rapports automatiques et planifiés : on peut planifier la génération automatique de rapports à une fréquence quotidienne, hebdomadaire ou mensuelle. On peut exporter automatiquement les résultats au format CSV, PDF, XLSX, CSVDE ou HTML.
  • Rapports totalement personnalisables: outre les nombreuses options intégrées, on peut facilement créer des rapports sur mesure adaptés aux besoins précis de l’entreprise. Le générateur de rapports permet de définir ses propres conditions et filtres, choisir n’importe quel attribut AD à afficher et générer des rapports très spécifiques sans écrire une seule ligne de script.

Affichez les utilisateurs AD avec ADManager Plus, sans script.

Questions fréquentes

L’applet de commande Get-ADUser sert à extraire un ou plusieurs objets utilisateur d’AD. Les administrateurs l’utilisent pour rechercher des utilisateurs selon des critères précis, afficher leurs propriétés et exporter les données à des fins de suivi et d’audit.

On peut filtrer les utilisateurs AD avec le paramètre -Filter, qui accepte une chaîne de requête. Par exemple, pour obtenir tous les utilisateurs du service Marketing, utilisez :

Get-ADUser -Filter "Department -eq 'Marketing"

To get every property for a user, you must use the -Properties parameter. This is essential for obtaining essential user attributes like LastLogonDate, whenCreated, and MemberOf.

Une façon simple consiste à tenter de récupérer l’utilisateur et vérifier si la commande renvoie un résultat. Le renvoi d’un objet indique que l’utilisateur existe. Sinon, il n’existe pas.

Pour obtenir une liste des groupes auxquels un utilisateur appartient, il faut interroger la propriété MemberOf.

Get-ADUser -Identity 'john' -Properties MemberOf | Select-Object -ExpandProperty MemberOf

Gestion des boîtes aux lettres à guichet unique pour Exchange et Office 365 avec ADManager Plus.

  Obtenez un essai gratuit de 30 jours
  • Lancez votre projet de gestion AD sans script, de suivi et d’automatisation avec ADManager Plus.
  •  
  • En cliquant sur « Démarrer une évaluation gratuite maintenant », vous acceptez le traitement de vos données à caractère personnel selon la Politique de confidentialité.
  • Merci du téléchargement !
  • Votre téléchargement doit commencer automatiquement dans 15 secondes. Sinon, cliquez ici pour télécharger manuellement.

Guides pratiques Powershell connexes: