小编典典

如何在 Windows 中找到哪个程序正在使用端口 80?

all

如何在 Windows 中找到哪个程序正在使用端口 80?

我找不到它。


阅读 91

收藏
2022-07-06

共1个答案

小编典典

开始菜单- 附件 -右键单击“命令提示符”。在菜单中,单击 “以管理员身份运行” (在 Windows XP
上,您可以照常运行),运行netstat -anb,然后查看程序的输出。

顺便说一句,Skype 默认尝试使用端口 80 和 443 进行传入连接。

您还可以运行netstat -anb >%USERPROFILE%\ports.txt后跟start %USERPROFILE%\ports.txt在文本编辑器中打开端口和进程列表,您可以在其中搜索所需的信息。

您还可以使用 PowerShell 解析netstat输出并以更好的方式呈现(或以任何您想要的方式处理它):

$proc = @{};
Get-Process | ForEach-Object { $proc.Add($_.Id, $_) };
netstat -aon | Select-String "\s*([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+)?\s+([^\s]+)" | ForEach-Object {
    $g = $_.Matches[0].Groups;
    New-Object PSObject |
        Add-Member @{ Protocol =           $g[1].Value  } -PassThru |
        Add-Member @{ LocalAddress =       $g[2].Value  } -PassThru |
        Add-Member @{ LocalPort =     [int]$g[3].Value  } -PassThru |
        Add-Member @{ RemoteAddress =      $g[4].Value  } -PassThru |
        Add-Member @{ RemotePort =         $g[5].Value  } -PassThru |
        Add-Member @{ State =              $g[6].Value  } -PassThru |
        Add-Member @{ PID =           [int]$g[7].Value  } -PassThru |
        Add-Member @{ Process = $proc[[int]$g[7].Value] } -PassThru;
#} | Format-Table Protocol,LocalAddress,LocalPort,RemoteAddress,RemotePort,State -GroupBy @{Name='Process';Expression={$p=$_.Process;@{$True=$p.ProcessName; $False=$p.MainModule.FileName}[$p.MainModule -eq $Null] + ' PID: ' + $p.Id}} -AutoSize
} | Sort-Object PID | Out-GridView

它也不需要海拔来运行。

2022-07-06