달력

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
VBS VB Script SCOM System Center Operations Manager
매개 변수로 단일 프로세스 또는 프로세스 목록을 받아 모니터링

' 오류 상태 정의: Property[@Name='State'] 같음 Error
' 정상 상태 정의: Property[@Name='State'] 같음 Normal
' 경고 설명: $Data/Context/Property[@Name='Message']$

Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set oArgs = WScript.Arguments

' 모니터링 항목(매개 변수)이 없는 경우 종료
If oArgs.Count = 0 Then
Call oBag.AddValue("State", "Normal")
Call oBag.AddValue("Message", "모니터링 항목이 없습니다.")
Call oAPI.Return(oBag)
WScript.Quit
End If

State = "Normal"
Message = ""
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")

For i = 0 to oArgs.Count - 1
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '"& oArgs(i) & "'")
If colProcesses.Count = 0 Then
Message = Message & oArgs(i) & ", "
State = "Error"
Call oBag.AddValue(oArgs(i), "실행 중이지 않음")
Else Call oBag.AddValue(oArgs(i), colProcesses.Count&"개 실행 중")
End If
Set colProcesses = Nothing
Next

Set objWMIService = Nothing

If State = "Error" Then
Message = Left(Message,Len(Message)-2) & " 프로세스가 실행 중이지 않습니다."
Else 
Message =  "모니터링 중인 모든 프로세스가 실행 중입니다."
End If

Call oBag.AddValue("State", State)
Call oBag.AddValue("Message", Message)
Call oAPI.Return(oBag)
:
Posted by 커널64