У меня есть сценарий с двумя состояниями, который я добавил в мониторинг, который проверяет состояние службы на двух серверах и сообщает, работает ли он на обоих или ни на одном (должен работать только на одном). Он отлично работает в интерактивном режиме, но не работает ни разу в SCOM 2007. Кто-нибудь знает, что мне не хватает?
Я добавил проверки работоспособности и нездоровья на основе стоимости сумки с недвижимостью.
Вот сценарий:
Dim oAPI
Dim oBag
Dim strService
Dim strComputer1
Dim strComputer2
Dim isService1Running
Dim isService2Running
Dim isProblem
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
strService = "My Service Name"
strComputer1 = "myServer1"
strComputer2 = "myServer2"
isService1Running = IsServiceRunning(strComputer1, strService)
isService2Running = IsServiceRunning(strComputer2, strService)
isProblem = (isService1Running And isService2Running) Or (Not isService1Running And Not isService2Running)
If isProblem Then
Call oBag.AddValue("State", "BAD")
Else
Call oBag.AddValue("State", "GOOD")
End If
Call oAPI.Return(oBag)
Function IsServiceRunning(strComputer, strService)
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service where DisplayName = '" & strService & "'")
IsServiceRunning = false
For Each objItem in colItems
If objItem.status <> "OK" or objItem.state <> "Running" then
Else
IsServiceRunning = true
End If
Next
End Function
Имеет ли учетная запись действия SCOM права на WMI на удаленных серверах. Возможно, вам придется создать профиль запуска от имени для связи с монитором и учетную запись для работы с ним, которая будет иметь права на WMI на удаленных серверах.