服务器不愿意处理请求 - 活动目录 - 通过 C# 添加用户



我使用此页面中的示例将用户添加到 Active Directory 组,但在执行时出现异常,并显示消息"服务器不愿意处理请求"

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

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

对我来说,我无法将组添加到我的组的原因是因为我尝试添加成员的组是"全局"作用域组,而它需要是"通用"作用域组。希望这对某人有所帮助。

这个问题花了我很多时间来解决。首先,错误消息看起来像一个笑话。其次,仅此而已,仅此而已。

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

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

  2. dirEntry.Properties["member"].Add(userDn);替换为entry.Invoke("Add", new object[] { userDn });

然后我想删除一个用户,我希望entry.Invoke("Remove", new object[] { userDn });可以工作。但是,这个恶魔般的广告只有在您使用小写"删除"时才有效,所以entry.Invoke("remove", new object[] { userDn });对我有用。

当我的路径与林域名不匹配时,我收到了此一般错误消息。 例如,如果我的林域名是 ad.example.com ,并且我正在尝试创建一个路径CN=Users,DC=example,DC=net一个组具有.com另一个具有 .net 的组 - 它们不会排队。 我需要更正我的小组以匹配。 然后,我的组路径应为CN=Users,DC=example,DC=com

ldapwiki.com 描述了"服务器不愿意处理请求"的潜在原因。检查异常的扩展错误消息属性以确定适用的内容。在我的案例"00002145:SvcErr:DSID-031A1254,问题 5003 (WILL_NOT_PERFORM)"。以下行解决了该问题:

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

我错过了设置 groupType,因此尝试在全局组中嵌套一个通用组。在 ldapwiki.com 中查找有关 groupType 属性的详细信息

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

如果您尝试将通过使用.properties("cn")找到的用户添加到组,则可能会出错。

经过许多天的搜索,我发现了问题。 在组中添加用户时,必须设置"可分辨名称"而不是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 是组的目录条目对象

相关内容

最新更新