PowerShell是Windows服务器上无需安装的实时网络流量监控方案,支持网卡速率查看、持续刷新、进程关联和日志记录。
powershell 是 windows 服务器上最可靠、无需额外安装的实时网络流量监控方案。它能直接调用系统性能计数器和网络适配器接口,获取每秒收发字节数、连接状态、进程级通信等关键数据,适合无人值守或远程运维场景。
一、快速查看当前网卡每秒收发速率
这是最轻量的实时指标,适合快速诊断突发带宽占用:
- 打开 PowerShell(管理员权限非必需,但建议)
- 运行以下命令(将 Ethernet 替换为你实际的网卡名,可用
Get-NetAdapter查看):
该命令每秒采样一次,共5次,输出类似:
Bytes Received/sec: 1248923Bytes Sent/sec: 45678
数值单位是字节/秒,除以 1024 得 KB/s,再除以 1024 得 MB/s。
二、持续刷新显示实时速率(类 Linux watch 效果)
把下面这段脚本复制粘贴进 PowerShell 窗口,即可每2秒自动刷新当前网卡的收发速率:
while ($true) {Clear-Host
$rx = (Get-Counter "\Network Interface\Ethernet\Bytes Received/sec").CounterSamples.CookedValue
$tx = (Get-Counter "\Network Interface\Ethernet\Bytes Sent/sec").CounterSamples.CookedValue
Write-Host "↓ $("{0:N0}" -f $rx) B/s | ↑ $( "{0:N0}" -f $tx) B/s" -ForegroundColor Green
Start-Sleep -Seconds 2
}
按 Ctrl + C 可随时停止。
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
三、关联进程与网络连接(定位“谁在传数据”)
仅看网卡总量不够,需锁定具体进程。以下命令列出所有活跃 TCP 连接及其所属进程名和 PID:
Get-NetTCPConnection | Where-Object {$_.State -eq 'Established'} |Select-Object LocalAddress, RemoteAddress, State,
@{Name='ProcessName';Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName}},
OwningProcess | Sort-Object -Property OwningProcess
常见高流量进程包括:svchost.exe(可能托管 Windows Update、BITS)、msedge.exe(后台更新)、OneDrive.exe(同步中)、Teams.exe(会议上传)等。
四、生成简易流量日志(用于事后分析)
若需记录一段时间内的趋势,可保存为日志文件:
$logPath = "$env:USERPROFILE\Desktop\network_log.csv"1..60 | ForEach-Object {
$now = Get-Date
$rx = (Get-Counter "\Network Interface\Ethernet\Bytes Received/sec").CounterSamples.CookedValue
$tx = (Get-Counter "\Network Interface\Ethernet\Bytes Sent/sec").CounterSamples.CookedValue
[PSCustomObject]@{
Time = $now.ToString("HH:mm:ss")
Received_Bps = [int]$rx
Sent_Bps = [int]$tx
} | Export-Csv -Path $logPath -Append -NoTypeInformation
Start-Sleep -Seconds 5
}
运行1分钟(60次 × 5秒),会在桌面生成 CSV 文件,可用 Excel 打开绘图分析。










