Я пытаюсь создать нового пользователя Active Directory через ldap, но пользователь отключен при создании. Я пытаюсь установить для атрибута 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, завершается неудачей. Любая помощь будет принята с благодарностью. Спасибо!