Ошибка повторяющегося ввода при включении учетной записи AD - PullRequest
0 голосов
/ 13 июня 2011

Я пытаюсь добавить пользователей в Active Directory программным способом и продолжаю сталкиваться с ошибкой - независимо от того, какого пользователя я создаю, как только я включаю учетную запись, выдается ошибка «Duplicate Entry». Это код, который я использую:

DirectoryEntry NewUser = AD.Children.Add("CN=" + username, "User");
NewUser.CommitChanges();

//Add user information
NewUser.Invoke("SetPassword", password);
NewUser.Properties["givenName"].Value = FirstName;
NewUser.Properties["sn"].Value = LastName;
NewUser.Properties["mail"].Value = email;
NewUser.Properties["userPrincipalName"].Value = username + @"domainname";
NewUser.Properties["userAccountControl"].Add(0x200);//enable account
NewUser.CommitChanges();

Когда я закомментирую строку, которая изменяет userAccountControl, все работает нормально. Я даже пытался создать новую запись и изменить ее таким образом, используя этот код:

DirectoryEntry editUser = getUserEntry(username);
editUser.Properties["userAccountControl"].Add(0x200);//enable account
editUser.CommitChanges();

но это все равно выдает ту же ошибку. getUserEntry просто получает запись каталога из AD с указанным именем пользователя. Может кто-нибудь увидеть причину, по которой в этом случае возникнет ошибка повторяющегося ввода?

1 Ответ

1 голос
/ 13 июня 2011

Можете ли вы попробовать заменить на:

DirectoryEntry editUser = getUserEntry(username);
editUser.Properties["userAccountControl"][0] = (0x200);//enable account 
editUser.CommitChanges(); 

Возможно, вы знаете, что некоторые атрибуты могут быть многозначными, userAccountControl не может , но в вашем коде это то, чтоВы пытаетесь сделать, я имею в виду многозначность этого.В моем коде я просто назначаю новое значение (оно будет играть замену на чистой точке LDAP vue).

...