我试图让NCPA在为其提供参数的同时在服务器上执行PowerShell脚本。我之前已经这样做过,并且有3个不同的脚本,它们的行为均符合预期。这不是。
为了简短起见,我正在尝试使用Get-Counter
获取性能计数器并将路径作为参数提供。
脚本当前如下所示:
$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。
提供不存在的路径时,这是相同的错误。
由于我的参数方法可以在其他三个脚本中完美运行,因此我假设某种字符串或类型不匹配等。
答案 0 :(得分:0)
一个简单的猜测是删除参数中的单引号
"'\Processor Information(_Total)\% Processor Time'"
->
"\Processor Information(_Total)\% Processor Time"
->'\处理器信息(_总计)\%处理器时间'<-似乎不是有效的计数器。