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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   VBS мониторинга процесса по времени (http://forum.oszone.net/showthread.php?t=323271)

san1kan 29-01-2017 14:45 2707206

VBS мониторинга процесса по времени
 
Доброго времени суток! Есть скрипт
Код:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery( _
    "Select Name From Win32_Process " _
    & "Where Name = 'proc1.exe'")

If colProcesses.Count = 0 Then
  Set objShell = Wscript.CreateObject("Wscript.Shell")
  objShell.Run "proc2.exe"
End If

proc2 по факту батник для запуска proc1 с ключами.
Данный скрипт необходимо поставить в цикл, на проверку например каждые 5 минут наличия Proc1 и соответственно запуска proc2 при его отсутствии.

Petya V4sechkin 29-01-2017 15:59 2707232

Цитата:

Цитата san1kan
на проверку например каждые 5 минут

Обычно это делается с помощью "Планировщика заданий".

san1kan 29-01-2017 16:04 2707233

Цитата:

Цитата Petya V4sechkin
Обычно это делается с помощью "Планировщика заданий". »

Планировщик конечно вариант, но хотелось бы через скрипт. Примерно как в этом. Только тут на 1 процесс сделано.
Код:

Option Explicit

Dim lngProcessID

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
        Do
                If .Get("Win32_Process").Create( _
                        """C:\Program Files\Internet Explorer\iexplore.exe"" -k ""file://C:\WINDOWS\Help\Tours\htmlTour\default.htm""", _
                        Null, Null, lngProcessID) = 0 Then
                       
                        .ExecNotificationQuery( _
                                "SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _
                                "TargetInstance ISA 'Win32_Process' AND " & _
                                "TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent
                Else
                        ' Не удалось запустить процесс
                        Exit Do
                End If
        Loop
End With

WScript.Quit 0



Время: 21:49.

Время: 21:49.
© OSzone.net 2001-