Монитор сценария с двумя состояниями не работает в SCOM 2012 R2

Попытка настроить простой монитор сценариев с двумя состояниями в SCOM 2012 R2 для проверки существования определенного файла на сервере. мой код выглядит следующим образом:

$API = new-object -comObject ‘MOM.ScriptAPI’

$Bag = $API.CreatePropertyBag()

$Exists = Test-Path ‘c:\temp\testfile.txt’

if ($Exists)
{
    $Bag.addValue(‘State,’YES’)
}
else
{
    $Bag.addvalue(‘State’,’NO’)
}

$Bag

Если я создам монитор и включу его для данного сервера, он зарегистрируется и будет иметь исходное работоспособное состояние. Если возвращенный результат «ДА», состояние должно измениться на неработоспособное. Однако, если я создам тестовый файл, монитор никогда не изменит свое состояние. Он предназначен для сервера Windows 2008 R2 и настроен на запуск с 5-минутным интервалом. Если я вручную выполняю команды в окне PS на сервере, он возвращает соответствующие данные. Параметр, который я использую для возврата результатов на монитор:

Property[@Name=’State’] equals YES (unhealthy)
or                             NO (healthy)

Я знаю, что упускаю что-то глупое... в этом мониторе не так уж много всего. Любые идеи?

ТИА.


person Shawn Keslar    schedule 06.04.2016    source источник


Ответы (1)


Попробуйте указать тип данных при обнаружении состояния, например

          <Expression>
            <SimpleExpression>
              <ValueExpression>
                <XPathQuery Type="String">Property[@Name="State"]</XPathQuery>
              </ValueExpression>
              <Operator>Equal</Operator>
              <ValueExpression>
                <Value Type="String">YES</Value>
              </ValueExpression>
            </SimpleExpression>
          </Expression>
person user2999564    schedule 18.08.2016
comment
Кроме того, вы пропустили кавычку после слова State в строке: $Bag.addValue(‘State,’YES’) - person user2999564; 18.08.2016