1 (изменено: bear62, 2012-08-30 14:53:59)

Тема: 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

Буду благодарен за любую помощь

2

Re: VBS: Мониторинг процесса и действия над ним

and commandline like '%-offline%'

Я конечно далек от мысли... (с)

3

Re: VBS: Мониторинг процесса и действия над ним

smaharbA пишет:

and commandline like '%-offline%'

Большое спасибо, все работает