Координатор Unattended-Роботов

.

Координатор — это сервис, который должен быть установлен под учетной записью Администратора RDP-сервера (терминального сервера), на котором планируется в пользовательских учетных записях запускать Unattended-роботов, при условии, что требуется автоматический вход в учетные записи Роботов. Координатор служит для запуска сессий локальных Пользователей вместе с Unattended-роботами на терминальных серверах под управлением операционных систем Windows 2008 — 2022.

Задача координатора — по команде оркестратора поднять и удерживать RDP подключение к локальной или удаленной пользовательской учётной записи, в которой затем запускается unattended-робот.

Для Attended-роботов указывать Координатор не требуется.

Координатор устанавливается из соответствующего дистрибутива Sherpa Coordinator, предоставляемого вендором. Sherpa Coordinator не требует отдельной лицензии.

.

Робот с функцией Координатор (для Unattended-роботов) отображается в таблице Роботы. Координатор всегда находится во включенном состоянии, о чем сигнализирует зеленый индикатор. Данный сервис обеспечивает создание и удержание сессий пользовательских учетных записей для Unattended-роботов в рамках используемого терминального сервера.

Все остальные Роботы – это технические учетные записи, запущенные на том же терминальном сервере.

.

В случае если у вас конфигурация предусматривает терминальный сервер (Windows Server с ролями и лицензиями RDS), координатор надо установить из-под админа, а SherpaRPARuntime в режиме «Unattended» в каждую из учётных записей пользователей на этом терминальном сервере, которые будут работать как unattended-роботы.

В случае если у вас не предусмотрены терминальные сервера, а есть только группировка виртуальных машин, одну из них нужно выделить под роль координатора. Эта виртуальная машина должна быть постоянно включена, т.к. она будет обеспечивать работу unattended-роботов на других машинах. При этом на самой виртуальной машине согласно стандартной RDP-лицензии Windows вы сможете установить одного unattended-робота в пользовательской учётной записи.

.

4.3.1 Принцип работы Координатора

По расписанию, вызову API, команде Робота либо по другому поддерживаемому триггеру Оркестратор даёт задание Координатору соответствующего терминального сервера создать RDP-подключение к локальной или удаленной учетной записи, выделенной для Unattended-робота, при этом на одном терминальном сервере может быть размещено и одновременно активно несколько таких учетных записей. Вход в учётную запись Unattended-робота производится с предоставленными Оркестратором логином и паролем.

На стороне Оркестратора этот процесс выглядит следующим образом:

После создания Работы Оркестратор видит, что Unattended-Робот недоступен, но ему назначен Координатор, и этот Координатор доступен, о чем сигнализирует зеленый индикатор.

.

.

Оркестратор направляет Координатору команду на включение учетной записи этого Unattended-Робота.
Координатор принимает команду и в рамках сервера поднимает RDP-подключение своей собственной учетной записи, в которой находится этот Робот. Т.е. он запускает RDP-подключение, учетная запись включается, внутри учетной записи запускается Unattended-Робот, в списке его индикатор становится зеленым.

.

Unattended-Робот обращается к Оркестратору, видит, что в Работах для него есть Задача, принимает ее и отрабатывает. 
Если запуск производится через такую цепочку действий, после выполнения Задачи, Робот автоматически выйдет из своей Учетной записи и Учетная запись полностью выключится. 

.

4.3.2 Ссылка для скачивания Координатора

.

https://sherparpa.ru/downloads/SherpaRPACoordinator.exe

.

Дистрибутив SherpaRPACoordinator.exe устанавливается под админской учётной записью и впоследствии запускается как сервис от имени System.

.

4.3.3 Установка Координатора

.

Робот в любом из способов установки (с дизайнером или без, в версии exe или в версии msi) может иметь роль как Attended, так и Unattended, это определяется его лицензией (локальной или полученной из Оркестратора) и способом запуска (локально или через Оркестратор).

При установке Координатора необходимо выбрать тип устанавливаемого Робота, на первом шаге установки.

В примере на скриншоте ниже на виртуальной машине установлена ОС Windows Server 2019. На этой машине поднят виртуальный сервер, также созданы несколько учетных записей для входа под терминальным сервером.

.

https://lh4.googleusercontent.com/mi2MHmHZ7VHAxmi6FgFM4mS7NDOqCsHt7_xqpmchgz0T1NIGuxE8AMwWWcwOeZTsdYnRFF90nrXWEUIRA-QjbWzxecUH0ghCVpmYvo0r2Mc2WFUnRAhlg4IA_BO8sWzYaadAOVt_RG9i50lV4vkDMw

При входе на сервер под учетной записью Администратора можно установить Координатор. Это служба, которая имеет два файла – саму службу и программу, которая управляет сессией.

.

https://lh6.googleusercontent.com/xileEGF1JMOGU8Bm8haL1h1tJNuAQbMvJI8gp1zJ5g2ect86oqTuBPvcJssqSvsVN5Fqi_1hqiDRch33YLq8FvAHmHxGPAlBs3FNX7lUr-fNyqeGNplzQ4WqolJEhRbTo2tT-X-VbJ5wjp9peQqT2Q

https://lh3.googleusercontent.com/P4cVUaGQ4YQhStQwBsfSZ-eftfrsawabZcyuXyskvmZkCRwhcxSgbFaG7TR6-xXSbK9ZSWZ18LYBwE7594zGrV-ND3iqDTNxhQbjRbowdvNurZ7apZ_hYr-7M6iEzghSOi6OjmmMEdBAqw2zaCWQJg

.

При установке координатора необходимо ввести домен сервера Оркестратора и идентификатор (ID) Координатора.

.

https://lh4.googleusercontent.com/fkkdhvHNE2JSdvHM6QnGMY8YOuV3zm4WrZ8Xk6mu1ZJq4YvhZ0fPkiZiaCTP_Zr2ctpmkVSO2p42g11pxbM07B3ncZLndcpciX_EMFs_HcCrf425F9une3W2Mm0HsUzaeCRhcyb3wFpv3EsJC4DwIg

.

ID координатора копируется в карточке Робот.

.

Далее необходимо проверить подключение.

.

https://lh6.googleusercontent.com/GQm-5jHL2emm1-ehy6XdooZAWqNp_5hYw1ZTt9Fz1Zy-GhECAN_5hTTPAcTiAR88gl4OVIqH575XPeuQSMikQ3OkCgDqMMh1MKLcb-aN--Jfn7Qx6RRaOiFMUzdFLdGLy6N-2-I_4MiCcR4NEw8bFg

.

При успешном подключении производится запуск установки. Также при необходимости можно настроить прокси.

.

https://lh6.googleusercontent.com/3SSvxFN1CLMQiqMeQsirn8JcOX4bCqkFM_pZh_y78-b9Kta9f80bTT69zFkydMV4S-EfQrKvV3CtTply7QoNEWOVdD--6gt4ov6dw28qP24DY2qOryA0eYH2NPvgYNtt9GyEWZz0OelhpkR59-158Q

.

После завершения установки Координатора, запускается служба Sherpa RPA Service.

.

https://lh6.googleusercontent.com/_SvTg7wQwcd6RgY46W2ZVvpEnmH5fiwq04MfMFdN-sEU-jaCWlir1L5XOsOXeildPAs6G746EVRxHS47vN1mSzAcrWukJKe20k-OMScIQR6BpG-N6phVuOTfPqH4TaZWsi4Oce83MqP4OlYt_15Rfw

.

При проверке наличия службы Sherpa RPA Service в реестре служб, видно, что она установлена и находится в состоянии Выполняется.

https://lh4.googleusercontent.com/7QbFtSrG1ro5jWB_yX1V1pfjnqvp397oIVhw76W2z-qQ_SHftVrUlqywn3CkzmZFI4PeEImCu7Q9CV9_pWlDohsKxveYDKLz7BkqsJU6LWV_TQAIFGzmDKuP2iWigGT9__wyimZgF5PWZUmZ1TDf_w

.

В настройках свойств Sherpa RPA Service предусмотрена возможность выбрать Тип запуска (вкладка Общие). Для удобства тип запуска можно установить Автоматически.

.

https://lh3.googleusercontent.com/bxqcZMDzJDYcNJ2fJsv7KJG5TnfDligcSZe2JaSJYmed_VWl1bx8ntQQv0YhJuO-X2LYLOG_oYU0PSTmGf8hB-_T3jUtvPlDDd6mXDK7YaS00ObMHg7hPqw3CxRRyxHaVVG0eZKz8p3uCMET8DtxaQ

.

После установки Координатора дополнительная настройка не потребуется.

Далее нужно войти в учетную запись Пользователя, в которой будет установлен Робот, при этом используется установщик Runtime.

Для того, чтобы завести Координатор в

При создании Координатора необходимо указать имя (задается произвольно) и выбрать роль Coordinator.

.

Оркестратор, потребуется только его GUID (скопировать из Оркестратора).

.

После скопировать в карточке Координатора его GUID

.

.

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

.

Далее, необходимо завести Unattended робота:

.

Здесь нужно выбрать ранее созданного Координатора, ввести IP машины с Unattended-роботом, логин (с доменом, если есть) и пароль от учетной записи Пользователя, под которой должен заходить робот. Если есть active directory, то логин учетной записи должен указываться через доменное имя (через слэш).

.

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

.

.

Также необходимо указать Лицензионные ключи, которые ранее были добавлены на экране Лицензии.

.

.

Далее выбрать Unattended лицензию. Лицензия должна быть заранее заведена в Оркестратор и активирована (дата окончания лицензии должна быть больше текущего дня).

Скопированный GUID данного Робота нужно вставить в настройки Unattended-робота который будет установлен уже под учетной записью Пользователя на терминальный сервер или на виртуальную машину.

После установки и настройки Unattended-робота, нужно выйти из его учётной записи (logoff).

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

Далее, если сервер включен и Координатор также включен, в списке возле него будет зеленый индикатор

Учетная запись Unattended-Робота выключена и в списке будет отмечена красным индикатором, как на изображении на скриншоте ниже.

В результате окно Роботы должно выглядеть следующим образом:

.

.

Координатор – зелёный индикатор (на связи), Робот в учетной записи – красный индикатор (не на связи), т.к. его учетная запись разлогинена.

Тем не менее, можно создать Работу, выбрать этого Unattended-Робота, а также выбрать какой-либо Процесс или Задачу, который он будет выполнять. Задачу можно указать, а можно и не указывать, это опциональная функция.

.

https://lh4.googleusercontent.com/TsV-KSombrM0o3TStv0PfhAwlUeDie3V95K6A26yvV5mVQ_7aYO5xmwHCGaauYGVufhoU9GzQMgBIuFVnGO1vrDlca53_1gQr6-P3sLaZHneD_JdOQpip8FtiARJAJiv9SHtResI5z-eiCvmRnWvkQ

https://lh3.googleusercontent.com/ZuxznsRJV_DbPdN43N2zPadV1RMgNbKIfqGJM9YbRMT4C6v6VErt8W72zqOHlt7ItDdycAvvhWzd9SQHDKrlnRKNR14WqJAX0bAdLNFczHZpOAHLaWMdZW_TappK_53e2BdNCn8_RQk7WCaB1PJEZA

.

.

4.3.4 Создание Работы на экране Работы

.

Работа может создаваться не только вручную, но и автоматически Оркестратором по мере отработки определенного Расписания или Работу можно завести через API.

 

После создания Работы Оркестратор видит, что Unattended-Робот недоступен, но ему назначен Координатор, и этот Координатор доступен. Оркестратор направляет Координатору команду на включение учетной записи этого Unattended-Робота. Координатор принимает команду и в рамках сервера поднимает RDP-подключение своей собственной учетной записи, в которой находится этот Робот. Т.е. он запускает RDP-подключение, учетная запись включается, внутри учетной записи запускается Unattended-Робот, в списке его индикатор становится зеленым. Он обращается к Оркестратору, видит, что в Работах для него есть Задача, принимает ее и отрабатывает. 

Если запуск производится через такую цепочку действий, после выполнения Задачи Робот автоматически выйдет из своей Учетной записи и Учетная запись полностью выключится. 

.

Автоматический выход из Учетной записи — это стандартная практика, часть подхода enterprise-фреймворков, в которой каждый запуск какой-либо задачи изолируется от других запусков через перезагрузку Учетной записи.

При возникновении нестандартных ситуаций в Учетной записи, например, если одна из программ, с которой работает Робот, зависает или появляется модальное диалоговое окно, которое блокирует все и Робот не может продвигаться дальше, потому что данный вариант не был предусмотрен в сценарии. Сценарий Робота в этом случае завершается с ошибками, но программа, с которой работал Робот (1С, к примеру), остается “висеть” с модальным окном и получается, что интерфейс заблокирован. Когда в следующий раз по Расписанию на этой же Учетной записи запустится Робот и начнет отрабатывать сценарий, он не сможет преодолеть заблокированную программу. Поэтому существует стандартная практика – когда Работа с Unattended-сценарием завершена (успешно или неуспешно), происходит его “Log off”. Операционная система убирает все лишнее и к следующему запуску Робота все начинается с чистого листа.

.

Эта функция безусловна, то есть при запуске через Координатор, Logoff произойдет в любом случае.

.

Примечание. Подобная организация взаимодействия с Работами позволяет обрабатывать множество записей из Очереди внутри одного запуска Работы. В сценарии Робота может быть множество разных блоков: Получить сценарии из очереди, Изменить статус задачи и другие. При запуске сценария из Очереди берется Задача, обрабатывается, затем берется следующая и так далее.

.