启用AD帐户时出现重复输入错误

时间:2011-06-13 15:46:22

标签: c# active-directory active-directory-group

我正在尝试以编程方式将用户添加到Active Directory并且我一直遇到错误 - 无论我在创建帐户时创建了什么用户,都会引发“重复条目”错误。这是我正在使用的代码:

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 个答案:

答案 0 :(得分:1)

您可以尝试替换为:

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

您可能知道某些属性可能是多值的,userAccountControl 不能,但在您的代码中,您尝试做的事情,我的意思是对它进行多重评估。在我的代码中,我只是分配一个新值(它将在vue的纯LDAP点上进行替换)。