IntraVision

Автоматизация управления компьютерами через заявки в Intradesk (beta версия)

Статья еще обновляется. Мы развиваем этот функционал. Хотя наш функционал ещё не доработан, мы уже разрабатываем планы на будущее. Если вас интересует этот функционал, пожалуйста, напишите на support@intradesk.ru, указав в теме письма "для Матвея Богатова". Мы свяжемся с вами, чтобы обсудить детали.

Полезные сценарии
(IT сервис-деск в крупной компании.). Примеры:
1. Пользователь выбирает из списка разрешенного ПО для установки на компьютер, нажимает «Создать заявку», и посредством PowerShell-скрипта (через сервер WinRM) пользователю на компьютер устанавливается нужное ПО. По сути, эта «заявка» нужна только для статистики.

2. Пользователь делает запрос через заявку на доступ к папке (из списка) и нажимает «Создать заявку». Для каждой папки настроен согласующий (владелец актива). После согласования также посредством PowerShell скрипта пользователю предоставляется доступ к папке. 

Принципиально это возможность удаленного выполнения любой команды на компьютере Пользователя.

Концепция решения
На событие изменения заявки в нужном сервисе (например, перевод в статус «В работе» после автоматического согласования) настроен WebHook, который вызывает WebService. WebService, в свою очередь, запускает команду у сервиса WinRM (сервис входит в состав Windows Server 2008 и далее.). Эта команда далее может быть выполнена на удаленном компьютере Пользователя.

 
 
Рисунок 1.



Конкретный пример. Детали (по рисунку 1)

Для нашего примера дадим детализацию по шагам (на рисунке шаги обозначены стрелками 1-5)

Шаг.1.
Настройка WebHook. В настройках Intradesk можно указать, для какого сервиса (типа заявки) делать вызов WEB сервиса. В нашем примере это только для сервиса «Установка ПО», когда меняют заявку.
 
 

В атачменте приложен исходный код на языке .NET веб-сервиса, отрабатывающего запросы https://10.70.1.49:49155/webhook. Соответственно, именно такой URL мы прописали.

Шаг 2. Из кода WEB-сервиса видно, что он получает из параметров запроса ID актива от заявки. Именно этот идентификатор он далее подставляет в команду для передачи в WinRM-службу. В нашем примере мы предполагаем, что на заявке выбирается актив в качестве ПО для установки.

 
 

Мы даем абстрактный пример (пока это не полностью рабочий пример). Для реального примера, как минимум, нужно получить IP адрес компьютера на котором надо ставить ПО. Скорей всего мы должны хранить и обновлять это поле (IP адрес) у Пользователя. Это дополнительное поле Пользователя (Сотрудника или Клиента)

Пример, как по ID заявки получить доп. поле Пользователя (Заявителя) и/или доп. поле Актива, можно посмотреть здесь????.

Т.е. веб-сервис должен обратиться по API к Intradesk, чтобы получить значение IP-адреса. Дело в том, что в параметрах от вебхуков приходит ограниченная информация и там нет всей информации по дополнительным полям Пользователей. 

В нашем примере web-сервис, получив в параметрах команду, которую надо выполнить, проверяет на ее существование (т. е. команда «echo %20/All» есть). Если команда есть, то веб-сервис переводит заявку в статус «Выполнено», если нет, то в «Не выполнено».