我有一个Powershell命令(检查进程的CPU使用百分比),该命令返回2个值(实例名称+ CPU%)。我只想返回一个值(CPU%)。我应该在此脚本中添加些什么呢? 下面的示例:
$Processname = "slack"
$CpuCores = (Get-WMIObject Win32_ComputerSystem).NumberOfLogicalProcessors
$Samples = (Get-Counter “\Process($Processname)\% Processor Time”).CounterSamples
$Samples | Select `
InstanceName,
@{Name=”CPU %”;Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}}
返回值为:
InstanceName CPU %
------------ -----
slack 0
我只想要0。
答案 0 :(得分:1)
试试这个-
$Processname = "slack"
$CpuCores = (Get-WMIObject Win32_ComputerSystem).NumberOfLogicalProcessors
$Samples = (Get-Counter “\Process($Processname)\% Processor Time”).CounterSamples
($Samples | Select InstanceName, @{Name=”CPU”;Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}}).CPU
答案 1 :(得分:1)
我首先将扩展CookedValue
属性(使用ExpandProperty
,这是从仅从PowerShell对象返回一个值的一般方法),然后进行计算:>
[Decimal]::Round((($Samples | Select -Expand CookedValue) / $CpuCores), 2)