Serveur d'impression

Get-ADUser: Obtenir des informations sur les utilisateurs d'Active Directory via Powershell – Bien choisir son serveur d impression

Le 27 novembre 2019 - 11 minutes de lecture

Get-ADUser est l'une des applets de commande PowerShell de base pouvant être utilisées pour obtenir des informations sur les utilisateurs du domaine Active Directory et leurs propriétés. Vous pouvez utiliser Get-ADUser pour afficher la valeur de tout attribut d'objet utilisateur AD, afficher une liste des utilisateurs du domaine avec les attributs nécessaires, les exporter au format CSV, et utiliser divers critères et filtres pour sélectionner les utilisateurs du domaine.

La cmdlet Get-ADUser est disponible depuis PowerShell 2.0 et fait partie du module spécial. Active Directory pour Windows PowerShell (introduit dans Windows Server 2008 R2). Les applets de commande RSAT-AD-PowerShell vous permettent d'effectuer diverses opérations sur des objets AD.

Remarque. Avant d'obtenir des informations sur les attributs des comptes d'utilisateurs AD, vous deviez utiliser différents outils: console ADUC (y compris les requêtes AD enregistrées), scripts vbs, dsquery, etc. Tous ces outils peuvent facilement être remplacés par la cmdlet Get-ADUser.

Dans cet exemple, nous allons montrer comment obtenir des informations sur la dernière modification du mot de passe de l'utilisateur et sur la date d'expiration du mot de passe à l'aide de la cmdlet Get-ADUser PowerShell.

Comment trouver des propriétés d'utilisateur et de liste AD avec Get-ADUser?

Pour utiliser le module RSAT-AD-PowerShell, vous devez exécuter la console PowerShell élevée et importer le module à l'aide de la commande suivante:

Répertoire actif du module d'importation

Le module RSAT-AD-PowerShell est installé par défaut sur Windows Server 2012 (et plus récent) lorsque vous avez déployé le rôle Services de domaine Active Directory (AD DS). Pour installer le module sur un serveur membre du domaine, exécutez la commande suivante:

Install-WindowsFeature -Name "RSAT-AD-PowerShell" - IncludeAllSubFeature

installer RSAT-AD-PowerShell sur Windows Server

Dans la version Windows 10 de bureau, pour pouvoir utiliser la cmdlet Get-ADUser, vous devez installer la version appropriée de RSAT et activer lactive Directory Module pour Windows PowerShell fonction à l'aide du Panneau de configuration (Programmes -> Activer ou désactiver des fonctionnalités Windows -> Outils d'administration de serveur distant -> Outils d'administration de rôle -> Outils AD DS et AD LDS -> Outils AD DS).

Module Active Directory pour Windows PowerShell dans Windows 10

Vous pouvez installer le module RSAT AD dans Windows 10 1809 et versions ultérieures à partir de PowerShell:

Add-WindowsCapability –online –Name "Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0"

Il existe également un moyen d'utiliser le module AD-PowerShell sans installer RSAT sur votre ordinateur. Il suffit de copier les fichiers du module principal et d'importer le module dans la session PoSh:

Module d'importation "C: PS AD Microsoft.ActiveDirectory.Management.dll"
Module d'importation "C: PS AD Microsoft.ActiveDirectory.Management.resources.dll"

Une liste complète de tous les arguments de la cmdlet Get-ADUser peut être obtenue comme suit:

aide Get-ADUser

Pour utiliser la cmdlet Get-ADUser, vous n'avez pas besoin de l'exécuter sous un compte avec un administrateur de domaine ou des autorisations déléguées. Tout utilisateur autorisé du domaine AD peut exécuter des commandes PowerShell pour obtenir les valeurs de la plupart des attributs d'objet AD (à l'exception de confidentiel voir l'exemple dans l'article LAPS). Si vous devez exécuter la commande Get-ADUser à partir d’un compte différent, utilisez la commande Credential paramètre.

Pour afficher la liste de tous les comptes de domaine, exécutez cette commande:

Get-ADUser -filter *

Important. Il n'est pas recommandé d'exécuter cette commande dans les domaines wavec un grand nombre de comptes, car le contrôleur de domaine fournissant les informations peut être surchargé.

Pour exécuter une requête AD sur un contrôleur de domaine spécifique, utilisez la commande -Serveur paramètre:

Get-ADUser –Server DC01.woshub.com - Identifiant d'identité

Get-ADUser -filter * - corrige tous les utilisateurs du domaine

Pour modifier les attributs de l'utilisateur, utilisez le Set-ADUser cmdlet.

Par défaut, la cmdlet Get-ADUser ne renvoie que 10 attributs utilisateur de base (sur plus de 120 propriétés de compte utilisateur): DistinguishedName, SamAccountName, Nom, SID, UserPrincipalName, ObjectClass, statut du compte (Activé: True / False en fonction de l'attribut UserAccountControl AD ), etc. Dans ce cas, la sortie de la cmdlet ne contient pas d'informations sur l'heure à laquelle le dernier mot de passe a été modifié.

Pour afficher les informations détaillées sur tous les attributs utilisateur disponibles, exécutez cette commande:

Get-ADUser -identity tuser -properties *

get-aduser liste toutes les propriétés de l'objet utilisateur

La cmdlet Get-ADUser avec le Propriétés * Ce paramètre affiche une liste de tous les attributs utilisateur AD et de leurs valeurs.

Nous passerons ensuite au formatage de la sortie Get-ADUser afin que les attributs utilisateur nécessaires soient affichés. Vous pouvez afficher plusieurs attributs d'utilisateur à la fois:

  • Mot de passe expiré
  • PasswordLastSet
  • Le mot de passe n'expire jamais
  • LastLogonTimestamp

Exécutez la commande:

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

get-aduser - propriétés PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

À présent, les données utilisateur contiennent des informations sur l'état du compte (Expired: True / False), la date du dernier changement de mot de passe et l'heure de la dernière connexion de l'utilisateur au domaine (lastlogontimestamp). Affichez ces informations dans un tableau plus pratique et supprimez tous les attributs inutiles. Select-Object –Property ou Format-Table:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nom, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser obtient les informations de mot de passe pour tous les utilisateurs avec format-table

Get-ADUser: plusieurs unités de recherche avec SearchBase

Pour afficher uniquement les utilisateurs d’un conteneur de domaine spécifique (unité d’organisation), utilisez la commande SearchBase paramètre:

Get-ADUser -SearchBase 'OU = London, DC = woshub, DC = loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nom, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Si vous devez sélectionner des utilisateurs à partir de plusieurs unités d'organisation à la fois, utilisez le script PowerShell suivant:

$ OUs = "OU = NY, DC = woshub, DC = com", "OU = LA, DC = woshub, DC = com", "OU = MA, DC = woshub, DC = com"
$ OUs | foreach sélectionnez un nom, activé

Comment obtenir des courriels depuis Active Directory avec PowerShell?

L'adresse électronique de l'utilisateur est l'un des attributs de l'objet utilisateur dans Active Directory. Pour répertorier les adresses électroniques des utilisateurs, vous devez ajouter le Adresse e-mail champ aux propriétés de la cmdlet Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase 'OU = Paris, OU-Fr, DC = woshub, DC = com' | select-object Name, EmailAddress

Get-ADUser EmailAddress

La liste des comptes d'utilisateurs actifs avec des adresses de messagerie:

Get-ADUser -Filter (mail -ne "null") -and (Enabled -eq "true") -Propriétés Nom, Prénom, mail | Select-Object Nom, Nom, Prénom, mail | Format-Table

Pour obtenir la liste des utilisateurs Active Directory sans adresse e-mail:

Get-ADUser -Filter * -Properties EmailAddress | where -Property EmailAddress -eq $ null

L'exemple suivant permet d'exporter le carnet d'adresses électroniques de l'entreprise de la société AD vers un fichier CSV, qui peut ensuite être importé dans des clients de messagerie tels que Outlook ou Mozilla Thunderbird:

Get-ADUser -Filter (mail -ne "null") -and (Enabled -eq "true") -Propriétés Nom, Prénom, mail | Select-Object Nom, Nom, Prénom, mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $ env: temp address_list.csv

Get-ADUser: Exporter les utilisateurs AD au format CSV / TXT

La liste résultante des utilisateurs du domaine avec des attributs peut être exportée dans un fichier texte:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nom, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C: temp users.txt

Ou vous pouvez exporter la liste des utilisateurs AD dans un fichier CSV (qui sera ultérieurement importé de manière pratique dans Excel):

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | où $ _. name –like "* Dmitry *" | Sort-Object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c: tmp user-passwords-expires.csv -Append -Encoding UTF8

Utilisation de Get-ADUser avec des éléments de filtre

En utilisant le -Filtre paramètre, vous pouvez filtrer la liste des comptes d'utilisateurs par un ou plusieurs attributs. En tant qu'arguments de ce paramètre, vous pouvez spécifier la valeur de certains attributs d'utilisateurs Active Directory. Si vous utilisez le paramètre –Filter, la cmdlet Get-ADUser ne répertoriera que les utilisateurs correspondant aux critères de filtrage.

Par exemple, je souhaite répertorier les comptes d’utilisateur actifs (activés) dont le nom contient «Dmitry”(Dans l'exemple ci-dessous, un filtre multiple est utilisé; vous pouvez combiner des conditions à l'aide des opérateurs de comparaison logiques PowerShell standard):

Get-AdUser -Filter "(Nom-like '* Dmitry *') - et (Enabled -eq 'True')" -Propriétés * | sélectionnez le nom, activé

Get-AdUser avec filtre

De plus, vous pouvez trier la liste d'utilisateurs obtenue en fonction d'un attribut utilisateur spécifique (colonne) avec Sort-Object cmdlet. Vous pouvez également utiliser le Où-objet cmdlet pour spécifier plusieurs critères de filtrage à la fois.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU = NY, DC = woshub, DC = com' | où $ _. name –like "* Dmitry *" - et $ _. Enabled -eq $ true | Sort-Object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser - Filtrage avec Where-Object et Sort-Object

Ainsi, vous pouvez créer une table avec tous les attributs nécessaires des utilisateurs Active Directory.

Exemples d'utilisation de Get-ADUser

Montrons quelques exemples de commandes plus utiles pour interroger les utilisateurs d’Active Directory avec divers filtres. Vous pouvez les combiner pour obtenir la liste nécessaire des objets utilisateur AD:

Afficher les utilisateurs AD dont le nom commence par Joe:

Get-ADUser -filter name -like "Joe *"

Vous pouvez utiliser PowerShell pour compter le nombre total de comptes d'utilisateur dans Active Directory:

Get-ADUser -Filter SamAccountName -like "*" | Objet-mesure

Recherchez les comptes d'utilisateur Active Directory désactivés:

Get-ADUser -Filter Enabled -eq "False" | Select-Object SamAccountName, Nom, Prénom, Prénom | Format-Table

Vous pouvez vérifier la date de création du compte d'utilisateur Active Directory à l'aide de la commande:

get-aduser -Filter * -Properties Nom, WhenCreated | Sélectionnez le nom, lorsque créé

Vous pouvez obtenir la liste des utilisateurs Active Directory nouvellement ajoutés créés au cours des dernières 24 heures:

$ lastday = ((Get-Date) .AddDays (-1))
Get-ADUser -filter (lorsqu’il a été créé -ge $ lastday)

Liste des comptes avec un mot de passe expiré (vous pouvez configurer les options d'expiration du mot de passe dans la stratégie de mot de passe du domaine):

Get-ADUser -filter Enabled -eq $ True -nom du nom de la propriété, passwordExpired | où $ _. PasswordExpired | select name, passwordexpired

Tâche: pour obtenir la liste des comptes stockés dans un fichier texte (un compte par ligne), vous devez obtenir le nom de la société de l’utilisateur auprès d’AD et le sauvegarder dans un fichier CSV (vous pouvez facilement importer ce fichier dans Excel).

Import-Csv c: ps users_list.csv | Pour chaque
Sélectionnez un nom, société

Les utilisateurs qui n'ont pas changé leurs mots de passe au cours des 90 derniers jours:

$ 90_Days = (Get-Date) .adddays (-90)
Get-ADUser -filter (passwordlastset -le $ 90_days)

Pour obtenir une photo d’utilisateur à partir d’Active Directory et l’enregistrer dans un fichier jpg, exécutez les commandes suivantes:

$ usr = Get-ADUser sjoe -Properties thumbnailPhoto
$ usr.thumbnailPhoto | Set-Content sjoe.jpg - Octet de codage

Pour obtenir une liste des groupes AD dont le compte d'utilisateur est membre:

Get-AdUser sjoe-Propriétés membre de | Sélectionnez membre de membre -expandproperty memberof

Répertoriez les utilisateurs de l'unité d'organisation membres d'un groupe de sécurité de domaine spécifique:

Get-ADUser -SearchBase 'OU = Rome, OU = Italie, DC = woshub, DC = com' -Filter * -properties memberof | Where-Object (($ _. Memberof -like "* CEO *")

Répertorie les ordinateurs du domaine qu'un utilisateur est autorisé à ouvrir une session (restriction d'ouverture de session via l'attribut AD LogonWorkstations).

Get-ADUser jbrown -Properties LogonWorkstations | Nom de la liste de formats, LogonWorkstations

Pour obtenir un ordinateur ou effectuer une recherche sur plusieurs ordinateurs à partir d'Active Directory, vous pouvez utiliser une autre applet de commande, Get-ADComputer.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.