1

我正在尝试在 ActiveDirectory 内的特定 OU 中创建一个新的 UserPrincipal,它返回一个异常,并显示消息“对象已存在”。(显然)该用户不存在于该 OU 中,我正在测试它的存在。

我究竟做错了什么?

这是引发异常的代码:

public UserPrincipal CreateUser(string username, string pass,
        string givenName, string surname) {
    PrincipalContext context = this.principalContext;
    UserPrincipal user = new UserPrincipal(context);
    user.SamAccountName = username;
    user.UserPrincipalName = username;
    user.GivenName = givenName;
    user.Surname = surname;
    user.SetPassword(pass);
    user.Save();
    return user;
}

编辑1:经过单元测试,我发现代码没问题。我在一个库(我在其中运行测试)中使用此方法,该方法由另一个应用程序调用,该应用程序启用了 Windows 身份验证模式。也许应用程序正在将该身份验证发送给 AD?

4

2 回答 2

4

sAMAccountName 在整个企业中必须是唯一的。您在创建用户时提到了“特定 OU”。您是否有可能在不同的 OU 中有另一个用户具有相同的用户名/sAMAccountName?

于 2014-03-22T14:59:39.423 回答
4

我遇到了同样的错误,但对上面接受的答案没有太大帮助,因为在我的情况下,问题不是sAMAccountName由于Name. 尝试创建的帐户具有唯一的 sAMAccountName,但该名称已存在,导致此错误。

The object already exists.

看起来该错误可能针对多个 Active Directory 帐户属性发生

  • sAMAccountName
  • 姓名

建议:
与大多数情况一样,最好在创建新条目之前检查是否存在。

有用的链接:

我希望这可以帮助别人。

干杯,

于 2020-06-24T12:02:26.190 回答