获取Get-Counter命令行开关的属性

时间:2013-02-13 17:01:34

标签: powershell

我正在探索PowerShell以获取几台服务器的CPU利用率示例。 我正在使用Get-Counter command-let来实现此目的。 我需要CPU利用率的值,换句话说,对于某些样本和间隔,我需要计数器"\Processor(_Total)\% Processor Time"的熟值。 我使用类似

的命令行开关
$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”。

2 个答案:

答案 0 :(得分:0)

这应该照顾它:

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

答案 1 :(得分:0)

只需使用-ExpandProperty中的Select-Object参数即可。它返回属性的内容/值,而不是像你的属性CookedValue那样的对象。像这样:

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