Nel caso dobbiate attivare una nuova politica di password in un dominio Active Directory, può far comodo sapere quanti giorni di vita hanno le password attuali, in modo da sapere quali saranno subito da modificare in caso di variazione della durata massima della password.
Con un qualche riga di PowerShell possiamo ottenere il risultato voluto, che in questo caso viene mostrato a console come output, ma può essere anche facilmente rediretto su un CSV o su OGV. Ecco il codice:
#Data di oggi per calcolare l'età della pwd
$today = Get-Date
#Prendo tutti gli utenti abilitati in AD e seleziono le proprietà che mi servono
Get-ADUser -Filter {Enabled -eq $True} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" ,"PwdLastSet"|`
#Trasformo le proprietà in modo che siano facilmente leggibili
Select-Object -Property "Displayname",`
@{Name="DataPassword";Expression={[datetime]::FromFileTime($_."PwdLastSet")}},`
@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},`
@{Name="DurataPassword";Expression={[math]::Round((($today - [datetime]::FromFileTime($_."PwdLastSet"))).TotalDays)}} |`
#Ordino i risultati in base alla data di impostazione della pwd, dalla più vecchia a scendere, ed esporto in tabella
Sort-Object DataPassword | Format-Table
PS: va ovviamente eseguito su una macchina con i moduli di PowerShell di Active Directory!