開放 - どのプロセスがWindows上のポートでリッスンしているかを知るにはどうすればよいですか?
リッスンポートとは (18)
PIDとイメージ名を取得する
1つのコマンドだけを使用してください:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
9000
はポート番号で置き換えてください。
出力には次のようなものが含まれます:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
説明:
次のコマンドの出力からすべての行を繰り返し処理します。
netstat -aon | findstr 9000
すべての行からPID(
%a
- ここでは名前は重要ではありません)が抽出され(PIDはその行の5
番目の要素です)、次のコマンドに渡されますtasklist /FI "PID eq 5312"
ヘッダーとコマンドプロンプトの戻り値をスキップする場合は、 次のコマンドを使用できます。
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
出力:
java.exe 5312 Services 0 130,768 K
どのプロセスがWindows上のポートでリッスンしているかを知るにはどうすればよいですか?
コマンドプロンプトウィンドウを開く(Administratorとして) "Start \ Search"ボックスから "cmd"と入力し、 "cmd.exe"を右クリックして "Administratorとして実行"を選択します。
次のテキストを入力し、Enterキーを押します。
netstat -abno
-aすべての接続とリスニングポートを表示します。
-b各接続またはリスニングポートの作成に関連する実行可能ファイルを表示します。 場合によっては、よく知られている実行可能ファイルが複数の独立したコンポーネントをホストしており、これらの場合、接続またはリスニングポートの作成に関連する一連のコンポーネントが表示されます。 この場合、実行可能ファイルの名前は[]内にあり、一番上には呼び出されたコンポーネントがあり、TCP / IPに達するまで実行されます。 このオプションは時間がかかることがあり、十分な権限がない限り失敗します。
-nアドレスとポート番号を数値形式で表示します。
-o各接続に関連付けられている所有プロセスIDを表示します。
「ローカルアドレス」の下でリスンしているポートを探します。
その直下のプロセス名を見てください。
注:タスクマネージャでプロセスを検索するには
あなたが見ているポートの隣にあるPID(プロセス識別子)に注意してください。
Windowsタスクマネージャを開きます。
「プロセス」タブを選択します。
手順1でnetstatを実行したときにメモしたPIDを探します。
PID列が表示されない場合は、[列の表示/選択]をクリックします。 PIDを選択します。
「すべてのユーザーからのプロセスを表示する」が選択されていることを確認します。
Powershellを使用している場合は、 Get-NetworkStatistics
試してください:
> Get-NetworkStatistics | where Localport -eq 8000
ComputerName : DESKTOP-JL59SC6
Protocol : TCP
LocalAddress : 0.0.0.0
LocalPort : 8000
RemoteAddress : 0.0.0.0
RemotePort : 0
State : LISTENING
ProcessName : node
PID : 11552
Windowsのpidからポート番号を取得するのは簡単です。
次の手順があります。
1)「実行」 - >「cmd」と入力し、Enterキーを押します。
2)次のコマンドを書く...
netstat -aon | findstr [port number]
(注:角括弧は使用しないでください)。
3)Enterを押す...
4)cmdは、そのポートで実行中のサービスの詳細をpidとともに表示します。
5)タスクマネージャを開き、サービスタブを押して、pidとcmdのそれをマッチさせてください。
Windowsの場合、リッスンやポート1234に接続したものを探したい場合は、cmdプロンプトで次のコマンドを実行します。
netstat -na | find "1234"
netstat -a -o特定のポートで実行されているプロセスのPIDを表示します。
プロセスIDを覚えて、タスクマネージャとサービスまたは詳細タブに行き、同じPIDを持つプロセスを終了します。
したがって、ウィンドウ内の特定のポートで実行中のプロセスを強制終了することができます。
netstat -ao
とnetstat -ab
を実行するとアプリケーションが表示されますが、管理者でない場合は「要求された操作には仰角が必要です」と表示されます。
理想的ではありませんが、sysinternalsプロセスエクスプローラを使用する場合は、特定のプロセスのプロパティに行き、TCPタブを見て、興味のあるポートを使用しているかどうかを確認してください。それは誰かを助ける....
このためのGUIが必要な場合は、 TCPView使用してください。 それはMicrosoftが買収した古いSysinternalsアプリだ。
これを行うためのGUIツールを使用したい場合は、 TCPViewます。
プログラム的には、 GetTcpTable2 ()などのGetTcpTable2ものが必要です。 MIB_TCP6ROW2ような構造には所有者PIDが含まれています。
ポートの変更が機能しない場合:
ステップ-1:Windowsで「サービス」を検索してサービスに移動します。
ステップ-2:すべてのサービスをアルファベット順に注文する(必要ありません)
ステップ-3:MYSQLに関連するサービスをすべて停止します。
ステップ-4:xamppからmysqlを起動します。
各接続に関連付けられているすべての所有プロセスIDのリストを取得するには、次のようにします。
netstat -ao |find /i "listening"
任意のプロセスを強制終了させたい場合は、IDを持ってこのコマンドを使用して、ポートが空になるようにします
Taskkill /F /IM pidof a process
次のコマンドを入力しますnetstat -aon | findstr :DESIRED_PORT_NUMBER
netstat -aon | findstr :DESIRED_PORT_NUMBER
たとえば、ポート80を探したいとしますnetstat -aon | findstr :80
netstat -aon | findstr :80
この回答はもともとこのスレッドに投稿されました。
次のコマンドを実行すると、詳細情報が表示されます。
netstat -aon |find /i "listening" |find "port"
'Find'コマンドを使用すると、結果をフィルタリングできます。 find / i "listening"は、 "Listening"であるポートだけを表示します。 注意してください。/ iを入力する必要があります。そうでない場合は、 "LISTENING"と入力します。 | find "port"は、特定のポート番号を含むものだけに結果を制限します。 これには、応答文字列のどこにでもポート番号を持つ結果をフィルタリングすることに注意してください。
C:\> netstat -a -b
(ホスト名を解決しようとするのを止めるために-nを追加すると、ホスト名がずっと速くなります)
TCPViewについてのDaneの推奨に注意してください。 非常に便利ですね!
-aすべての接続とリスニングポートを表示します。
-b各接続またはリスニングポートの作成に関連する実行可能ファイルを表示します。 場合によっては、よく知られている実行可能ファイルが複数の独立したコンポーネントをホストしており、これらの場合、接続またはリスニングポートの作成に関連する一連のコンポーネントが表示されます。 この場合、実行可能ファイルの名前は[]内にあり、一番上には呼び出されたコンポーネントがあり、TCP / IPに達するまで実行されます。 このオプションは時間がかかることがあり、十分な権限がない限り失敗します。
-nアドレスとポート番号を数値形式で表示します。
-o各接続に関連付けられている所有プロセスIDを表示します。
netstat -aon | find /i "listening"