Удержание сеанса удаленного рабочего стола "живым"

Я использую AutoIt для автоматизации операций с графическим интерфейсом (подключение к машине, которая запускает автоматическое приложение, используя RDP). Всякий раз, когда я минимизирую окно RDP (используя mRemote), дальнейшие команды AutoIt не выполняются.

Возможно, сеанс RDP помечен как "неактивный", когда я минимизирую окно (я не знаю, это правда, и как настроить это поведение, если это так). Я думаю о двух вариантах, чтобы преодолеть это:

  • Выполнение моего процесса как некоторого повышенного пользователя (или службы).
  • Поиск этой конфигурации, которая контролирует, будет ли сеанс помечен как неактивный и переопределить его.

Как сохранить сеанс удаленного рабочего стола "живым" при минимизации окна RDP?

Ответ 1

У нас была такая же проблема с RDP. Обходной путь, который мы использовали, заключался в том, чтобы открыть еще один сеанс удаленного рабочего стола для подключения к одному и тому же серверу:

  • Вы подключаетесь к sever с помощью RD.
  • В RD шага 1 вы снова подключаетесь к server.

Таким образом, второй сеанс будет оставаться "активным", когда вы минимизируете или даже отключите свой первый сеанс RD. Конечно, ваш сервер удаленного рабочего стола должен поддерживать несколько подключений от одного и того же пользователя.

Ответ 2

Возможно, вы захотите присоединить свой текущий сеанс RDP к CONSOLE. В таком случае даже после отключения пользовательский интерфейс будет оставаться активным.

TSCON {sessionid | sessionname} /DEST:CONSOLE

Ответ 3

Мой ночной набор регрессии использовался для отказа на моей локальной машине, потому что корпоративные правила автоматически блокировали машину через 14 минут бездействия. Поэтому я написал небольшую программу vbScript, чтобы нажимать клавишу "PrintScreen" каждые 12 минут, и это действительно решило проблему. Хотя это не было в RDP, но выполнение чего-то подобного на удаленной машине помогло бы.

Ответ 4

Принятый ответ не работает, если вообще нет сеанса rdp, и вы все равно хотите автоматизировать его с помощью AutoIt.

Говорят, в этом случае вы не должны использовать WinActivate и использовать ControlSend в сценариях AutoIt, и это будет работать гладко. И да, это работает, проверял сам.