如何在 Windows 上查找端口(使用 pid 或进程名称)

如何在 Windows 上查找端口(使用 pid 或进程名称)

我知道 PID,但我需要进程正在运行的端口。

具体来说,只想要一个进程的端口,我知道该进程的名称和 PID,如何找到端口

答案1

以下是使用 PowerShell 的几个示例单行命令及其输出。您可能会发现它们可以作为起点。

Get-NetTCPConnection | Where-Object { $_.State -eq "LISTEN" } | select @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}}, localaddress, localport

Process     localaddress   localport
-------     ------------   ---------
services    ::                 49671
jhi_service ::1                49669
spoolsv     ::                 49668
svchost     ::                 49667
svchost     ::                 49666
wininit     ::                 49665
lsass       ::                 49664
svchost     ::                  7680
System      ::                   445
svchost     ::                   135
System      127.0.0.1          53106
System      127.0.0.1          53100
services    0.0.0.0            49671
spoolsv     0.0.0.0            49668
svchost     0.0.0.0            49667
svchost     0.0.0.0            49666
wininit     0.0.0.0            49665
lsass       0.0.0.0            49664
NordPass    127.0.0.1           9213
Discord     127.0.0.1           6463
svchost     0.0.0.0             5040
System      192.168.68.114       139
svchost     0.0.0.0              135

第二个示例包括监听端口的进程的开始时间和进程名称的过滤器。

Get-NetTCPConnection | Where-Object { $_.State -eq "LISTEN" } | select @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}},owningprocess, localaddress, localport, creationtime | where Process -eq "svchost" | Format-Table -AutoSize

Process owningprocess localaddress localport creationtime
------- ------------- ------------ --------- ------------
svchost          2856 ::               49667 18/02/2023 14:23:44
svchost          1536 ::               49666 18/02/2023 14:23:44
svchost          3428 ::                7680 20/02/2023 20:24:43
svchost          1160 ::                 135 18/02/2023 14:23:43
svchost          2856 0.0.0.0          49667 18/02/2023 14:23:44
svchost          1536 0.0.0.0          49666 18/02/2023 14:23:44
svchost          8332 0.0.0.0           5040 20/02/2023 20:24:43
svchost          1160 0.0.0.0            135 18/02/2023 14:23:43

答案2

您所需要的只是一个带有管道的 cmdlet 来查找特定的 PID:

netstat -ano | findstr PID

将单词 PID 替换为您要检查的 PID。

相关内容