Тема: VBS: Мониторинг процесса и действия над ним
Здравствуйте.
Помогите, пожалуйста, с написанием скрипта.
Задача:
Необходимо проверять доступность удаленного сервера и если пинг есть:
1) проверить в процессах наличие процесса с "командой запуска" firefox.exe -offline,
2) если такой процесс есть, "убиваем" процесс firefox.exe
3) запускаем firefox.exe
если пинга нет:
1) проверить в процессах наличие процесса с "командой запуска" firefox.exe -offline
2) если такого процесса нет, "убиваем" процесс firefox.exe
3) запускаем firefox.exe -offline
Вопрос в следующем, как в запросе в качестве условия указать "CommandLine" , сейчас по имени процесса все работает;
CommandLine в WinXP выглядит следующим образом:
"C:\Program Files\Mozilla Firefox\firefox.exe" -offline
Вот, что получилось:
if ping ("ya.ru") then
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
If objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'firefox.exe'").Count = 1 Then
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'firefox.exe'")
objProc.Terminate
Next
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "firefox.exe"
Else
End if
else
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
If objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'firefox.exe'").Count = 1 Then
Else
For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'firefox.exe'")
objProc.Terminate
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "firefox.exe -offline"
End If
Function Ping(strAddr)
' Проверяем доступность компьютера с помощью команды PING
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("%comspec% /c ping.exe -n 1 " & strAddr)
strPingResults = LCase(objScriptExec.StdOut.ReadAll)
Ping = InStr(strPingResults, "ttl=")
End Function
End ifБуду благодарен за любую помощь

