Windows端口占用查询与释放
PowerShell编写的端口管理脚本,快速查询指定端口被哪个进程占用,显示进程名和PID,可以一键结束进程释放端口,支持查询所有监听端口,是开发和运维排查端口冲突的必备工具。
详细内容
param([int]$Port)
if($Port) {
$conn = Get-NetTCPConnection -LocalPort $Port -ErrorAction SilentlyContinue
if($conn) {
$proc = Get-Process -Id $conn.OwningProcess -ErrorAction SilentlyContinue
Write-Host "端口 $Port 被占用:" -ForegroundColor Yellow
Write-Host " PID: $($conn.OwningProcess)"
Write-Host " 进程: $($proc.ProcessName)"
$confirm = Read-Host '是否结束该进程?(y/N)'
if($confirm -eq 'y') { Stop-Process -Id $conn.OwningProcess -Force; Write-Host '已结束' }
} else { Write-Host "端口 $Port 未被占用" -ForegroundColor Green }
} else {
Get-NetTCPConnection -State Listen | Select-Object LocalPort, OwningProcess |
Sort-Object LocalPort | Format-Table -AutoSize
}
适配环境
依赖环境:Windows 10/11,PowerShell 5.1+
使用说明
1.保存为port.ps1
2.以管理员身份运行PowerShell
3.运行 .\port.ps1 查看所有端口
4.运行 .\port.ps1 8080 查询指定端口
5.确认后可结束进程
不加参数显示所有监听端口
加端口号查询指定端口
可以一键结束占用进程
结束进程前请确认不是系统进程
支持批量查询多个端口
2.以管理员身份运行PowerShell
3.运行 .\port.ps1 查看所有端口
4.运行 .\port.ps1 8080 查询指定端口
5.确认后可结束进程
不加参数显示所有监听端口
加端口号查询指定端口
可以一键结束占用进程
结束进程前请确认不是系统进程
支持批量查询多个端口
常见问题
问:结束进程会有影响吗?
答:会终止该进程,确保不是重要进程后再操作
问:需要管理员权限吗?
答:查询不需要,结束系统进程需要