2013-02-13 102 views
0

我在研究PowerShell以獲取幾臺服務器的CPU利用率示例。 我爲此使用Get-Counter命令。 我需要CPU利用率的值,換句話說,對於某些樣本和間隔,計數器"\Processor(_Total)\% Processor Time"的計算值。 我用命令行類似獲取Get-Counter命令行的屬性

$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} 

類型轉換爲加倍不起作用。 我怎樣才能提取值「12.6116279752759」只。

回答

0

這應該照顧它:

[String]$var=$array_temp[0].countersamples|Select-Object -ExpandProperty CookedValue 
+0

謝謝,這是擴展屬性,我應該尋找。 – anupinder 2013-02-13 18:12:29

0

只需使用-ExpandProperty參數Select-Object。它將返回屬性的內容/值,而不是像您的atm那樣的屬性爲CookedValue的對象。像這樣:

$temp_array=Get-Counter -Counter "\Processor(_Total)\% Processor Time" -MaxSamples 2 -SampleInterval 1 
$temp_array[0].CounterSamples |Select-Object -ExpandProperty CookedValue 
+0

謝謝,這是擴展屬性,我應該尋找。 – anupinder 2013-02-13 18:13:03