none
Можно ли создать коллекцию компьютеров на основе информации о пользователе хранящейся в AD? Если да, то как? RRS feed

  • Вопрос

  • Добрый день! Буду благодарен если подскажите, как решить задачу.

    Нужно создать коллекции компьютеров на основе информации, которая забита в поле "Организация" (скриншот) в свойстве учетной записи пользователя в Active Directory. Можно ли так сделать? Если да, то как? Как будет выглядеть запрос?

Ответы

  • Сначала нужно добавить в AD User Discovery этот аттрибут (по-умолчанию он не собирается). Затем что-то вроде этого:

    select SMS_R_System.ResourceID,SMS_R_System.ResourceType,SMS_R_System.Name,SMS_R_System.SMSUniqueIdentifier

    ,SMS_R_System.ResourceDomainORWorkgroup,SMS_R_System.Client from SMS_R_System

    inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId

    where SMS_G_System_COMPUTER_SYSTEM.UserName in

    (select UniqueUserName from SMS_R_User where <аттрибут "организация"> = "<значение аттрибута "организация">” )


    http://OpsMgr.ru/
    Отвечающий

Все ответы

  • Сначала нужно добавить в AD User Discovery этот аттрибут (по-умолчанию он не собирается). Затем что-то вроде этого:

    select SMS_R_System.ResourceID,SMS_R_System.ResourceType,SMS_R_System.Name,SMS_R_System.SMSUniqueIdentifier

    ,SMS_R_System.ResourceDomainORWorkgroup,SMS_R_System.Client from SMS_R_System

    inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId

    where SMS_G_System_COMPUTER_SYSTEM.UserName in

    (select UniqueUserName from SMS_R_User where <аттрибут "организация"> = "<значение аттрибута "организация">” )


    http://OpsMgr.ru/
    Отвечающий
  • Добавил в AD User Discovery аттрибут department. А дальше? Куда мне вставлять предложенный SQL запрос? В свойства новой коллекции? Я там не нашел таких полей, в которые его можно вставить. Или этот код нужно вставлять в Queries? Если в Queries, то как это поможет созданию динамической коллекцию компьютеров?

    Просьба не пинать, я пока плохо себе представляю, как это делается.

    27 июня 2011 г. 12:04
  • На вкладке Criteria есть кнопка, по-моему, Show SQL-query. Вот туда в окошко и вставляете код запроса.
    http://sccm.com.ua/
    27 июня 2011 г. 16:47
    Отвечающий
  • На вкладке Criteria есть кнопка, по-моему, Show SQL-query. Вот туда в окошко и вставляете код запроса.
    http://sccm.com.ua/


    Немного не так, на вкладке General, кнопка Show Query Language.

    Но не получилось :( Компьютеры в коллекцию не попадают (скриншот). Подозреваю, что ошибка в запросе. А где именно?

     

     

     

     

    29 июня 2011 г. 7:32
  • Приведенный выше запрос это пример. Он не предназначен для того, чтобы сразу as is работать в вашей конкретной инфраструктуре (поэтому там явно написано "вроде этого").

    Делайте запросы по отдельности, смотрите на результаты. Проблема может быть, например, в том, что вы сравниваете два имени пользователя, но одно из них записано в формате domain\username, а второе как просто username.

    Вот еще один запрос(опять же - как пример):

    select SMS_R_System.NetbiosName from  SMS_R_System where LOWER(SMS_R_System.LastLogonUserName) in (select SMS_R_User.UserName from  SMS_R_User where SMS_R_User.department = "Отдел ИТ")

    Это реальный запрос из реальной инсталляции ConfigMgr, но нужно понимать, что запрос по Last Logon будет выдавать релевантные результаты только в случае четко спланированной структуры использования аккаунтов в AD. То есть если у вас один аккаунт на все случаи жизни, который вы завели во все известные вам админские группы вашей организации и используете его для входа на серверы - в результате вы получите одну рабочую станцию и половину серверного парка вашей организации.

    В общем - вам нужно тестировать и подбирать точный запрос исходя из вашей конкретной ситуации.


    http://OpsMgr.ru/
    Отвечающий