달력

1

« 2025/1 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

간혹 몇몇 프로세스의 경우 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)

:
Posted by 커널64