Описание Robot
Релизы

Проблемы при работе с закрытым или заблокированным окном RDP

Описание ошибки

В закрытом режиме по умолчанию целевая система переходит в “безэкранный“ режим - работа с элементами приложений в таком случае невозможна.

Решение

При заблокированной сессии (закрытой RDP сессии) успешно работают и workflow, вручную запущенные из Studio прямо перед блокировкой, и запущенные через Orchestrator SaaS (кроме работы с интерфейсом).

Способ 1. Дополнительная ВМ

Чтоб работал данный способ необходимо открыть дополнительную (буферную) машину и на ней настроить терминального клиента для поддержки свернутого режима.

Условные обозначения:

  • Машина разработчика - М0.

  • Целевая машина - М1.

  • Буферная (дополнительная) машина - М2.

На М1 мы запускаем workflow, подключаем к Orchestrator SaaS. На М2 мы настраиваем терминальный клиент как описано в данной статье. Далее мы подключаемся с машины разработчика (М0) на М2, а с М2 на М1. После чего, не закрывая подключение М2 к М1, мы закрываем подключение М0 к М2. После чего можем запускать роботов через Orchestrator SaaS.

Способ 2. Создание bat-файла.

Суть заключается в создании bat файла следующего содержания:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)

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

Надо понимать, что консоль у сервера только одна и подобное решение сработает только у одного пользователя: при запуске этого же bat файла от второго пользователя, сессия первого станет обычной “закрытой“.