You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell显示含进程ID、名称的CPU百分比(仅指定列)

解决PowerShell进程CPU百分比显示问题

方法一:基于原有Get-Process命令修改

如果你想沿用原命令的基础逻辑,只需替换CPU列为计算属性来得到百分比,同时移除不需要的ThreadCount字段:

Get-Process | 
    Sort-Object CPU -Descending | 
    Select-Object ID, Name, 
        @{
            Name='CPU%';
            Expression={
                # 结合总CPU使用率与核心数计算实时百分比,保留两位小数
                [math]::Round($_.CPU / ((Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue * $env:NUMBER_OF_PROCESSORS), 2)
            }
        } -First 10

方法二:直接获取实时CPU百分比(更准确)

Get-Process的CPU字段是累计耗时,实时性不足。用Get-Counter直接读取进程的CPU使用率指标更精准:

Get-Counter '\Process(*)\% Processor Time' | 
    Select-Object -ExpandProperty CounterSamples | 
    # 排除空闲进程和总进程统计
    Where-Object InstanceName -notmatch '^(idle|_total)$' |
    Sort-Object CookedValue -Descending |
    Select-Object 
        @{Name='ID';Expression={(Get-Process -Name $_.InstanceName -ErrorAction SilentlyContinue).Id}},
        @{Name='Name';Expression={$_.InstanceName}},
        @{Name='CPU%';Expression={[math]::Round($_.CookedValue, 2)}} -First 10

关键说明

  • 两种方法都将结果列限定为ID、Name、CPU%三列
  • 用[math]::Round()对百分比结果保留两位小数,提升可读性
  • 方法二会自动排除系统空闲进程和总CPU统计项,结果更贴合实际需求

内容的提问来源于stack exchange,提问作者user21446047

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:25:09