我需要在 Active Directory 中查询密码即将过期的用户列表。这样做的明显(且简单)的方法是:
dsquery user -stalepwd n
问题是我需要添加额外的过滤器来只查找特定安全组中的用户。这对于具有内置 -stalepwd 选项的“dsquery user”语法来说很难做到,所以我一直在使用“dsquery * -filter”选项,它允许您使用 LDAP 查询语法。不幸的是,虽然通过 LDAP 查询应用其他过滤器相对容易,但我无法过滤密码年龄大于 n 的用户。
有谁知道使用“dsquery * -filter”方法而不是“dsquery user -stalepwd”方法过滤旧密码的语法(或者甚至可能)。
最佳答案
您可以编写一个 LDAP 查询,通过比较用户对象上的 pwdLastSet 属性来比较“陈旧”密码:
(&(objectClass=person)(objectClass=User)(pwdLastSet<=n))
ActiveDirectory 对此时间戳使用非常特定的格式。我相信这是一个文件时间,但我会在网上仔细检查。
关于active-directory - 如何在 Active Directory 中查询密码过期的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/299490/