我使用此页面中的示例将用户添加到 Active Directory 组,但在执行时出现异常消息“服务器不愿意处理请求”
dirEntry.Properties["member"].Add(userDn);
我使用此页面中的示例将用户添加到 Active Directory 组,但在执行时出现异常消息“服务器不愿意处理请求”
dirEntry.Properties["member"].Add(userDn);
我在尝试将成员添加到组时遇到了类似的问题。专门尝试将组添加到组并获得相同的有用错误“服务器不愿意处理请求” OP 提供的答案对我不起作用。
对我来说,我无法将组添加到我的组的原因是因为我试图添加成员的组是一个“全局”范围的组,而它需要是一个“通用”范围的组。希望这可以帮助某人。
这个问题花了我很多时间来解决。首先,错误信息看起来像个笑话。其次,没有别的了,只有那条信息。
无论如何,我设法通过以下方式修复它:
确保userDn
包含整个路径(例如,"LDAP://server-address/CN=" + userDn + ",OU=optional,DC=your-domain,DC=com"
。这实际上非常重要,如果您不提供完整路径,它将从 HRESULT: 0x80005000 抛出异常。
替换dirEntry.Properties["member"].Add(userDn);
为entry.Invoke("Add", new object[] { userDn });
然后我想删除一个用户,我希望entry.Invoke("Remove", new object[] { userDn });
能工作。然而,这个恶魔般的广告只有在你使用小写“remove”时才有效,所以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描述了“服务器不愿意处理请求”的潜在原因。检查异常的ExtendedErrorMessage属性以确定适用的内容。在我的情况下,“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");
PS ent是组的DirectoryEntry对象