Get-ADUser-属性未为所有用户返回PasswordNeverExpires

时间:2018-08-21 15:42:11

标签: powershell active-directory passwords user-accounts

我正在尝试列出所有设置了PasswordNeverExpires标志的用户。

如果我使用

Get-ADUser

我会获得域中所有用户的列表,以及一系列默认属性。

如果我使用

Get-ADUser -Filter * -Properties Name | Format-Table -Property Name -AutoSize

我还获得了表中域中所有用户名的列表。

当我使用

Get-ADUser -Filter * -Properties Name,PasswordNeverExpires | Format-Table -Property Name,PasswordNeverExpire

我得到一个包含用户名完整列表的表,但是只有以下帐户的True列中有FalsePasswordNeverExpires

Guest
krbtgt
Administrator
SBSMonAcct
Network Administrator
<MyDomainAdminAccount>
SPSearch
<AnAdministratorAccountForOneOfOurSoftwareVendors>
<AnAccountThatWasCopiedFromTheDomainAdministratorAccount>
<AnotherAccountCopiedFromTheDomainAdministratorAccount>

表中的所有其他项目/用户名都具有空/空白/不存在的值。

我也尝试过

Get-ADUser -LDAPFilter "(&(!userAccountControl:1.2.840.113556.1.4.803:=2)(userAccountControl:1.2.840.113556.1.4.803:=65536))"

但这只会返回

<MyDomainAdminAccount>
SPSearch

为什么没有为所有用户选择PasswordNeverExpires标志?谢谢。

2 个答案:

答案 0 :(得分:1)

PasswordNeverExpires是根据userAccountControl属性计算的。

搜索设置了该标志的用户的最快方法如下:

Get-ADUser -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=65536)" -Properties PasswordNeverExpires

有关使用按位过滤器进行搜索的更多信息,请参见the documentation。 65536(0x10000)对应于ADS_UF_DONT_EXPIRE_PASSWD位的位置,因此此LDAP搜索过滤器仅搜索设置了该标志的帐户。

答案 1 :(得分:0)

嗯,您的第三行拉出属性“ PasswordNeverExpires”,但选择“ PasswordNeverExpire”。如果这只是您输入中的错字,请忽略。如果没有,那就是你的答案。 :-)