サーバーに引数を提供しながら、サーバー上で 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。
存在しないパスを指定した場合と同じエラーです。
他の 3 つのスクリプトで完全に機能する引数メソッドを取得したので、何らかの文字列または型の不一致などを想定しています。