Active directory 如何在Active Directory中查询密码过期的用户?

Active directory 如何在Active Directory中查询密码过期的用户?,active-directory,ldap,dsquery,Active Directory,Ldap,Dsquery,我需要在Active Directory中查询密码即将过期的用户列表。显而易见(且简单)的方法是: dsquery user -stalepwd n 问题是,我需要添加额外的过滤器,以便只查找某些安全组中的用户。这很难使用内置-stalpwd选项的“dsquery user”语法,因此我一直在使用“dsquery*-filter”选项,该选项允许您使用LDAP查询语法。不幸的是,虽然在LDAP查询中应用其他过滤器相对容易,但我在过滤密码期限大于n的用户时遇到了问题 是否有人知道使用“dsqu

我需要在Active Directory中查询密码即将过期的用户列表。显而易见(且简单)的方法是:

dsquery user -stalepwd n 
问题是,我需要添加额外的过滤器,以便只查找某些安全组中的用户。这很难使用内置-stalpwd选项的“dsquery user”语法,因此我一直在使用“dsquery*-filter”选项,该选项允许您使用LDAP查询语法。不幸的是,虽然在LDAP查询中应用其他过滤器相对容易,但我在过滤密码期限大于n的用户时遇到了问题


是否有人知道使用“dsquery*-filter”方法而不是“dsquery user-stalepwd”方法过滤旧密码的语法(或者如果可能的话)。

有比dsquery更好的工具可供使用

来自joeware的操作将与stalepwd相同,并允许过滤器通过其-f开关

然后,过滤器将看起来像:

&(objectCategory=user)(memberof=CN=User Group,OU=Test,DC=foo,dc=com)

还可以查看adfind和admod工具,它们的功能比Microsoft的命令行查询工具更强大,但可能更难学习。

您可以编写LDAP查询,通过比较用户对象上的pwdLastSet属性来比较“过时”密码:

(&(objectClass=person)(objectClass=User)(pwdLastSet<=n))

(&(objectClass=person)(objectClass=User)(pwdLastSet确实如此。我可以这样搜索,但我只想获得每个人的pwdLastSet值。不幸的是,
ldapsearch
为任何用户返回的(庞大)属性列表中没有“pwdLastSet”。有什么想法吗?谢谢!