Сервер не желает обрабатывать запрос-Active Directory-Добавить пользователя через C#

я использовал пример в на этой странице добавить пользователей в группу Active Directory, но я получаю исключение с сообщением "сервер не склонен обработать запрос" при выполнении

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

3 ответов


У меня была аналогичная проблема, когда я пытался добавить члена в группу. В частности, попытка добавить группу в группу и получить ту же полезную ошибку "сервер не хочет обрабатывать запрос" ответ, предоставленный OP, не работал для меня.

для меня причина, по которой я не смог добавить группу в свою группу, заключалась в том, что группа, в которую я пытался добавить членов, была "глобальной" группой, тогда как она должна была быть "универсальной" группой. Надеюсь, это поможет кто-то.


этот вопрос занял у меня много времени, чтобы решить. Во-первых, сообщение об ошибке выглядит как шутка. Во-вторых, нет ничего больше, только это сообщение.

в любом случае, мне удалось исправить это:

  1. убедившись, что userDn содержит весь путь (например,"LDAP://server-address/CN=" + userDn + ",OU=optional,DC=your-domain,DC=com". Это на самом деле очень важно, если вы не поставите полный путь, он бросит исключение из HRESULT: 0x80005000.

  2. замена dirEntry.Properties["member"].Add(userDn); by entry.Invoke("Add", new object[] { userDn });

затем я хотел удалить пользователя, и я ожидал entry.Invoke("Remove", new object[] { userDn }); на работу. Однако это дьявольское объявление будет работать, только если вы используете нижний регистр "удалить", так что entry.Invoke("remove", new object[] { userDn }); работал для меня.


после многих дней поиска я нахожу проблему. при добавлении пользователя в группу необходимо задать "различающееся имя", а не путь 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");

П. С. ent is DirectoryEntry