このページ の例を使用してユーザーをActive Directoryグループに追加しましたが、実行時に「サーバーは要求を処理しません」というメッセージで例外が発生します
dirEntry.Properties["member"].Add(userDn);
この質問を解決するのに多くの時間がかかりました。まず第一に、エラーメッセージは冗談のように見えます。第二に、それ以上のものはなく、そのメッセージだけです。
とにかく、私はそれを修正することができました:
userDn
にパス全体が含まれていることを確認します(例:_"LDAP://server-address/CN=" + userDn + ",OU=optional,DC=your-domain,DC=com"
_。これは実際には非常に重要です。フルパスを指定しないと、-がスローされます。 HRESULTからの例外:0x800050。
dirEntry.Properties["member"].Add(userDn);
をentry.Invoke("Add", new object[] { userDn });
に置き換える
次に、ユーザーを削除したかったので、entry.Invoke("Remove", new object[] { userDn });
が機能することを期待しました。ただし、この悪魔のようなADは、小文字の "remove"を使用した場合にのみ機能するため、entry.Invoke("remove", new object[] { userDn });
が機能しました。
グループにメンバーを追加しようとしたときにも同様の問題が発生しました。具体的には、グループをグループに追加しようとして、同じ有用なエラーが発生します 'サーバーは要求を処理することを望んでいません' OPによって提供された回答は私には機能しませんでした。
私にとって、グループをグループに追加できなかった理由は、メンバーを追加しようとしたグループが「グローバル」スコープのグループであるのに対し、「ユニバーサル」スコープのグループである必要があるためです。これが誰かを助けることを願っています。
パスがフォレストドメイン名と一致しなかった場合、この一般的なエラーメッセージが表示されました。たとえば、フォレストのドメイン名が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を設定できなかったため、ユニバーサルグループをグローバルグループにネストしようとしました。 groupType属性の詳細については、 ldapwiki.com を参照してください。
.properties("distinguished Name")
の開始は.properties("cn")
とは異なる可能性があるため、注意してください。ユーザーが.properties("cn")
に_,
_または_;
_を使用して作成されている場合、.properties("distinguished Name")
の先頭は_\,
_または_\;
_。
.properties("cn")
を使用して見つけたユーザーをグループに追加しようとすると、エラーが発生する可能性があります。