
如果您需要在Windows系统中快速获取当前TCP连接的详细信息,包括本地地址、远程地址、端口号及连接状态,则可以使用PowerShell内置的Get-NetTCPConnection cmdlet。以下是执行该操作的具体步骤:
一、以管理员身份运行PowerShell
Get-NetTCPConnection命令在部分系统环境下需提升权限才能显示全部连接(尤其是涉及系统进程或受保护端口时)。以管理员身份运行可确保获取完整结果。
1、点击“开始”菜单,在搜索框中输入PowerShell。
2、在搜索结果中右键单击“Windows PowerShell”,选择“以管理员身份运行”。
3、若弹出用户账户控制(UAC)提示,点击是确认。
二、使用Get-NetTCPConnection查看所有TCP连接
该命令默认列出本机所有活动及监听中的TCP连接,输出包含LocalAddress、LocalPort、RemoteAddress、RemotePort、State、OwningProcess等关键字段,便于定位端口占用与连接关系。
1、在已启动的PowerShell窗口中输入:Get-NetTCPConnection,然后按回车。
2、等待命令执行完成,屏幕将滚动显示全部TCP连接条目。
3、如需暂停查看,可按空格键逐页翻动;按Q退出分页模式。
三、筛选指定本地端口的连接
当需排查特定端口(例如80、443、3389)是否被占用或存在异常连接时,可通过Where-Object对LocalPort属性进行过滤,缩小结果范围。
1、输入以下命令(以检查本地端口80为例):Get-NetTCPConnection | Where-Object {$_.LocalPort -eq 80},然后按回车。
2、若返回结果为空,表示该端口当前无TCP监听或活动连接。
3、若返回一行或多行记录,注意观察State字段值:如为Listen表示服务正在监听;如为Established表示已建立双向通信。
四、结合OwningProcess查找关联进程
Get-NetTCPConnection输出中的OwningProcess字段为PID(进程标识符),但不直接显示进程名。需通过Get-Process命令关联查询,才能确认哪个程序占用了目标端口。
1、先获取某连接的PID,例如从上一步结果中记下OwningProcess值为1234。
2、在PowerShell中输入:Get-Process -Id 1234 | Select-Object ProcessName,Id,Path,然后按回车。
3、输出将显示该PID对应的进程名称、完整路径等信息,帮助识别来源程序。
五、导出连接列表为CSV文件便于分析
当连接数量庞大或需长期存档、跨设备比对时,可将结果导出为结构化CSV文件,支持Excel等工具打开查看与排序。
1、输入命令:Get-NetTCPConnection | Export-Csv -Path “$env:USERPROFILE\Desktop\TCPConnections.csv” -NoTypeInformation,然后按回车。
2、命令执行完毕后,桌面将生成名为TCPConnections.csv的文件。
3、双击该文件即可用Excel打开,所有列(如LocalAddress、State、OwningProcess)均以表格形式呈现,支持筛选与搜索。

评论(0)