Тема: VBS: Скрипт который мониторит процесс
Добрый день коллеги, к сожалению не осилил данную скрипт в виду нехватки знаний по VBS, прошу помочь. Есть скрипт который запускаеться с загрузкой системы его задача, мониторить появления процесса1 в taskmanager, при появлении процесса1 идет исполнение на закрытие другого процесса2, а при закритии процесса1 идет возобновление процесса2. Текущий скрипт отрабатывает, но через какое то время закрываеться, необходимо что бы скрипт постоянно висел в системе и контролировал данную ситауцию.
Set WshShell = CreateObject("WScript.Shell")
Set WshShell = Nothing
On error resume next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
' Cores Counting
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
cores = 0
For Each objItem In colItems
cores = cores + objItem.NumberOfLogicalProcessors
Next
cores = cores - 1
' General Launching and Checking
do
' Proc1
Set taskcolitem = objWMIService.ExecQuery("Select * from Win32_Process")
taskmgrisrun=false
For Each objItem in taskcolitem
If objItem.Name = "proc1.exe" OR objItem.Name = "proc1.exe" Then
taskmgrisrun = True
Exit For
End If
Next
' End Proc1
Running = False
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
If objItem.Name = "proc2.exe" Then
Running = True
Set thisprocess=objItem
Exit For
End If
Next
For Each objItem in colItems
If taskmgrisrun Then
If Running Then
thisprocess.Terminate
End if
If Not Running Then
Running=True
End if
Exit For
End if
Next
If Not Running Then
WshShell.Run "proc2.exe" & cores, 0
End if
Loop