どのプログラムがWindowsのポート80を使用しているかを知る方法は?見つかりません。
[スタート] - > [アクセサリ] - [コマンドプロンプト]を右クリックし、[管理者として実行]をクリックします(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
またそれは実行するために高度を必要としません。
netstat -aon | findstr :80
というコマンドを入力します。
ポート80を使用するすべてのプロセスが表示されます。右側の列のpid(プロセスID)に注目してください。
ポートを解放したい場合は、タスクマネージャに行き、pidでソートしてそれらのプロセスを閉じてください。
- aは、すべての接続と待機ポートを表示します。
- oは、各接続に関連付けられている所有プロセスIDを表示します。
- nは、アドレスとポート番号を数値で表示します。
あなたが本当に派手になりたい場合は、sysinternalsから TCPView をダウンロードしてください。
TCPViewは、ローカルアドレスとリモートアドレス、およびTCP接続の状態など、システム上のすべてのTCPおよびUDPエンドポイントの詳細な一覧を表示するWindowsプログラムです。 Windows Server 2008、Vista、およびXPでは、TCPViewはエンドポイントを所有するプロセスの名前も報告します。 TCPViewは、Windowsに同梱されているNetstatプログラムのより有益で便利に提示されたサブセットを提供します。
この気の利いたフリーウェアユーティリティを使用してください:
CurrPortsは、ローカルコンピュータで現在開かれているすべてのTCP/IPおよびUDPポートのリストを表示するネットワーク監視ソフトウェアです。
[Command Prompt]または[Power Shell]を右クリックし、[管理者として実行]をクリックします(Windowsの場合はXP通常どおりに実行できます)。次のコマンドは、使用中のネットワークトラフィックを示します。ポートレベルで:
Netstat -a -n -o
または
Netstat -a -n -o>%USERPROFILE%\ ports.txt
(あなたが望む情報を検索することができるテキストエディタでポートとプロセスリストを開くために)
次に、netstatの出力に表示されているPIDを使用して、Windowsタスクマネージャ(taskmgr.exe)でフォローアップするか、または前の手順のポートを使用している特定のPIDを使用してスクリプトを実行します。その後、問題のポートに対応する特定のPIDを指定して「tasklist」コマンドを使用できます。例:
tasklist/svc/FI "PID eq 1348"
netstat utilを使う