[VBS] ExecutablePath로 프로세스 실행 상태 확인 SystemCenter2010. 6. 25. 13:56
간혹 몇몇 프로세스의 경우 WMI 쿼리 시 프로세스의 Name과 실제 실행 파일이 일치하지 않는 경우가 있었다.;;;
Workaround로 ExecutablePath 값을 확인해 실행 여부를 확인해야 했다.
Property[@Name='State'] Equal 'Good' or 'Bad'로 상태 판단
SCOM System Center Operations Manager VBS VBScript
Dim oAPI, oBag, oArgs, strProcess
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set oArgs = WScript.Arguments
Count = 0
If oArgs.Count < 1 Then
WScript.Quit -1
End If
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process")
For Each objItem In colItems
If UCASE(RIGHT(objItem.ExecutablePath,LEN(oArgs(0)))) = UCASE(oArgs(0)) Then
Count = Count + 1
End If
Next
If Count => 1 Then
Call oBag.AddValue("State","Good")
Call oBag.AddValue("Message",oArgs(0) & " process is running.(" & Count & "ea)")
Else
Call oBag.AddValue("State","Bad")
Call oBag.AddValue("Message",oArgs(0) & " process is not running.")
End If
Set objWMIService = NOTHING
Call oAPI.Return(oBag)