如何使用 java 从活动目录中的特定 ou 获取所有用户?
How to get all users from specific ou in active directory using java?
这是我用来获取但未填充任何内容的方法。
public void doSearch() throws NamingException {
String searchFilter = "(&(ou=Example,ou=Examples_ou)(objectClass=person))";
String domain = "DC=mydom,DC=com";
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> answer = ctx.search(domain, searchFilter, searchControls);
int ttl = 0;
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult) answer.next();
ttl++;
System.out.println(">>>" + sr.getName());
Attributes attrs = sr.getAttributes();
System.out.println(">>>>>>" + attrs.get("samAccountName"));
}
System.out.println("Total results: " + ttl);
}
您的过滤器无效,因此returns没有数据。在
ctx.search(domain, searchFilter, searchControls);
domain 正在作为搜索的基本 DN 传递。如果您想将搜索限制在 ou=Example,ou=Examples_ou of dc=example,dc=com 内的用户,那么您的搜索基础 DN 应该是 "ou=Example,ou=Examples_ou,dc=example,dc=com" 并且 searchFilter 将只是 "(& (objectClass=person))"
这是我用来获取但未填充任何内容的方法。
public void doSearch() throws NamingException {
String searchFilter = "(&(ou=Example,ou=Examples_ou)(objectClass=person))";
String domain = "DC=mydom,DC=com";
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> answer = ctx.search(domain, searchFilter, searchControls);
int ttl = 0;
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult) answer.next();
ttl++;
System.out.println(">>>" + sr.getName());
Attributes attrs = sr.getAttributes();
System.out.println(">>>>>>" + attrs.get("samAccountName"));
}
System.out.println("Total results: " + ttl);
}
您的过滤器无效,因此returns没有数据。在
ctx.search(domain, searchFilter, searchControls);
domain 正在作为搜索的基本 DN 传递。如果您想将搜索限制在 ou=Example,ou=Examples_ou of dc=example,dc=com 内的用户,那么您的搜索基础 DN 应该是 "ou=Example,ou=Examples_ou,dc=example,dc=com" 并且 searchFilter 将只是 "(& (objectClass=person))"