2013-04-19 13 views
5

Mam maszynę wirtualną, którą chcę uruchomić zautomatyzowane zadanie (tj. Zautomatyzowane zadanie działa na rzeczywistej maszynie wirtualnej).Automatyczne wysyłanie kluczy kończących się niepowodzeniem, gdy nie ma RDP

Maszyna wirtualna to serwer Windows 2008.

Dodałem to zadanie do harmonogramu zadań, a kiedy jestem zalogowany do urządzenia za pośrednictwem RDP, mogę uruchomić zadanie, klikając prawym przyciskiem myszy, Uruchom.

Jednak, gdy moja sesja RDP jest wyłączona, (ale użytkownik na VM jest nadal zalogowany) zadanie próbuje uruchomić, ale otwiera tylko notepad.exe, ale nie zapisuje tekstu.

Skrypt vbs jest następujący (uproszczony dla naszego użycia tutaj ...);

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." 

Mam to zadanie doskonale działa na komputerze z systemem Windows XP i po prostu nie mogę zrozumieć, co jest przyczyną problemu.

Wygląda na to, że w VM nie ma klawiatury, która nie jest połączona przez RDP. Po połączeniu przez RDP MSTSC wysyła maszynę wirtualną do mojej klawiatury i może wtedy poprawnie uruchomić zadanie.

Dzięki

David

Odpowiedz

4

OK,

Więc myślę, że zorientowaliśmy się ...

Problemem jest to, że po wylogowaniu się ze zdalnym pulpicie, a następnie serwer zablokowane i żadne skrypty nie mogą działać. Próbowałem różnych opcji, w tym poleceń ControlSend i ControlClick, ale bez powodzenia.

Rozwiązanie jest następujące: Utwórz plik wsadowy z następujących poleceń i zapisać go na pulpicie stacji roboczej chcesz zachować odblokowany: nazwałem mój plik 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 

Program Tscon.exe jest standardowo instalowany w systemie Windows i został specjalnie stworzony, aby pozostawić odblokowaną wcześniej konsolę. Zobacz ten link: http://support.microsoft.com/kb/302801

Następnym razem, gdy logujesz się do stacji roboczej z pulpitu zdalnego, nie wyloguje się w normalny sposób, ale prowadzony ci plik wsadowy - w moim przypadku „Logoff.bat” To wypowiedzieć Podłączenie pulpitu zdalnego i wyloguj się, ale będzie kontynuowane w stanie odblokowanym, aby wszystkie skrypty działały tak, jakby ktoś był rzeczywiście zalogowany.

+0

dziękuję. Uratowałeś mi dzień. –

Powiązane problemy