我知道 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。