仅检索活动目录上的已启用帐户

时间:2012-03-01 01:06:14

标签: java active-directory

我想向微软的Active Directory(使用Java)发送一个搜索字符串,上面写着“给我所有拥有启用帐户的用户。”

目前,我有:

String search_string =“(&(objectClass = user))”;

但是,当然,这只会给我AD上的用户。我也想得到那些活跃的人。它是用Java编写的,但我认为它对LDAP不重要。

2 个答案:

答案 0 :(得分:9)

为了获得启用的用户,您必须检查userAccountControl属性,特别是它的第二位,它对应于ACCOUNTDISABLE标志。 MS KB 305144

这可以通过LDAP过滤器完成,如下所示:

(!(userAccountControl:1.2.840.113556.1.4.803:=2))

查看有关Filtering for Bit Fields的文章,了解有关此工作的详细信息。

此外,您应该知道计算机帐户是从用户类型继承的,因此您应该在过滤器中添加条件,以将其过滤掉。您还可以检查NORMAL_ACCOUNT标志位(512),以过滤其他类型的帐户。

我不知道活跃用户是什么意思,所以我无法帮助你。

答案 1 :(得分:4)

据我所知,Active-Directory critaria检查帐户是否活动

How to use the UserAccountControl flags to manipulate user account properties为您提供帐户状态,您可能感兴趣:

  • ACCOUNTDISABLE(2)
  • 锁定(16)

要在过滤器中使用此字段,您可以使用LDAP {MATCHING_RULE_IN_CHAIN OID,如Microsoft article Search Filter Syntax中所述。

(&(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.804:=18)))