Удаленное управление SCCM 2012 R2 на уровне пользователя (powershell)

14
13201

В SCCM 2012 R2 возможность удаленного управления из консоли отображается только на уровне устройств (devices), а что делать, когда имена устройств у вас генерируются на основе «вендор-мак адрес-организационная единица» и т.д., например WS-HP-122-MSK.

В SCCM есть замечательный функционал UDA — User Device Affinity. Вот, что нам говорит об этом перевод в документации: это метод привязки пользователя к одному или нескольким выбранным устройствам. Привязка устройств к пользователю позволяет не знать имена пользовательских устройств при развертывании приложений для данного пользователя. Вместо развертывания приложения на всех устройствах пользователя приложение развертывается для пользователя. Затем привязка автоматически гарантирует, что приложение установится на всех устройствах, связанных с этим пользователем.

UDA находится в настройках агента SCCM 2012. Здесь определяем время и кол-во дней, через которое устройство будет «закреплено» за пользователем.

uda_1

После этого, если зайти в консоль SCCM в раздел Users и выбрать Edit Primary Device, можно будет увидеть список устройств, которые были закреплены политикой, либо определены самим пользователем через Software Center (Центр программного обеспечения).

uda_2

Из этого всего появился простой powershell скрипт, который извлекает список устройств пользователя и вызывает утилиту удаленного управления Configuration Manager Remote Control. На картинках ниже, станет понятно, как он работает.

В консоли SCCM, в разделе Users появляется меню Simple SCCM Tools — Remote Control.

uda_3

При клике на Remote Control открывается окно, в котором видно список устройств пользователей.

uda_4

Кнопка Remote Control вызывает утилиту для удаленного подключения.

uda_5
Скачать можно здесь User Remote Control based on User Device Affinity

Установка:
1. Скачать RemoteControlUDA.ps1 и _RemoteControl.xml из gallery.technet.microsoft.com;

2. В файле _RemoteControl.xml изменить значение пути, где у вас установлена консоль SCCM 2012 R2 <Parameters></Parameters>;

3. Создать каталог baaa6910-892f-4d20-9082-b392e5a28a53 в \Program Files\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\

Например, C:\Program Files\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\baaa6910-892f-4d20-9082-b392e5a28a53

4. Скопировать RemoteControlUDA.ps1 и _RemoteControl.xml в \Program Files\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\baaa6910-892f-4d20-9082-b392e5a28a53

5. Перезапустить консоль.

Требования: консоль SCCM 2012 R2, powershell 3.0+

_RemoteControl.xml

RemoteControlUDA.ps1

 

 

И я буду рад, если вы оцените скрипт в галерее, там есть такие чудесные звездочки. ) Спасибо.

14 КОММЕНТАРИИ

    • спасибо. Надо еще пару моментов подправить и сделать чуточку красивее. )
      и вообще разобраться, как можно все это в msi упаковать.

  1. В SCCM уже предусмотрена данная функция:
    Мониторинг — Запросы — Системы по последнему пользователю, выполневшему вход в систему.

    • это понятно, все тоже самое можно сделать выбрав edit primary device, но в вашем пример нет быстрого поиска и надо знать имя пользователя, с другой стороны сколько у вас клиентов обслуживает sccm?
      В целом, мы говорим немного о разных вещах. )

    • 500+ клиентов.

      User говорит свой логин, либо смотрим в AD, вставляем в запрос и видим машины. Дело привычки опять таки ))
      Попробую Вашим методом. Не исключаю, что и он будет удобным.

    • ну просто в этом случае у вас есть поиск по русскому имени или логину + у многих моих заказчиков 2 линия поддержки имеет доступ на уровне региональных коллекций, дальше в консоли у них просто нет доступа.
      скрипт на самом деле, как пример, что можно включить в консоль все, что угодно.
      если что-то доработаете, выкладывайте смело. ) на самом деле приятно, что есть заинтересованные люди. )

  2. Попробовал! Вполне удобно. Спасибо!

    Но порой пользователь пересаживается с одного ПК на другой, и в данном случае невозможно определить на каком именно ПК он работает в данный момент.
    При помощи же Запроса по последнему пользователю, выполневшему вход в систему мы точно можем знать, что этот пользователь сидит именно за этим ПК, а не другим, где он определен как основной.

    • а, ну значит все зависит от ИТ-процесса вашего, можно сделать все тоже самое на уровне пользователя.
      Надо будет глянуть, что там за запрос и чуть изменить скрипт.

  3. А не в курсе как сделать поиск по фио в консоле по пользователям? Тогда бы все обрело идеальный смысл =)

    • так он и так ищет. Данные ФИО берутся из AD. В консоли на уровне Users есть поле поиска, все замечательно работает.

  4. Возможно я что-то не так делаю, но у меня хоть в свойствах пользователя и отображена фамилия в sn и полностью фио в displayName, а ищет поле поиска только по Name (логину)…

  5. Не получается подключиться по пользователю. Выходит ошибка Power Shell «import-module^ Сервер RPC недоступен. (Исключение из HResult: 0x800706BA)

  6. Что-то я про скрипты не понял (не работал я с ними)… Подскажите, а есть ли возможность запускать сеанс Remote Control SCCM из командной строки ?

    Поясняю: у нас есть карты компов (по подразделениям) нарисованные в программе FPinger, и там есть возможность прицеплять к компам «внешние команды» — допустим управление по Remote Admin мы запускам командой C:\Program Files\RAdmin\Radmin.exe с параметрами /connect:%Address /updates:10
    Хотелось бы аналогично запускать и Remote Control SCCM избегая долгого запуска консоли управления SCCM (и поиска там нужного компа).

    • можно

      https://technet.microsoft.com/en-us/library/gg712330.aspx?f=255&MSPPError=-2147217396

      CmRcViewer.exe supports the following command-line options:
      Address — Specifies the NetBIOS name, the fully qualified domain name (FQDN), or the IP address of the client computer that you want to connect to.
      Site Server Name — Specifies the name of the System Center 2012 Configuration Manager site server to which you want to send status messages that are related to the remote control session.
      /? – Displays the command-line options for the remote control viewer.
      Example: CmRcViewer.exe Address \\Site Server Name

Добавить комментарий