Скрипт синхронизации двух состояний 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 на удаленных серверах.