【发布时间】:2012-02-15 20:12:38
【问题描述】:
我正在尝试通过 ldap 创建一个新的 Active Directory 用户,但该用户在创建时被禁用。我正在尝试将 userAccountControl 属性设置为 512,但我收到错误 WILL_NOT_PERFORM。我读过这是因为没有设置密码,但我不知道为什么。使用 userPassword 属性集创建用户工作正常。
代码如下:
// Create a container set of attributes
Attributes container = new BasicAttributes();
// Assign the properties we need to set on the user
container.put(new BasicAttribute("objectClass", "user"));
container.put(new BasicAttribute("cn", userName));
container.put(new BasicAttribute("sAMAccountName", userName));
container.put(new BasicAttribute("name", userName));
container.put(new BasicAttribute("givenName", userName));
container.put(new BasicAttribute("userPassword", password));
String fullDomainName = getFullUserName(userName);
// Create the entry
try{
context.createSubcontext(fullDomainName, container);
}catch(Exception e){
System.err.println("Error creating user: " );
e.printStackTrace();
throw e;
}
ModificationItem[] userMods = new ModificationItem[1];
userMods[0] = new ModificationItem(InitialLdapContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl", "512"));
try{
context.modifyAttributes(fullDomainName, userMods);
}catch(Exception e){
System.err.println("Could not update userAccountControl flag");
e.printStackTrace();
throw e;
}
我创建用户的第一部分工作,我尝试设置 userAccountControl 标志的第二部分失败。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: java active-directory