Get-ADUser: Obtenir des informations sur les utilisateurs d'Active Directory via Powershell – Bien choisir son serveur d impression
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.
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.
Sommaire
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
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).
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"
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 afficher la liste de tous les comptes de domaine, exécutez cette commande:
Get-ADUser -filter *
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é
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 *
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
À 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: 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
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é
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
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
Commentaires
Laisser un commentaire