我有两个状态脚本,我已经添加到监控,检查两个服务器上的服务的状态,并报告是否运行两个或没有(应该只运行一个)。 它交互运行良好,但在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。 您可能必须创build一个运行configuration文件与监视器和一个帐户相关联,才能在远程服务器上拥有WMI权限。