用 Get-Process 按内存占用排序进程
用一条 PowerShell 管道按内存和 CPU 时间对运行中的进程排序。
运行 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 -AutoSize02作用说明
WS(工作集)是进程当前占用的物理内存;WSPrivileged 和 PrivateMemorySize64 含义略有差异,讨论提交内存时 PrivateMemorySize64 更准确。加上 CPU 秒数可以区分'占着内存但闲着'和'又占内存又烧 CPU'的进程。这条管道就是任务管理器'详细信息'标签的命令行版,后面接 Stop-Process -Id 即可一步完成清理。
03风险
!注意: 内存是可以共享的——同一宿主进程下的多个实例(如 IIS 应用池)显示的大 WS 并不代表多份独立分配。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- Get-Process - SS64依据: Shows sorting processes by working set and other memory-oriented examples.
- Get-Process依据: Documents Get-Process objects and their WS and CPU properties.
最后验证: 2026-09-17 · 分类: 系统与设置