服务器不愿意处理请求 - Active Directory - 通过C#添加用户

时间:2012-12-06 17:17:22

标签: active-directory active-directory-group

我使用this page中的示例将用户添加到Active Directory组,但是在执行

时出现“服务器不愿意处理请求”的消息

dirEntry.Properties["member"].Add(userDn);

6 个答案:

答案 0 :(得分:4)

我有一个类似的问题,我试图将一个成员添加到一个组。特别是尝试将一个组添加到一个组并获得相同的有用错误'服务器不愿意处理该请求' OP提供的答案对我不起作用。

对我来说,我无法在我的小组中添加群组的原因是因为我尝试添加群组的群组是一个全球性的群组。范围组,而它需要是一个普遍的'范围组。希望这有助于某人。

答案 1 :(得分:1)

这个问题花了我很多时间来解决。首先,错误消息看起来像个笑话。其次,只有那条信息。

无论如何,我设法通过以下方式修复它:

  1. 确保userDn包含整个路径(例如"LDAP://server-address/CN=" + userDn + ",OU=optional,DC=your-domain,DC=com"。这实际上是非常重要,如果您不提供完整路径将从HRESULT抛出异常:0x80005000

  2. dirEntry.Properties["member"].Add(userDn);

  3. 替换entry.Invoke("Add", new object[] { userDn });

    然后我想删除一个用户,我希望entry.Invoke("Remove", new object[] { userDn });能够正常工作。但是,如果你使用小写“删除”,这个恶魔广告只会有效,所以entry.Invoke("remove", new object[] { userDn });对我有效。

答案 2 :(得分:0)

请注意,因为.properties("distinguished Name")的开头可以与.properties("cn")的开头不同。如果使用,中的;.properties("cn")创建用户,则.properties("distinguished Name")的开头将是带有\,或{{1}的用户名}。

如果u尝试将您使用\;找到的用户添加到组中,则可能会出现错误。

答案 3 :(得分:0)

当我的路径与目录林域名不匹配时,出现此通用错误消息。例如,如果我的林域名是ad.example.com,而我正在尝试创建一个路径为CN=Users,DC=example,DC=net的组,其中一个具有.com,另一个具有.net-他们没有排队。我需要更正我的小组以匹配。我的组路径应为CN=Users,DC=example,DC=com

答案 4 :(得分:0)

ldapwiki.com描述了“服务器不愿意处理请求”的潜在原因。检查您异常的 ExtendedErrorMessage 属性,以找出适用的方法。在我的情况下,“ 00002145:SvcErr:DSID-031A1254,问题5003(WILL_NOT_PERFORM)”。以下行解决了该问题:

ent.Properties["groupType"].Value = 8;

我错过了设置 groupType 的机会,因此尝试将通用组嵌套在全局组中。在ldapwiki.com

中找到有关groupType属性的更多信息

答案 5 :(得分:-2)

经过多天的搜索,我发现了问题。在组中添加用户时,必须设置“可分辨名称”而不是LDAP路径。

你必须这样写:

ent.Properties["member"].Add("CN=YourUserName,OU=optional,DC=yourdomain,DC=com");

这是错误的代码:

ent.Properties["member"].Add("LDAP://CN=YourUserName,OU=optional,DC=yourdomain,DC=com");

此外,当你删除桅杆以保存此规则时

ent.Properties["member"].Remove("CN=YourUserName,OU=optional,DC=yourdomain,DC=com");

P.S。 ent DirectoryEntry 群组的对象