2013-04-19 4 views
5

У меня есть виртуальная машина, на которой я хочу запустить автоматическую задачу (т. Е. Автоматическая задача выполняется на виртуальной виртуальной машине).Автоматические ключи отправки, если нет RDP

VM - это сервер Windows 2008.

Я добавил задачу в планировщик задач, и когда я вошел в систему через RDP, я могу запустить задачу, щелкнув правой кнопкой мыши, Запустить.

Однако, когда мой сеанс RDP выключен (но пользователь на виртуальной машине все еще зарегистрирован), задача выполняет попытку запуска, но только открывает notepad.exe, но не записывает текст.

Скрипт vbs выглядит следующим образом (упрощенный для нашего использования здесь ...);

Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run "Notepad.exe" 
Do Until Success = True 
Success = objShell.AppActivate("Notepad") 
Wscript.Sleep 1000 
Loop 
objShell.SendKeys "This is a test." 

У меня есть эта задача, идеально работающая на машине под управлением Windows XP, и я просто не могу понять, что вызывает проблему.

Кажется, что на VM нет клавиатуры, если она не подключена через RDP. При подключении через RDP MSTSC отправляет VM мою клавиатуру и может выполнить задачу правильно.

Спасибо,

Дэвид

ответ

4

OK,

Так думают я понял это ...

Проблема в том, что после входа с удаленным рабочим столом, а затем сервер заблокирован, и никакие сценарии не могут запускаться. Я пробовал различные варианты, включая команды ControlSend и ControlClick, но без каких-либо успехов.

Решение заключается в следующем: Создайте пакетный файл с помощью следующих команд и сохранить его на рабочий стол рабочей станции вы хотите сохранить разблокировано: Я назвал свой файл Logoff.bat

START C:\Windows\System32\tscon.exe 0 /dest:console 
START C:\Windows\System32\tscon.exe 1 /dest:console 
START C:\Windows\System32\tscon.exe 2 /dest:console 
START C:\Windows\System32\tscon.exe 2 /dest:console 
START C:\Windows\System32\tscon.exe 3 /dest:console 
START C:\Windows\System32\tscon.exe 4 /dest:console 
START C:\Windows\System32\tscon.exe 5 /dest:console 

Tscon.exe входит в стандартную комплектацию вашей установки Windows и специально создан для того, чтобы оставить заблокированную ранее заблокированную консоль. Смотрите эту ссылку: http://support.microsoft.com/kb/302801

следующий раз, когда вы войти в рабочую станцию ​​с удаленным рабочим столом, не выйти на нормальный путь, но работать вам пакетный файл - в моем случае «Logoff.bat» Это будет аннулирована Подключение к удаленному рабочему столу и выйдите из системы, но затем продолжите в незаблокированном состоянии для запуска любых сценариев, как если бы кто-то действительно вошел в систему.

+0

спасибо. Ты спас свой день. –

 Смежные вопросы

  • Нет связанных вопросов^_^