PowerShell 是 Windows 下定位端口占用进程最直接高效的方式,可一步获取进程名、PID及路径;支持仅查 PID、解析 svchost.exe 托管服务、批量检查多端口状态。
powershell 是 windows 下定位端口占用进程最直接高效的方式,它能一步关联端口与进程名,无需手动查 pid 再反推。
以管理员身份运行 PowerShell(右键“开始”→“终端(管理员)”),执行:
Get-NetTCPConnection -LocalPort 8080 | ForEach-Object { Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue } | Select-Object Name, Id, Path
把 8080 换成你要查的实际端口号。输出会直接显示进程名(如 java.exe)、PID 和可执行文件完整路径,一目了然。
如果只需快速拿到 PID,用这句更简洁:
Get-NetTCPConnection -LocalPort 8080 | Select-Object OwningProcess, State
结果中 OwningProcess 列就是 PID,State 列为 Listen 表示该进程正在监听此端口,不是临时连接。
若返回的进程名是 svchost.exe,说明它托管了某个 Windows 服务。此时需进一步确认具体服务:
一次查几个常用端口(如 3306、6379、5432),可用:
80, 443, 8080, 3306 | ForEach-Object { Get-NetTCPConnection -LocalPort $_ -ErrorAction SilentlyContinue } | Select-Object LocalPort, State, OwningProcess | Sort-Object LocalPort
结果按端口号排序,方便横向比对状态和 PID,适合部署前快速巡检。