【发布时间】:2018-07-04 03:55:57
【问题描述】:
我正在使用 Powershell 来确定域帐户的密码到期日期。我已使用以下命令来获取此信息:
Get-ADUser -Filter {SamAccountName -eq "<username>"} -Properties "DisplayName" , "msDS-UserPasswordExpiryTimeComputed"
然后我使用以下方法将此值转换为有意义的日期:
[datetime]::FromFileTime(<computed filetime from above command>)
这适用于我使用的所有域,除了一个。在该域中,我得到一个值9223372036854775807 作为msDS-UserPasswordExpiryTimeComputed。我无法使用FromFileTime 函数将此数字转换为日期。它作为错误抛出。经过研究,我发现这个数字意味着密码设置为不过期。但是,我知道该域中的密码确实会过期。此外,Get-ADUser cmdlet 中的PasswordNeverExpires 属性显示为False。
如何从msDS-UserPasswordExpiryTimeComputed 属性中获取9223372036854775807 并从PasswordNeverExpires 属性中获取False?这似乎是一个矛盾。我错过了什么?还有其他情况msDS-UserPasswordExpiryTimeComputed 也可能是9223372036854775807 吗?谢谢。
【问题讨论】:
-
顺便说一句:使用脚本块 (
{ ... }) 作为-Filter参数是 best avoided。
标签: powershell active-directory windowsdomainaccount