
Description
With this little script, you will have a status on the user account “Password never expires” flag. This check is done on a specific OU. You can adapt the script to run it on a domain-wide.
The principe of the script is simple :
- first, list all the user account with the “Password never expires” flag
- after that, list all the user accounts
- and finally, compare both lists created above to get the status
Script
$ou = "OU=Users and Groups,DC=domain,DC=local" #list all user account with the flag Password never expires = true $passwordneverexpires_arr = search-adaccount -PasswordNeverExpires -SearchBase $ou | % {$_.DistinguishedName} #list all user object in the ou $ou $all_arr = get-aduser -filter * -SearchBase $ou | % {$_.DistinguishedName} $all_arr | % { #compare both array and print result if ($passwordneverexpires_arr -match $_) { write-host -foreground green "password never expires true for $_ "} else {write-host -foreground red "password never expires false for $_"} }
The powershell cmdlet search-adaccount is very useful. It can used also to perform these tasks :
You can find more information with this powershell cmdlet here.
For the get-aduser cmdlet, you can go here.
My Powershell script categories
- Active Directory
- Cluster
- Database
- Exchange
- Files and folders
- Hardware
- Network
- Operating System
- PKI
- SCCM
- Service and process
- Tips
- VMWare
Password never expires status