2015-06-16 2 views
1

Я столкнулся с проблемой SCOM. Я создал сценарий ниже для мониторинга приложения. Он создает запись в журнале событий при запуске сценария, и я настроил предупреждения для определенной группы, в которой работает монитор.SCOM Monitor не сообщает

Я не создаю скрипт, это мой вопрос?

Вот ошибка, которую я получил, когда я изменил oAPI.Return(oBag) к oAPI.ReturnItems

The process started at 2:24:23 PM failed to create System.PropertyBagData. Errors found in output:

C:\Program Files\System Center Operations Manager\Agent\Health Service State\Monitoring Host Temporary Files 84\29451\voxwareMonitor.vbs(33, 2) Microsoft VBScript runtime error: Invalid procedure call or argument

Dim proc, serv, oArgs, oAPI, oBag 

sComputerName = "." 
Set objWMIService = GetObject("winmgmts:\\" & sComputerName & "\root\cimv2") 
sQueryPro = "SELECT * FROM Win32_Process" 
sQuerySer = "SELECT * FROM Win32_Service" 
Set objProcs = objWMIService.ExecQuery(sQueryPro) 
Set objServ = objWMIService.ExecQuery(sQuerySer) 

Set oAPI = CreateObject("MOM.ScriptAPI") 
Set oBag = oAPI.CreatePropertyBag() 

For Each objItem In objProcs 
    If objItem.Name = "javaw.exe" Then 
     proc = True 
    End If 
Next 

For Each objS In objServ 
    If objS.Name = "vlsoperatorconsole_voxwarevls" Then 
     serv = True 
    End If 
Next 

If proc = True And serv = True Then 
    Call oBag.AddValue("Service", "Running") 
    Call oBag.AddValue("Process", "Running") 
    oAPI.LogScriptEvent "Voxware Monitor", 411, 0, "Application and Services are running" 
    Call oAPI.Return(oBag) 
Else 
    If proc = False Then 
     Call oBag.AddValue("Process", "Stopped") 
     oAPI.LogScriptEvent "Voxware Monitor", 911, 1, "Process has stopped" 
     Call oAPI.Return(oBag) 
    End If 
    If serv = False Then 
     Call oBag.AddValue("Service", "Stopped") 
     oAPI.LogScriptEvent "Voxware Monitor", 911, 1, "Service has stopped" 
     Call oAPI.Return(oBag) 
    End If 
End If 
+0

Вы пробовали па отрезки вокруг аргументов LogScriptEvent? 'oAPI.LogScriptEvent (« Voxware Monitor », 911, 1,« Процесс остановлен »)' –

+0

@TonyHinkle - Спасибо за ответ, однако, это не проблема. Я не могу заставить свой сервер SCOM отвечать. Я хотел знать, правильно ли написан мой сценарий? если вы запустите это под cscript, он даст вам xml-выход – Fidelis

ответ

3

По MOMScriptAPI.ReturnItems Method:

The ReturnItems method submits objects to Operations Manager. For this method to be successful, objects must have been previously added to the in-memory array with MOMScriptAPI.AddItem .

Пример:

Call oBag.AddValue("Service", "Running") 
Call oBag.AddValue("Process", "Running") 
oAPI.LogScriptEvent "Voxware Monitor", 411, 0, "Application and Services are running" 
'''Call oAPI.Return(oBag) 
oAPI.AddItem oBag 
Call oAPI.ReturnItems 
+0

Я собираюсь дать этот снимок. и посмотреть. – Fidelis

+0

Это исправило мою проблему ... это был ReturnItems. Теперь он читается как коллекция, а не одно значение. Спасибо, что указали правильный способ метода ReturnItems. – Fidelis

Смежные вопросы