7 votes

Powershell - Trouver tous les utilisateurs dont le mot de passe n'expire jamais

Je cherche à interroger AD via Powershell afin de voir tous les comptes utilisateurs de ma forêt dont le mot de passe est défini comme n'expirant jamais.

J'ai trouvé quelques scripts en ligne en utilisant une recherche rapide sur Google mais aucun d'entre eux ne semble fonctionner comme prévu. J'ai ensuite trouvé ce qui suit sur technet ( https://technet.microsoft.com/en-us/library/finding_users_whose_password_never_expires%28v=ws.10%29.aspx ) mais lorsque j'exécute la ligne :

Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A

Je ne reçois qu'un très petit nombre de résultats et je sais qu'il manque dans la liste renvoyée un grand nombre d'utilisateurs dont je sais qu'ils ont choisi cette option.

Quelqu'un peut-il me dire ce qui ne va pas avec ce script ou quelle est la raison du petit nombre de résultats ?

9voto

Art.Vandelay05 Points 1344

J'utilise la méthode ci-dessous et elle fonctionne.

get-aduser -filter * -properties Name, PasswordNeverExpires | where { $_.passwordNeverExpires -eq "true" } | where {$_.enabled -eq "true"} 

Il recherche dans la base de données AD les utilisateurs dont le "PasswordNeverExpires" est défini sur "True", puis renvoie les résultats dans la console Powershell.

modifier pour la formulation et la cmdlet erronée et ajouter ce qui suit Pour nettoyer les résultats, ajoutez ceci à la fin du code powershell ci-dessus

| Format-Table -Property Name, PasswordNeverExpires -AutoSize

5voto

Sorcha Points 1275

Vous pourriez utiliser quelque chose comme ceci :

Get-ADUser -filter { (PasswordNeverExpires -eq $true) -and (enabled -eq $true)} -searchbase "OU=,OU=,DC=,DC=" -Properties Surname,givenname, userprincipalName,PasswordNeverExpires| FT Name,ObjectClass,PasswordNeverExpires -A

1voto

Puisque je fonctionne sur un environnement multi-domaine :

$domains = (Get-ADForest).domains
$Members = foreach ($domain in $domains) {
    Get-ADUser -server $domain -filter {PasswordNeverExpires -eq "TRUE"} -Properties PasswordNeverExpires | select name,samaccountname,PasswordNeverExpires,mail | Where-Object {$_.PasswordNeverExpires -like "True"} |Export-Csv -Path "c:\temp\Never_Expire-$domain.csv" -NoTypeInformation }

Pour un seul domaine :

Get-ADUser -filter {PasswordNeverExpires -eq "TRUE"} -Properties PasswordNeverExpires | select name,samaccountname,PasswordNeverExpires,mail | Where-Object {$_.PasswordNeverExpires -like "True"} |Export-Csv -Path "c:\temp\Never_Expire.csv" -NoTypeInformation }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X