0

我正在探索 PowerShell 以获取几台服务器的 CPU 利用率样本。Get-Counter为此,我正在使用command-let。"\Processor(_Total)\% Processor Time"我需要某个样本和间隔的 CPU 利用率值,或者换句话说,计数器的熟值。我使用 commandlet 之类的东西

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

类型 Cast to 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它返回属性的内容/值,而不是像你的 atm 那样具有属性的对象。像这样:

$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 回答