Windowsであるポート番号をListenしてるプロセスが何か知る方法
Windows(サーバー)で、あるポート番号を誰がListenしてるかを知る方法です。
対話式でやる方法
1回目のコマンド
netstat -ano | findstr ":443" | findstr "LISTENING"
これでプロセスID(PID)が判明する
実行結果
  TCP         0.0.0.0:443            0.0.0.0:0              LISTENING       20220
  TCP         [::]:443               [::]:0                 LISTENING       202202回目のコマンド
tasklist /fi "PID eq 20220"実行結果
イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
node.exe                     20220 RDP-Tcp#0                  1    122,148 K
PS C:\Users\ml>
これでこのプロセスが誰かが判明する
一発で知る方法
以下をPowerShell にペタっとはると、
誰が指定のポート番号をListenしてるかPIDとその正体もわかります。
# Windows PowerShell用スクリプト
# あるポート番号を Listen しているプロセスが何か表示する
# ポート番号を指定(必要に応じて変更)
$port = 443
# 指定したポートをリッスンしているプロセスを検索
$connections = netstat -ano | Select-String ":$port\s+.*LISTENING"
if (-not $connections) { 
    Write-Host "ポート $port をリッスンしているプロセスはありません" 
    exit 
}
# 接続情報を表示
Write-Host "接続情報:"
$connections
# ユニークなプロセスIDを抽出して重複を排除
$processIds = @{}
$connections | ForEach-Object {
    $processId = $_.ToString().Trim() -replace '.*LISTENING\s+(\d+)', '$1'
    $processIds[$processId] = $true
}
# プロセス情報を表示(重複なし)
Write-Host "`nプロセス情報:"
$processIds.Keys | ForEach-Object {
    Get-Process -Id $_ | Select-Object Id, ProcessName, Path
    Write-Host "プロセスを停止するには: taskkill /PID $_ /F" -ForegroundColor Yellow
}実行結果
プロセスを停止するには: taskkill /PID 20220 /F
   Id ProcessName Path
   -- ----------- ----
20220 node        C:\Program Files\nodejs\node.exePIDとプロセス名、そのプロセスの停止方法のヒントつきで表示されます
それでは、良きプロセス管理ライフを!
 
             
                             
             
             
            