2016-09-26 1 views
0

Я пытаюсь проверить группу Active Directory для пользователя. Я использую тестового пользователя, который, как я знаю, есть, пока я пытаюсь получить синтаксис правильно.Синтаксис для поиска пользователя в группе Active Directory

Я ищу весь наш домен, и фильтр я использую это:

(&(objectCategory=user)(CN=windowslogin)(memberof=CN=/#ITTest,OU=Security,OU=Groups,OU=FIRM,DC=our,DC=place,DC=com)) 

Я думаю, что задыхается от группы отчасти потому, что если удалить весь memberof пункт, а просто поиск весь AD, он находит пользователя. Он только их не найдет, когда я попытаюсь добавить в предложение предложение для поиска определенной группы.

Других вещи, которые я пробовал:

  • Список элемент с & без экранирующего символа перед #
  • С только группами OU и ГЦ после названия группы
  • Добавления НУ-х к имя пользователя часть запроса
  • не орать у него

до сих пор не повезло.

Я использую специализированный инструмент для выполнения запроса, но я надеюсь, что синтаксис, который он использует, достаточно близок к обычной командной строке, и кто-то может указать мою ошибку. Я также являюсь полноправным новичком в Active Directory, поэтому может быть несколько ошибок.

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

ответ

0

Вы должны проверить пространство имен (S.DS.AM).

В принципе, вы можете определить контекст домена и легко найти пользователей и/или групп в AD:

// set up domain context - without further parameters, it defaults to the current 
// domain you're logged in to, and to the whole AD tree 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    // find the group 
    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupName") as GroupPrincipal; 

    if(group != null) 
    { 
     // get the group members 
     PrincipalSearchResult<Principal> members = group.GetMembers(); 

     // now you just need to find the user you're looking for 
     UserPrincipal user = members.ToList().OfType<UserPrincipal>().FirstOrDefault(u => u.DistinguishedName == "CN=YourUserName"); 

     if (user != null) 
     { 
      // do something with user 
     } 
    } 
} 

Новый S.DS.AM делает его очень легко играть с пользователями и группами в AD !

Подробнее об этом здесь:

+0

Спасибо за быстрый ответ, но я не * думаю * это помогает мне. Как я уже сказал, я очень новичок в AD.Похоже, вы предлагаете добавить что-то в нашу систему, но я не в состоянии сделать такое изменение. Я также не уверен, что он будет совместим с инструментом интеграции, который мы используем. По крайней мере, я никогда не видел шаблонов или примеров, похожих на то, что вы здесь сделали. –

+0

@ VandaPaladino: нет, ничего не нужно добавлять - просто ** используйте его! ** –

+0

Еще раз спасибо. Я использую инструмент интеграции, а не сам что-то пишу, поэтому не думаю, что могу зайти в новое пространство имен. Я думаю, что я застрял, пытаясь заставить его работать сложным способом. –

0

Кажется, что вы ищете следующий фильтр:

(memberof:1.2.840.113556.1.4.1941:=CN=\#ITTest,OU=Security,OU=Groups,OU=FIRM,DC=our,DC=place,DC=com) 

(заменен слэш с обратной косой черты)

см. Search Filter Syntax

Это покажет вам всех членов группы #ITTest и всех вложенных групп. Однако этот метод имеет некоторые недостатки, например. г. в корпоративной среде это может привести к некоторым проблемам производительности

Если вам не нужно искать вложенные группы, вы все еще можете использовать memberOf: как в примере вы предоставили

+0

Спасибо, что ссылка полезна. Ошибка оказалась в другой части экрана. Есть один ящик для поискового DN и один блок для фильтра, по крайней мере одна из моих версий фильтра была права, но в поле DN были CN = Пользователи, DC = наш, DC = место, DC = com, и нам пришлось выведите CN = Пользователи. Все еще не совсем уверен, почему, но сейчас он работает, по крайней мере, с добавлением в группы. –

Смежные вопросы