找出密码是否过期,或在特定OU中的用户何时到期

是否有任何powershell命令输出的密码从特定组织单位(OU)过期的用户

如果是这样的话,它可以结合在一个脚本与另一个命令输出的时间为特定OU中的所有用户到期?

谢谢。

从特定OU获取AD用户密码到期报告:

Import-Module ActiveDirectory Get-ADUser -SearchBase "OU=TestOU,DC=TestDomain,DC=Local" -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")}} | Format-Table 

您也可以从这个博客中获得帮助,通过这个博客,您可以通过电子邮件向用户发送活动目录密码过期通知和计划报告,警报并符合所有密码到期相关任务以节省您的时间: http : //www.symantec.com/连接/博客/如何-自动密码变更通知,通过电子邮件

用户密码过期:

 Get-ADUser -SearchBase "ou=MyOU,dc=MyDomain,dc=Local" -filter * -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet | where {$_.Enabled -eq "True"} | where {$_.PasswordNeverExpires -eq $false} | where {$_.passwordexpired -eq $true} 

为了在密码过期时获得时间,您应该获得PasswordLastSet属性并从域策略(例如$ DefaultmaxPasswordAge =(Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge)中添加MaxPasswordAge。

请查看TechNet上的密码到期电子邮件通知脚本: https : //gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27该主题的示例很好。

要列出特定OU中已过期密码的已启用用户:

 Get-ADUser -filter {Enabled -eq $True -and PasswordExpired -eq $True} -SearchBase "OU=Finance,OU=Users,DC=yourdomain,DC=com" 

使用密码到期date列出特定OU中的已启用用户:

 Get-ADUser -filter {Enabled -eq $True} -SearchBase "OU=Finance,OU=Users,DC=yourdomain,DC=com" –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}