1

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

直接在脚本中填充计数变量是可行的。然后我也可以通过 Nagios 执行它而不会出错。但是使用参数返回

Get-Counter:内部性能计数器 API 调用失败。错误:c0000bc4。

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

由于我已经在其他三个脚本中完美地使用了参数方法,因此我假设某种字符串或类型不匹配等。

4

1 回答 1

0

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

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

-->'\Processor Information(_Total)\% Processor Time'<-- 显然不是一个有效的计数器。

于 2019-01-31T00:39:31.963 回答