我正在探索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”。
答案 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