PowerShell脚本未正确接受参数

时间:2019-01-30 13:03:13

标签: powershell nagiosxi

我试图让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。

提供不存在的路径时,这是相同的错误。

由于我的参数方法可以在其他三个脚本中完美运行,因此我假设某种字符串或类型不匹配等。

1 个答案:

答案 0 :(得分:0)

一个简单的猜测是删除参数中的单引号

"'\Processor Information(_Total)\% Processor Time'"
->
"\Processor Information(_Total)\% Processor Time"

->'\处理器信息(_总计)\%处理器时间'<-似乎不是有效的计数器。