Comme vous le savez, Microsoft propose un module PS qui vous permet de créer, gérer et administrer l’annuaire Active Directory (rôle ADDS) via Windows PowerShell : Il s’agit du module « ActiveDirectory « .
Pour obtenir la liste complète des Cmd-lets fournies avec ce module, exécutez la commande suivante :
Get-Command -Module ActiveDirectory
Pour connaître le nombre exact de Cmd-lets fournies avec le module ActiveDirectory, exécutez la commande suivante :
(Get-Command -Module ActiveDirectory).Count
Comme montré ci-dessus, 147 Cmd-lets au total (au moment de l’écriture de cet article) sont disponibles avec le module ActiveDirectory.
Aujourd’hui, nous allons uniquement nous intéresser à la Cmd-Let « Get-ADUser« .
Celle-ci sera utilisée pour :
Connaître la date de changement de mot de passe des utilisateurs de notre annuaire AD
Lister tous les comptes utilisateurs ayant un mot de passe qui n’expire jamais !
Introduction à la Cmd-let « Get-ADUser »
La Cmd-let « Get-ADUser » vous permet de lister un ou plusieurs (Objets) utilisateurs Active Directory.
A l’aide de certains paramètres Get-ADUser, vous pouvez réaliser des requêtes/opérations avancées sur des objets « Utilisateurs » ainsi que leurs propriétés.
Quelques exemples d’utilisation :
- Lister tous les utilisateurs qui ne sont pas connectés depuis 180 jours
- Lister tous les utilisateurs qui font parti du département « Marketing »
- Lister tous les utilisateurs qui ont un mot de passe qui n’expire « Jamais »
- Lister tous les comptes utilisateurs dont le mot de passe expire dans une semaine
- ..
Vous pouvez consulter cet article pour en savoir plus sur la Cmd-let Get-ADUser.
Paramètres associés avec la Cmd-Let « Get-ADUser »
Pour lister tous les paramètres et options disponibles avec la Cmd-Let Get-ADUser, je vous invite à exécuter la commande suivante :
help Get-ADUser
HowTo : connaitre la date de modification/changement du mot de passe de vos utilisateurs AD
Pour connaitre la date à laquelle un mot de passe a été changé/modifié, nous allons d’abord récupérer le nom de la propriété qui stocke cette information.
Pour ce faire, je vais dans l’exemple suivant exécuter la commande Get-ADUser -identity hicham.kadiri -properties * pour afficher toutes les propriétés de la Cmd-Let Get-ADUser (ou hicham.kadiri est le nom d’utilisateur de mon compte AD).
Comme illustré dans la capture d’écran précédente, la propriété qui stocke la date de changement du mot de passe est « PasswordLastSet« .
Dans l’exemple suivant, nous allons afficher la date à laquelle le mot de passe du compte utilisateur « hicham.kadiri » a été changé, seules les propriétés « Name » et « PasswordLastSet » sont sélectionnées :
Get-ADUser -identity hicham.kadiri -Properties Name, PasswordLastSet | Select Name, PasswordLastSet
Pour obtenir la même information mais au niveau de votre domaine AD (tous les comptes utilisateurs du domaine), la commande suivante est exécutée :
Get-ADUser -Filter * -Properties Name, PasswordLastSet | Select Name, PasswordLastSet
Comme vous pouvez le conster, les informations (dates & heures) retournées au niveau de la colonne « PasswordLastSet » ne sont pas triées.
Si vous souhaitez trier ces données (du plus récent au plus ancien dans l’exemple suivant), la commande suivante est utilisée :
Get-ADUser -Filter * -Properties Name, PasswordLastSet | Select Name, PasswordLastSet | Sort PasswordLastSet -Descending
Tip : lister tous les comptes utilisateurs qui ont un mot de passe qui n’expire jamais peut également être utile car si vous avez défini une nouvelle stratégie de mot de passe (au niveau du domaine ou OU via une PSO/FGPP), celle-ci ne s’appliquera jamais sur les comptes utilisateurs ayant l’option « Le mot de passe n’expire jamais » cochée.
Nous allons dans l’exemple suivant lister tous les comptes utilisateurs dont le mot de passe n’expire jamais, et afficher uniquement les trois propriétés suivantes : Nom, PasswordLastSet et PasswordNeverExpires :
Get-ADUser -Filter * -Properties Name, PasswordLastSet, PasswordNeverExpires | Select Name, PasswordLastSet, PasswordNeverExpires | Sort PasswordLastSet -Descending
Enfin, si vous souhaitez exporter ces informations vers un fichier CSV pour les traiter/présenter plus tard, exécutez la commande suivante :
Get-ADUser -Filter * -Properties Name, PasswordLastSet, PasswordNeverExpires | Select Name, PasswordLastSet, PasswordNeverExpires | Sort PasswordLastSet -Descending | Export-csv C:\AuditAD.csv