Удержание сеанса удаленного рабочего стола "живым"
Я использую 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, и это будет работать гладко. И да, это работает, проверял сам.