PDA

Показать полную графическую версию : Активация процесса и запонение полей через подключение к удалённому столу


DEDa77
26-09-2007, 10:08
В кратце, объясню задачу :
У меня на сервере (Win NT), постоянно работает приложение (автоматические обработчики), и с переодичностью в несколько дней падает (абсолютно "втихую")...
Я вешаю в "Планировщике задач" запуск такого скрипта :
'___________________________________________________________________________________________
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'prilogenie.exe'")
If colProcesses.Count = 0 Then
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
objProcess.Create "C:\prilogenie.exe", NULL, NULL, intProcessID
DIM Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
WScript.Sleep(3000)
Wsh.SendKeys("parol")
'Wsh.SendKeys"{enter}"
Set Wsh = nothing
WScript.Quit
End If
'___________________________________________________________________________________________

Если я подключен и работаю на рабочем столе сервера, то ВСЁ отлично (выводится окно ввода пароля, вводится "parol" и жмётся "ОК" автоматически), но если я отключаюсь (не через LOGOF), то окно выводится но (видимо т.к. оно не становится активным) "parol" не вводится....
И вот вопрос (УВАЖАЕМЫЕ ЗНАТОКИ): КАК мне отслеживать отсутствие поцесса и запускать приложения ?!!!
P.S.: подойдут даже самые сумасшедшие решения, либо просто "мозговой штурм"

amel27
27-09-2007, 11:49
Если я подключен и работаю на рабочем столе сервера, то ВСЁ отлично (выводится окно ввода пароля, вводится "parol" и жмётся "ОК" автоматически), но если я отключаюсь (не через LOGOF), то окно выводится но (видимо т.к. оно не становится активным) "parol" не вводится.... »При дисконнекте рабочий стол блокируется, т.е. запрещается любой интерактив (в т.ч. "SendKeys") и никакие скрипты GUI-автоматизации работать не будут пока Desktop не будет разблокирован (локально или удаленно)... отсюда варианты:

- попытаться запустить программу в "тихом" режиме (без окошек);
- не использовать RDP (VNC - пример альтернативного решения);
- никогда не отключать удаленный RDP-сеанс;
- автоматизировать весь цикл с удаленной машины: RDP-подключение/проверка/отключение;
- виртуализировать сервер вместе с приложением.

К сожалению, настройки локального Autologon'а не распространяются на RDP - после удаленного отключения локальная консоль не пытается восстановить подключение к своему рабочему столу... Автоматизировать ввод пароля тоже проблематично, так как для Logon'а используется специальный защищенный рабочий стол... разве только поставить механического робота? :)




© OSzone.net 2001-2012