You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell的Get-NetTCPConnection按进程名导出远程IP与端口

修改PowerShell脚本获取指定进程的所有TCP连接

优化后的脚本(支持单个/多个进程名,保留所有连接状态)

# 替换为你需要监控的进程名,多个进程用逗号分隔
$targetProcesses = "目标进程名1", "目标进程名2"

# 获取目标进程的ID列表,避免重复查询进程信息
$processIds = (Get-Process -Name $targetProcesses -ErrorAction SilentlyContinue).Id

if ($processIds) {
    # 获取目标进程的所有TCP连接,包含所有状态
    Get-NetTCPConnection -OwningProcess $processIds -ErrorAction SilentlyContinue |
        Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess,
            @{Name = "ProcessName"; Expression = { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName } },
            @{Name = "UserName"; Expression = { (Get-Process -Id $_.OwningProcess -IncludeUserName -ErrorAction SilentlyContinue).UserName } } |
        Format-Table -AutoSize -Force
} else {
    Write-Host "未找到指定的进程:$($targetProcesses -join ', ')"
}

关键修改说明

  1. 移除状态过滤:删掉原脚本中Where {$_.State -eq"Established"}这一行,就能保留所有TCP连接状态(如Listen、SynSent、TimeWait等)。
  2. 先过滤进程ID提升效率:先通过Get-Process获取目标进程的ID集合,再传递给Get-NetTCPConnection的-OwningProcess参数,减少需要处理的连接数量,比原脚本逐个查询进程名快很多。
  3. 支持多进程监控:只需在$targetProcesses变量中添加多个进程名,用逗号分隔即可。
  4. 错误处理:添加-ErrorAction SilentlyContinue避免进程不存在或无权限获取信息时抛出报错。

快速单进程查询命令(适合临时使用)

如果只是临时查询单个进程,也可以用简化版命令(效率略低于上面的脚本):

Get-NetTCPConnection | 
    Where-Object { (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName -eq "你的进程名" } |
    Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess, ProcessName, UserName |
    Format-Table -AutoSize -Force

内容的提问来源于stack exchange,提问作者ZodTheDestroyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:15:40