我想向 Microsoft 的 Active Directory(使用 Java)发送一个搜索字符串,其中显示“给我所有拥有已启用帐户的用户。”
目前,我有:
字符串 search_string = "(& (objectClass=user) )";
但是,当然,这只会给我 AD 上的用户。我也想只得到那些活跃的人。它是用 Java 编写的,但我认为这对于 LDAP 来说并不重要。
最佳答案
为了获取启用的用户,您必须检查 userAccountControl 属性,特别是其第二位,它对应于 ACCOUNTDISABLE 标志。 MS KB 305144 .
这可以通过 LDAP 过滤器来完成,如下所示:
(!(userAccountControl:1.2.840.113556.1.4.803:=2))
查看这篇关于Filtering for Bit Fields的文章了解其工作原理的详细信息。
此外,您应该知道计算机帐户是从用户类型继承的,因此您应该在过滤器中添加一个条件,以将其过滤掉。您可能还需要检查 NORMAL_ACCOUNT 标志位 (512),以过滤其他类型的帐户。
我不知道活跃用户是什么意思,所以我无法为您提供帮助。
关于java - 仅检索 Active Directory 上启用的帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509222/