用 Get-Process 按内存占用排序进程

用一条 PowerShell 管道按内存和 CPU 时间对运行中的进程排序。

Windows进程内存PowerShell低风险
运行 Get-Process | Sort-Object WS -Descending | Select-Object -First 15 列出内存占用最高的 15 个进程。

01命令

命令
$ Get-Process | Sort-Object WS -Descending | Select-Object -First 15 Name, Id, @{n='Mem(MB)';e={[math]::Round($_.WS/1MB,1)}}, @{n='CPU(s)';e={[math]::Round($_.CPU,1)}} | Format-Table -AutoSize

02作用说明

WS(工作集)是进程当前占用的物理内存;WSPrivileged 和 PrivateMemorySize64 含义略有差异,讨论提交内存时 PrivateMemorySize64 更准确。加上 CPU 秒数可以区分'占着内存但闲着'和'又占内存又烧 CPU'的进程。这条管道就是任务管理器'详细信息'标签的命令行版,后面接 Stop-Process -Id 即可一步完成清理。

03风险

风险低风险
!注意: 内存是可以共享的——同一宿主进程下的多个实例(如 IIS 应用池)显示的大 WS 并不代表多份独立分配。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • Get-Process - SS64
    SS64 · technical · 2026-09-17
    依据: Shows sorting processes by working set and other memory-oriented examples.
  • Get-Process
    Microsoft Learn · vendor-doc · 2026-09-17
    依据: Documents Get-Process objects and their WS and CPU properties.

最后验证: 2026-09-17 · 分类: 系统与设置

06相关方案