Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Активация процесса и запонение полей через подключение к удалённому столу (http://forum.oszone.net/showthread.php?t=90912)

DEDa77 26-09-2007 10:08 649647

Активация процесса и запонение полей через подключение к удалённому столу
 
В кратце, объясню задачу :
У меня на сервере (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 650369

Цитата:

Цитата DEDa77
Если я подключен и работаю на рабочем столе сервера, то ВСЁ отлично (выводится окно ввода пароля, вводится "parol" и жмётся "ОК" автоматически), но если я отключаюсь (не через LOGOF), то окно выводится но (видимо т.к. оно не становится активным) "parol" не вводится.... »

При дисконнекте рабочий стол блокируется, т.е. запрещается любой интерактив (в т.ч. "SendKeys") и никакие скрипты GUI-автоматизации работать не будут пока Desktop не будет разблокирован (локально или удаленно)... отсюда варианты:

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

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


Время: 00:45.

Время: 00:45.
© OSzone.net 2001-