AD帐户的LDAP筛选器

我想要获取所有未过期且密码为空的广告用户帐户。

到目前为止,我已经使用了一个ldapfilter来获取所有过期的帐户:

(&(objectCategory=person)(objectClass=user) (!accountExpires=9223372036854775807) (!accountExpires=0)) 

我需要做一个filter,取得所有未到期的帐户,并有一个空白的密码。

任何build议我必须做什么修改。

你有尝试颠倒你的search? 希望LDAP专家应该能够帮助放置'爆炸',它可能会像这样,我只是把你的filter包装在(!...)

 $filter = '(!(&(objectCategory=person)(objectClass=user) (!accountExpires=9223372036854775807) (!accountExpires=0)))' $Users = Get-ADUser -LDAPFilter $filter 

我很惊讶没有“IsExpired”的财产。 但是,您可以构build数组,然后按过期date进行过滤。 像这样:

 #List of filters, each one is a string, #by default use single quotes unless you need to force evaluation. #Make sure each property used is in the '-Properties' part or a default property. $Filters = 'AccountExpires -eq $True', "AccountExpirationDate -gt $(Get-Date)" $Users = Get-ADUser -Filter * -Properties AccountExpires, AccountExpirationDate Foreach ($filter in $filters) { $Users = $Users | where $filter } 

我不知道如何find空密码。

您不能查询密码的值,但可以查询“不需要密码”。

 (&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=32)(|(!accountExpires=*)(accountExpires>=131176944000000000))) 

networking用户(用户名)显示用户帐户的详细信息,密码也是其中之一。

请检查下面的链接。

https://social.technet.microsoft.com/Forums/office/en-US/56f0a0d7-3bb3-40f5-87e0-00b1c7789885/what-sets-the-password-required-field-in-the-net-user-命令?论坛= winserverDS