Назад | Перейти на главную страницу

SCOM Timed Monitor Two State Script не работает

У меня есть сценарий с двумя состояниями, который я добавил в мониторинг, который проверяет состояние службы на двух серверах и сообщает, работает ли он на обоих или ни на одном (должен работать только на одном). Он отлично работает в интерактивном режиме, но не работает ни разу в 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 на удаленных серверах.