LDAPSoft AD Browser SQL 基于 UserPasswordExpiryTimeComputed 的 LDAP 查询过滤器
LDAPSoft AD Browser SQL LDAP query filter based on UserPasswordExpiryTimeComputed
我们正在使用 LDAPSoft 广告浏览器列出广告服务帐户。我们尝试过滤服务账户,那些都是密码永不过期的。我们尝试了以下查询并返回 0 个结果(我们单击子树选项复选框以列出子节点)。 并且可以看到 UserPasswordExpiryTimeComputed 值为 null。请帮助我们解决问题。
SELECT from OU=AAA,OU=VVV,OU=VVV,DC=DDD,DC=COM where msDS-UserPasswordExpiryTimeComputed NOT NULL
感谢提前。
msDS-UserPasswordExpiryTimeComputed
属性是构造属性,这意味着它是在您请求它时计算的。不存储这些值。因此,您不能在查询中使用构造属性。您只能从您已经找到的帐户中阅读它们。
当帐户设置为密码永不过期时,userAccountControl
属性会更新。这是一个位标志,意味着值的二进制表示中的每一位都是一个具有不同含义的 on/off 标志。
您要查找的设置是 ADS_UF_DONT_EXPIRE_PASSWD
,它在文档中显示为 0x00010000
的十六进制值。那是 1 0000 0000 0000 0000
的二进制值。因此,当第 17 位为 1
时,密码永不过期。当第17位为0
时,密码过期。但是,您可以在查询中使用 65536
的十进制等效值。
我通常使用 LDAP 查询符号,它看起来像这样:
(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))
这将找到密码设置为永不过期的所有用户帐户。这个奇怪的数字被描述为 here 作为对象标识符 (OID) LDAP_MATCHING_RULE_BIT_AND
。那就是按位与运算符,它检查是否设置了某个位。
我还没有测试过,但是在 SQL 表示法中,您可能会使用 &
,也就是 bitwise AND operator,像这样:
WHERE userAccountControl & 65536 = 65536
我们正在使用 LDAPSoft 广告浏览器列出广告服务帐户。我们尝试过滤服务账户,那些都是密码永不过期的。我们尝试了以下查询并返回 0 个结果(我们单击子树选项复选框以列出子节点)。 并且可以看到 UserPasswordExpiryTimeComputed 值为 null。请帮助我们解决问题。
SELECT from OU=AAA,OU=VVV,OU=VVV,DC=DDD,DC=COM where msDS-UserPasswordExpiryTimeComputed NOT NULL
感谢提前。
msDS-UserPasswordExpiryTimeComputed
属性是构造属性,这意味着它是在您请求它时计算的。不存储这些值。因此,您不能在查询中使用构造属性。您只能从您已经找到的帐户中阅读它们。
当帐户设置为密码永不过期时,userAccountControl
属性会更新。这是一个位标志,意味着值的二进制表示中的每一位都是一个具有不同含义的 on/off 标志。
您要查找的设置是 ADS_UF_DONT_EXPIRE_PASSWD
,它在文档中显示为 0x00010000
的十六进制值。那是 1 0000 0000 0000 0000
的二进制值。因此,当第 17 位为 1
时,密码永不过期。当第17位为0
时,密码过期。但是,您可以在查询中使用 65536
的十进制等效值。
我通常使用 LDAP 查询符号,它看起来像这样:
(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))
这将找到密码设置为永不过期的所有用户帐户。这个奇怪的数字被描述为 here 作为对象标识符 (OID) LDAP_MATCHING_RULE_BIT_AND
。那就是按位与运算符,它检查是否设置了某个位。
我还没有测试过,但是在 SQL 表示法中,您可能会使用 &
,也就是 bitwise AND operator,像这样:
WHERE userAccountControl & 65536 = 65536