未绑定ldap SDK如何获取所有用户并排除一个部门

未绑定ldap SDK如何获取所有用户并排除一个部门,ldap,unboundid-ldap-sdk,Ldap,Unboundid Ldap Sdk,我有示例代码 Filter searchFilter = Filter.create("(sAMAccountType=805306368)"); SearchRequest searchRequest = new SearchRequest(advanceBaseDnTxt.getText(), SearchScope.SUB, searchFilter,

我有示例代码

Filter searchFilter = Filter.create("(sAMAccountType=805306368)");
                        SearchRequest searchRequest =
                                new SearchRequest(advanceBaseDnTxt.getText(), SearchScope.SUB, searchFilter,
                                        ldapAttributeSet);
                        SearchResult searchResult = lcon.search(searchRequest);

这是否足以检索所有用户以及如何排除部门?

要否定LDAP筛选器上的属性,请查看此页面:

应使用
(!(部门=)

如果需要对多个属性进行筛选,从您的示例中,您需要每个具有
sAMAccountType=805306368
且不在
department=
中的条目,因此筛选将是:


(&(sAMAccountType=805306368)(!(department=))
“(&(sAMAccountType=805306368)(!(department=))”
?@Esteban谢谢。(sAMAccountType=805306368)和(objectCategory=user)之间还有什么区别?与从accountType=“foo”所在的表中选择*和从rowType=“bar”所在的表中选择*相同。它根据两个不同的属性进行过滤。从属性名来看,我假设您使用ActiveDirectory,并且这些属性是特定于AD的,这与LDAP无关。(如果您所说的
objectCategory
是指
objectClass
,它是一个LDAP属性,用于指定条目的类型及其定义:例如,哪些属性可用)非常感谢您的回答