Скрипт синхронизации двух состояний SCOM не работает

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

1 ответ

Имеет ли учетная запись действия SCOM права на WMI на удаленных серверах. Возможно, вам придется создать профиль запуска для связи с монитором и учетной записью, которая будет иметь права на WMI на удаленных серверах.

Другие вопросы по тегам