PowerShell 是 Windows 内置高效监控工具,可实时获取 CPU、内存、磁盘、网络等核心指标,支持导出分析、进程下钻和自动化记录;其命令简洁响应快,能秒级判断系统负载、定位高消耗进程、持续采样导出数据,并可结合资源监视器(resmon)深度排查服务级与进程级问题。
powershell 是 windows 内置的高效监控工具,无需安装第三方软件,就能实时获取 cpu、内存、磁盘、网络等核心指标,并支持导出分析、进程下钻和自动化记录。
一、快速获取当前资源使用率
适合秒级判断系统是否过载,命令简洁、响应快:
- CPU 总体占用:
Get-Counter '\Processor(_Total)\% Processor Time'→ 查看 CookedValue 字段值(百分比) - 内存提交占比:
Get-Counter '\Memory\% Committed Bytes In Use'→ 数值超 90% 表示内存压力大 - 磁盘总体忙时:
Get-Counter '\PhysicalDisk(_Total)\% Disk Time'→ 持续高于 85% 可能存在 I/O 瓶颈 - 网卡收发速率(以“Ethernet”为例):
Get-Counter '\Network Interface\Ethernet\Bytes Received/sec', '\Network Interface\Ethernet\Bytes Sent/sec'
二、定位高消耗进程
当发现资源异常时,需快速锁定具体进程:
- CPU 占用前 5 名:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU, Id, WorkingSet - 内存工作集前 5 名:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5 Name, @{Name='WS(MB)';Expression={[math]::Round($_.WorkingSet/1MB,2)}}, Id - 查看某进程完整启动路径(含参数):
Get-WmiObject Win32_Process -Filter "Name='chrome.exe'" | Select-Object Name, CommandLine, ProcessId
三、持续监控与数据导出
用于长期观察趋势或事后分析:
- 每 3 秒采样一次,共 20 次,保存为 CSV:
Get-Counter '\Processor(_Total)\% Processor Time', '\Memory\% Committed Bytes In Use', '\PhysicalDisk(_Total)\Current Disk Queue Length' -SampleInterval 3 -MaxSamples 20 | Export-Counter -Path "$env:USERPROFILE\Desktop\perf.csv" -FileFormat csv -Force - 后台无限监控并追加日志(每分钟记录一次):
将脚本保存为 monitor.ps1,内容包含时间戳、CPU%、内存%、各磁盘使用率,并用Add-Content写入文本文件,配合Start-Sleep -Seconds 60循环执行
四、结合资源监视器深度排查
PowerShell 提供数值,资源监视器(resmon)提供上下文:
- 运行
resmon后,在“CPU”选项卡勾选“关联的服务”,可看到 svchost.exe 背后实际是哪个 Windows 服务在耗资源 - 在“磁盘”选项卡右键点击高活动图表 → “转到进程”,直接跳转到引发 I/O 的进程详情页
- 在“网络”选项卡按“发送字节/秒”排序,识别异常上传行为(如未预期的备份、同步或远程控制流量)



















