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

标签 active-directory ldap dsquery

我需要在 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/

相关文章:

Azure AD ID token 在 ID token 中返回重复的 AD 组

bash - 使用 awk/bash 过滤 ldapsearch

c# - 无法使用 C# 和 LdapConnection 对 Apache DS 进行身份验证?

powershell - 尝试将变量传递到 [adsisearcher] 的问题

active-directory - 将逗号添加到 dsquery 输出

powershell - 为什么新 AD 用户不复制组成员身份?

c# - 如何以编程方式更改 Active Directory 密码

winapi - WIN32登录问题

java - 与 AD 通信时出错 - 重新协商期间服务器证书更改受到限制

powershell - 收集远程计算机上的登录用户名?