我正在尝试对字符串的结果进行排序,以仅显示特定参数。
我还想从结果中排除idle
和_total
进程
$list = (Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.CookedValue -gt 1}
我该怎么做?我已经尝试使用clear-variable
和sort
函数,但每次运行时我都会遇到错误。
抱歉英语不好:)
答案 0 :(得分:0)
你可以尝试这样的事情 -
$list | where-object {$_.InstanceName -notmatch 'idle' -and $_.InstanceName -notmatch '_total'}
或者您可以在代码中添加条件 -
$list = (Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.CookedValue -gt 1 -and $_.InstanceName -notmatch 'idle' -and $_.InstanceName -notmatch '_total'}
通过这两种方式,您可以从搜索结果中排除idle
和_total
,然后根据需要对其进行排序。
要从CPU%
中加入WmiObject
并从搜索中排除idle
和_total
,您可以在查询WmiObject
时直接将其排除在外,如下所示 -
$properties=@( @{Name="Process Name"; Expression = {$_.name}}, @{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}}, @{Name="Memory (MB)"; Expression ={[Math]::Round(($_.workingSetPrivate / 1mb),2)}} )
Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process | Where-Object {$_.Name -notmatch 'Idle' -and $_.Name -notmatch '_total'} | Select-Object $properties | Format-Table -AutoSize