我今天有代码可以获取单个用户的AD信息。我正在寻找的代码就像Powershells Search-ADAccount -LockedOut
这是我所拥有的一小部分,但它没有返回所有已锁定的帐户。
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapUri);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "username@ourdomain.com");
env.put(Context.SECURITY_CREDENTIALS, "password";
try {
DirContext ctx = new InitialLdapContext(env,null);
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String searchFilter = "(&(objectClass=User)(lockoutTime>=1))";
String searchBase = usersContainer;
NamingEnumeration<SearchResult> answer = ctx.search(searchBase, searchFilter, searchCtls);
while (answer.hasMore()) {
SearchResult result = (SearchResult) answer.next();
adInfo = result.getAttributes();
}
ctx.close();
}
catch (NamingException e) {
}
我把这个
(&(objectClass=User)(lockoutTime>=1))
在那里排队看看它是否会去查找所有锁定的帐户。我也试过
(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1))
但没有运气。
所以...我仍然在考虑缺乏Java LDAP支持,所以我转到这里看看是否有人有任何想法。