====== Active Directory Password Policy ====== ===== Check a User's Password and Policy ===== Check when a user password expires: net user USERNAME /domain Get-ADUserResultantPasswordPolicy USERNAME ===== Default Domain Password Policy ===== Get-ADDefaultDomainPasswordPolicy {{ :networking:windows:active_directory:ad-default-domain-password-policy.png?direct&750 |Default Domain Password Policy}} ===== Fine-Grained Password Policy ===== https://specopssoft.com/blog/check-password-requirements-active-directory/ http://techgenix.com/configuring-fine-grained-password-policies/ **CloudPanel**: https://kb.knowmoreit.com/how-to/setting-up-user-password-expiring-notices/ {{ :networking:windows:active_directory:ad-fine-grained-password-policy.png?direct&650 |Fine-Grained Password Policy}} ==== Show Fine-Grained Password Policies ==== Get-ADFineGrainedPasswordPolicy -Filter * ==== Show Per User Policy ==== Get-ADUserResultantPasswordPolicy username Or to show all users: function Get-MTUserPasswordPolicy ($Identity) { $Fgpp = (Get-ADUserResultantPasswordPolicy -Identity $Identity).Name [string]$Policy = switch ($Fgpp) { $null {"Default Domain Policy"} {!($null)} {$Fgpp} } $Return = New-Object -TypeName PSObject $Return | Add-Member -MemberType NoteProperty -Name Identity -Value $Identity $Return | Add-Member -MemberType NoteProperty -Name PasswordPolicy -Value $Policy return $Return } Then call the function: Get-ADUser -Filter {Enabled -eq $True} | ForEach-Object {Get-MTUserPasswordPolicy -Identity $_.SamAccountName}