Я пытаюсь, чтобы NCPA выполнял сценарий PowerShell на сервере, предоставляя ему аргументы.Я сделал это раньше и у меня есть 3 различных сценария, которые ведут себя как ожидалось.На этот раз нет.
Для краткости я пытаюсь использовать Get-Counter
, чтобы получить счетчик производительности и указать путь в качестве аргумента.
В настоящее время скрипт выглядит такthis:
$count = $args[0]
$warn = 1500
$crit = 2000
$Data = Get-Counter -Counter $count
$Raw = $Data.CounterSamples.CookedValue
Write-Host "$Raw | 'Counter'=$Raw;$warn;$crit;0;3000"
if ($Raw -gt $crit) {
exit 2
} elseif ($Raw -gt $warn) {
exit 1
} else {
exit 0
}
Это вызывается с сервера Nagios через:
/usr/local/nagios/libexec/check_ncpa.py -H 192.168.**.** -t 'randomkeystringstuff' -P 5693 -M plugins/counter.ps1 -a "'\Processor Information(_Total)\% Processor Time'"
Заполнение переменной count непосредственно в скрипте работает.Затем я также могу выполнить это через Nagios без ошибок.Но использование аргумента возвращает
Get-Counter: внутренний вызов API счетчика производительности не выполнен.Ошибка: c0000bc4.
Что является идентичной ошибкой, когда вы указываете несуществующий путь.
Поскольку метод аргументов отлично работает в трех других сценариях, япри условии, что какая-то строка или несоответствие типов или что-то подобное.