При запуске и работе роботов в консольном режиме нужно учитывать также несколько особенностей:
- Чаще всего исполнение команды по переводу машины в консольный режим должно происходить от имени администратора (в редких случаях необходимая учетная запись уже может обладать нужным уровнем прав).
- В политиках удаленной машины должна быть отключена автоматическая блокировка экрана и переход в спящий режим при бездействии. Это требование должно быть выполнено, если время бездействия робота (например, между его запусками по расписанию) превышает установленный лимит бездействия, после которого учетная запись блокируется или переводится в спящий режим. Дело в том, что при заблокированной учетной записи, робот сможет запуститься, но корректно исполнит только те действия, которые выполняются в фоновом режиме. Самостоятельно же разблокировать учетную запись робот не сможет.
- Необходимо, чтобы в консольном режиме разрешение экрана оставалось таким же, какое оно было при активной RDP-сессии, когда аналитик производил создание исходного робота (не влияет только при исполнении действия по созданию скриншота). Это правило должно всегда соблюдаться. Если разрешение при переходе в консольный режим все же меняется, можно попробовать немного модифицировать команду:
tscon.exe <ID> /dest:console & <Путь до QRes.exe> /x:<Значение по X> /y:<Значение по Y>
где первая команда - это переход в консольную сессию, вторая - установка разрешения при помощи специализированной утилиты. Исходники утилиты здесь.
Но здесь следует учитывать, что на некоторых виртуальных средах после отключения RDP-соединения может не сохранятся то разрешение, с которым работал пользователь. В консольном режиме может происходить автоматическая установка того разрешения, с каким в последний раз заходили администраторы в консоль управления виртуальной средой.
Такая проблема, например, существует в виртуальных средах VMware. Предлагаемое решение описано по ссылке: VM Console Display Resolution Change - vGemba.net.
Для решения проблемы необходимо:
а) войти на нужную машину через консоль управления и поменять на машине разрешение на необходимое:
б) прописать в настройках виртуальной машины (через консоль управления) следующие параметры:
guestInfo.svga.wddm.modeset=”FALSE” guestInfo.svga.wddm.modesetCCD=”FALSE” guestInfo.svga.wddm.modesetLegacySingle=”FALSE” guestInfo.svga.wddm.modesetLegacyMulti=”FALSE”
В таком режиме манипуляции с размером консоли VMware не влияют на разрешение, которое будет на машине в консольном режиме при работе робота.
Корректная работа при свернутом rdp соединении:
- На клиенте вносим изменения в реестр (RemoteDesktop.reg).
- Этот параметр запрещает rdp клиенту блокировать удаленный компьютер, если пользователь сворачивает окно rdp клиента.
- После внесения изменений в реестр, можно будет сворачивать окно с удаленной машиной (где находится робот) и робот будет корректно отрабатывать.