0

いくつかのサーバーの CPU 使用率のサンプルを取得するために PowerShell を調査していました。Get-Counterこの目的のためにコマンドレットを使用しています。"\Processor(_Total)\% Processor Time"CPU 使用率の値、つまり、特定のサンプルと間隔のカウンターのクック値が必要です。私はコマンドレットを次のように使用します

$temp_array=Get-Counter  -ComputerName server1  -Counter "\Processor(_Total)\% Processor Time" -MaxSamples 2 -SampleInterval 1
$temp_array[0].countersamples|Select-Object -Property CookedValue

出力は次のようになります

CookedValue
-----------
2.90508736147317

値が必要なだけです。私が使用する場合

$array_temp=Get-Counter  -ComputerName pwisdevsql10  -Counter "\Processor(_Total)\% Processor Time" -MaxSamples 2 -SampleInterval 1  
[String]$var=$array_temp[0].countersamples|Select-Object -Property CookedValue 
echo $var

それは出力を与える

@{CookedValue=12.6116279752759}

double への型キャストは機能しません。値「12.6116279752759」のみを抽出するにはどうすればよいですか。

4

2 に答える 2

0

これはそれを処理する必要があります:

[String]$var=$array_temp[0].countersamples|Select-Object -ExpandProperty CookedValue
于 2013-02-13T17:14:16.877 に答える
0

-ExpandPropertyのパラメータを使用するだけSelect-Objectです。CookedValueプロパティのコンテンツ/値を返しますが、 yoursdoatmのようなプロパティを持つオブジェクトは返しません。このような:

$temp_array=Get-Counter -Counter "\Processor(_Total)\% Processor Time" -MaxSamples 2 -SampleInterval 1
$temp_array[0].CounterSamples |Select-Object -ExpandProperty CookedValue
于 2013-02-13T17:15:29.183 に答える