2930

WindowsのTCPまたはUDPポートでリッスンしているプロセスをどのように確認できますか?

4

34 に答える 34

3388

新しい答え、PowerShell

TCP

Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess

UDP

Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess

古い答え、cmd

 C:\> netstat -a -b

( -nを追加して、ホスト名を解決しようとするのを停止します。これにより、処理が大幅に高速化されます。)

TCPViewに関するDaneの推奨事項に注意してください。とても便利そうです!

-a すべての接続とリスニングポートを表示します。

-b 各接続またはリスニングポートの作成に関連する実行可能ファイルを表示します。よく知られている実行可能ファイルが複数の独立したコンポーネントをホストしている場合もあります。この場合、接続またはリスニングポートの作成に関係するコンポーネントのシーケンスが表示されます。この場合、実行可能ファイル名は下部の[]にあり、上部は呼び出されたコンポーネントであり、TCP/IPに到達するまで続きます。このオプションは時間がかかる可能性があり、十分な権限がないと失敗することに注意してください。

-n アドレスとポート番号を数値で表示します。

-o 各接続に関連付けられている所有プロセスIDを表示します。

于 2008-09-07T06:28:33.970 に答える
2674

Windows 用のネイティブ GUI があります。

  • スタートメニュー →すべてのプログラムアクセサリシステムツールリソースモニター

  • または実行resmon.exe

  • またはタスクマネージャーパフォーマンスタブから。

ここに画像の説明を入力してください

于 2014-05-18T05:02:54.030 に答える
298

Windowsの場合:

netstat -aon | find /i "listening"
于 2008-09-07T06:32:10.763 に答える
270

このためのGUIが必要な場合は、TCPViewを使用してください。これは、Microsoftが買収した古いSysinternalsアプリケーションです。

于 2008-09-07T06:38:37.893 に答える
99

次のコマンドを実行すると、詳細情報を取得できます。

netstat -aon | find /i "listening" |find "port"

「検索」コマンドを使用すると、結果をフィルタリングできます。find /i "listening"「リッスン」しているポートのみが表示されます。大文字と小文字を区別しない必要があることに注意してください/i。それ以外の場合は、find "LISTENING" と入力します。| find "port"結果を特定のポート番号を含むものだけに制限します。これについては、応答文字列のどこかにポート番号を持つ結果もフィルタリングされることに注意してください。

于 2013-10-08T18:56:07.277 に答える
87
  1. コマンドプロンプトウィンドウを(管理者として)開く 「スタート\検索ボックス」から「cmd」と入力し、「cmd.exe」を右クリックして「管理者として実行」を選択します

  2. 次のテキストを入力し、Enter キーを押します。

    netstat -abno

    -a すべての接続とリッスン ポートを表示します。

    -b 各接続またはリスニング ポートの作成に関連する実行可能ファイルを表示します。既知の実行可能ファイルが複数の独立したコンポーネントをホストする場合があり、このような場合、接続またはリスニング ポートの作成に関与する一連のコンポーネントが表示されます。この場合、実行可能ファイルの名前は一番下の [] にあり、一番上に呼び出されたコンポーネントがあり、TCP/IP に到達するまで続きます。このオプションは時間がかかる可能性があり、十分な権限がない場合は失敗することに注意してください。

    -n アドレスとポート番号を数値形式で表示します。

    -o 各接続に関連付けられた所有プロセス ID を表示します。

  3. 「ローカルアドレス」の下でリッスンしているポートを見つけます

  4. その直下のプロセス名を見てください。

注: タスク マネージャーでプロセスを見つけるには

  1. 見ているポートの横にある PID (プロセス識別子) に注意してください。

  2. Windows タスク マネージャーを開きます。

  3. [プロセス] タブを選択します。

  4. ステップ 1 で netstat を実行したときにメモした PID を探します。

    • PID 列が表示されない場合は、[View / Select Columns] をクリックします。PID を選択します。

    • 「すべてのユーザーのプロセスを表示」が選択されていることを確認します。

于 2012-11-08T01:49:31.480 に答える
59

まず、ポートを解放するために削除する必要がある特定のタスクのプロセス ID を見つけます。

タイプ

netstat -n -a -o

Windows コマンド ライン プロンプト (cmd) でこのコマンドを実行した後、最後の列と思われる pid を選択します。これが 3312 だとします。

今すぐ入力

taskkill /F /PID 3312

netstatコマンドを入力してクロスチェックできるようになりました。

注: Windows では、このコマンドを CMD で直接実行できない場合があるため、最初に次の手順を実行する必要があります。

スタートメニューから→コマンドプロンプト(コマンドプロンプトを右クリックし、管理者として実行)

于 2014-08-23T15:25:04.957 に答える
36

各接続に関連付けられているすべての所有プロセス ID のリストを取得するには:

netstat -ao |find /i "listening"

任意のプロセスを強制終了する場合は、ID を持っていて、このコマンドを使用すると、ポートが解放されます

Taskkill /F /IM PID of a process
于 2014-04-17T14:38:27.660 に答える
26

Windows 10 または Windows Server 2016 で PowerShell 5 を使用して、Get-NetTCPConnectionコマンドレットを実行します。古いバージョンの Windows でも動作するはずです。

のデフォルトの出力にGet-NetTCPConnectionは、何らかの理由でプロセス ID が含まれておらず、少し混乱しています。ただし、出力をフォーマットすることでいつでも取得できます。お探しの物件は ですOwningProcess

  • ポート 443 でリッスンしているプロセスの ID を確認するには、次のコマンドを実行します。

      PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
    
      LocalAddress   : ::
      LocalPort      : 443
      RemoteAddress  : ::
      RemotePort     : 0
      State          : Listen
      AppliedSetting :
      OwningProcess  : 4572
      CreationTime   : 02.11.2016 21:55:43
      OffloadState   : InHost
    
  • 探しているプロパティを使用して、出力をテーブルにフォーマットします。

      PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
    
      LocalAddress LocalPort  State OwningProcess
      ------------ ---------  ----- -------------
      ::                 443 Listen          4572
      0.0.0.0            443 Listen          4572
    
  • プロセスの名前を知りたい場合は、次のコマンドを実行します。

      PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
    
      Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
      -------  ------    -----      -----     ------     --  -- -----------
      143      15     3448      11024              4572   0 VisualSVNServer
    
于 2016-11-02T19:19:44.610 に答える
24

どの特定のプロセス (PID) がどのポートを使用しているかを調べるには:

netstat -anon | findstr 1234

1234 はプロセスの PID です。[[タスク マネージャー] → [サービス/プロセス] タブに移動して、アプリケーションの PID を確認します。]

于 2018-12-14T06:55:15.467 に答える
17

GUIツールを使用してこれを実行する場合は、SysinternalsのTCPViewがあります。

于 2008-09-07T06:40:26.577 に答える
15

次のコマンドを入力します。netstat -aon | findstr :DESIRED_PORT_NUMBER

たとえば、ポート 80 を見つけたい場合:netstat -aon | findstr :80

この回答は、もともとこの質問に投稿されました。

于 2016-11-22T15:36:53.010 に答える
10

Windows の既定のシェル (powershell) を使用し、外部アプリを使用しない

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
于 2016-08-25T13:36:42.513 に答える
10

次のツールに従ってください: cmdから:管理者権限C:\> netstat -anobで。

プロセス エクスプローラー

プロセスダンプ

ポートモニター

すべてsysinternals.comから。

実行中のプロセスと各プロセスの下のスレッドを知りたいだけなら、について学ぶことをお勧めしwmicます。これは素晴らしいコマンドライン ツールであり、あなたが知っている以上のことを提供してくれます。

例:

c:\> wmic process list brief /every:5

上記のコマンドは、すべてのプロセスのリストを 5 秒ごとに簡潔に表示します。詳細について/?は、 windows のコマンドを使用できます。たとえば、次のようにします。

c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?

などなど。:)

于 2013-08-11T18:39:52.687 に答える
7

PowerShell を使用すると... ...これがあなたの友人になります (8080 をポート番号に置き換えます):

 netstat -abno | Select-String -Context 0,1 -Pattern 8080

サンプル出力

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]

したがって、この例では、tnslsnr.exe (OracleXE データベース) はポート 8080 でリッスンしています。

簡単な説明

  • Select-Stringnetstat関連する行の長い出力をフィルタリングするために使用されます。
  • -Pattern正規表現に対して各行をテストします。
  • -Context 0,1パターンマッチごとに先頭行を 0 行、末尾行を 1 行出力します。
于 2017-12-28T09:06:54.927 に答える
6

以下のコマンドで予約済みポートを確認することもできます。たとえば、Hyper-V はいくつかのポートを予約します。

netsh int ipv4 show excludedportrange protocol=tcp

于 2020-11-24T14:50:09.113 に答える
1

パワーシェル

概要を把握したい場合は、これを使用できます。

Get-NetTCPConnection -State Listen | Select-Object -Property *, `
    @{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
    | select ProcessName,LocalAddress,LocalPort

次のようなテーブルを取得するよりも:

ProcessName              LocalAddress  LocalPort
-----------              ------------  ---------
services                 ::                49755
jhi_service              ::1               49673
svchost                  ::                  135
services                 0.0.0.0           49755
spoolsv                  0.0.0.0           49672

udp の場合は次のとおりです。

Get-NetUDPEndpoint | Select-Object -Property *, `
   @{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
   | select ProcessName,LocalAddress,LocalPort
于 2022-02-27T22:16:55.223 に答える