If you want to find out when user’s passwords will expire and export them to a .csv file then this will help. This simple script will list all of your active users, sort the list and list the expiry dates.
Import-Module ActiveDirectory Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | sort "SamAccountName" | export-csv c:\temp\expire.csv -NoTypeInformation
You can also modify the script so that all you need to do is enter the username and get the expiry date:
Import-Module ActiveDirectory Add-Type -AssemblyName Microsoft.VisualBasic $username = [Microsoft.VisualBasic.Interaction]::InputBox('Enter users SamAccountName', 'SamAccountName') Get-ADUser $username –Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | sort "SamAccountName" | Out-GridView
If you are running the script from a desktop machine ensure that PowerShell is running as admin and that you have the RSAT tools installed.