PowerShell可通过命令精准监控系统资源:用Get-Process排序查高CPU/内存进程;while循环每2秒刷新显示高网络I/O进程;Get-Counter采样磁盘I/O;Export-Csv导出结构化快照。
powershell 不是“实时监控界面”,但它能快速抓取、排序、刷新系统资源快照,适合需要精准定位或自动化排查的场景。关键在于用对命令、加好刷新逻辑、盯住核心指标。
查 CPU 和内存占用最高的前 5 个进程
直接看到谁在拖慢系统:
- 运行 Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU, WS —— 按 CPU 时间排序,WS 列代表工作集内存(单位 KB)
- 换成 Sort-Object WS -Descending 就按内存用量排序
- 加 | Format-Table -AutoSize 让输出更易读
每 2 秒刷新一次网络 I/O 流量
识别后台偷跑流量的进程:
- 执行 while(1){ Get-Process | Where-Object {$_.NetIOBytesPerSecond -gt 0} | Sort-Object NetIOBytesPerSecond -Descending | Select-Object -First 3 Name, NetIOBytesPerSecond; Start-Sleep -Seconds 2 }
- 该命令会持续输出当前网络活动最强的 3 个进程,单位是字节/秒(B/s),数值 >100000 即约 100 KB/s,值得留意
- 注意:NetIOBytesPerSecond 是 Windows 10/11 原生支持的属性,无需额外模块
监控磁盘活跃度与高 I/O 进程
卡顿常来自磁盘瓶颈,不是 CPU:
- 运行 Get-Counter '\Process(*)\IO Data Bytes/sec' -SampleInterval 1 -MaxSamples 5 | ForEach-Object {$_.CounterSamples | Where-Object {$_.CookedValue -gt 1MB} | Sort-Object CookedValue -Descending | Select-Object -First 3 InstanceName, CookedValue}
- 它每秒采样一次,共 5 次,只显示平均 I/O 超过 1 MB/s 的进程(如 svchost、AntimalwareServiceExecutable、OneDrive)
- 数值单位是字节/秒,1MB = 1048576 字节
一次性导出结构化资源快照
用于记录、比对或发给技术支持:
- Get-Process | Select-Object Name, Id, CPU, WS, PM, Handles, StartTime | Where-Object {$_.CPU -gt 10 -or $_.WS -gt 500MB} | Export-Csv -Path "$env:USERPROFILE\Desktop\high_usage.csv" -NoTypeInformation
- 这行命令导出所有 CPU >10 秒或内存 >500 MB 的进程,含 PID、句柄数和启动时间,保存为桌面 CSV 文件
- 下次打开 Excel 就能直接排序筛选,比截图更可靠

















