Netstatを使用して、WindowsのリスニングポートとPIDを確認します

別の記事では、コンピュータポートとその使用目的について説明しました(explained computer ports and what they’re used for)。それ以外に、ポート情報で何ができるでしょうか?コンピューターに出入りするすべてのトラフィックはポートを通過するため、ポートをチェックして、それらが何をしているかを確認できます。たぶん、ポートはトラフィックをリッスンしていませんか?たぶん、あるべきではないポートを使用しているものがありますか? 

Windowsコマンドnetstatを使用して、リスニングポートとPIDプロセスID(Process ID))を確認します。また、その情報で何ができるかを見ていきます。

Netstatとは何ですか?(What Is Netstat?)

netstatコマンドは、「network」と「statistics」という単語の組み合わせです。netstatコマンドは、WindowsXPからWindows10までのすべてのバージョンのWindowsで機能します。UnixLinuxなどの他のオペレーティングシステム(OS)でも使用されていますが、ここではWindowsに固執します。

Netstatは私たちに以下を提供することができます:

  • ポートが使用しているプロトコルの名前(TCPまたはUDP)。
  • コンピュータのローカルIPアドレスと名前、および使用されているポート番号。
  • 接続しているIPアドレスとポート番号。
  • TCP接続の状態。これらの状態の詳細については、RFC793の「イベント処理」セクションを(Event Processing section of RFC 793)参照してください。

Netstatを使用してリスニングポートとPIDを確認する(Using Netstat To See Listening Ports & PID)

  • キーの組み合わせWin Key + Xを使用します。開いたメニューで、[コマンドプロンプト(Command Prompt)]を選択します。

  • (Enter)コマンドを入力してください
    netstat -a -n -o
    。netstatのパラメーターの前にはハイフンが付いており、他の多くのコマンドのようにスラッシュではありません。-aは、すべてのアクティブな接続とコンピューターがリッスンしているポートを表示するように指示します。

    -nは、IPアドレスとポートを数値としてのみ表示するようにnetstatに指示します。名前を解決しようとしないように言っています。これにより、より速く、よりすっきりとした表示が可能になります。-oは、netstatにPIDを含めるように指示します。後でPIDを使用して、特定のポートを使用しているプロセスを確認します。

  • 結果を表示(View)し、アドレス、ポート番号、状態、およびPIDをメモします。ポート63240を使用しているものを知りたいとします。そのPIDは8552であり、ポート443のIPアドレス172.217.12.138に接続していることに注意してください。

そのポートを使用しているのは何ですか?(What’s Using That Port?)

  • タスクマネージャ(Task Manager)を開きます。Ctrl + Shift + Escのキーの組み合わせを使用することで最も簡単に実行できます。

  • [詳細(Details )]タブをクリックします。これを見つけやすくするには、PID列ヘッダーをクリックしてPID(PIDs)を数値で並べ替えます。

  • PID 8552まで下にスクロールして、それがどのようなプロセスであるかを確認します。この場合、それはgoogledrivesync.exeです。しかし、それは本当にですか?ウイルスは、それ自体を正当なプロセスのように見せかけることがあります。

  • Webブラウザーで、ipinfo.ioにアクセスします。IPアドレス172.217.12.138を入力します。ご覧のとおり、IPアドレスはGoogleに登録されています。したがって、このgoogledrivesync.exeは正当なものです。

PowerShellでポート、PID、およびプロセス名を取得する方法(How To Get Port, PID, & Process Name In PowerShell)

PowerShellは、 (PowerShell)Windowsでコマンドラインインターフェイスを使用するMicrosoftの新しい方法です。新しいと言いますが、いくつかのバージョンがあります。ホームユーザーであっても、PowerShellを学ぶ必要があります(learn PowerShell even if you’re a home user)

ほとんどのWindowsコマンドはPowerShellでも機能します。さらに、 (PowerShell)PowerShellのコマンドレット(発音されたコマンドレット)と組み合わせることができます(command-lets)Winteltools.comのJoeが、このメソッドのスクリプトを提供しています。

  • メモ(Notepad )を開き、次のコードを入力します。
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)"
$processList = Get-Process

foreach ($result in $netstat) {
   $splitArray = $result -split " "
   $procID = $splitArray[$splitArray.length – 1]
   $processName = $processList | Where-Object {$_.id -eq $procID} |    select processname
   $splitArray[$splitArray.length – 1] = $procID + " " +      $processName.processname
   $splitArray -join " "
}

  • ファイルをget-NetstatProcessName.ps1として保存します。保存されている場所に注意してください。[名前を付けて保存]タイプ(Save as type: )を[All Files (*.*) ]に変更することが重要です。変更しないと、get-NetstatProcessName.ps1 .txtとして保存され、機能しません。

  • PowerShellを開き、スクリプトが保存された場所に移動します。この場合、それは<pre> cd C:Scripts</pre>です。Enterキー(Enter)を押して、コマンドを実行します。

  • ドットソーシングを使用してスクリプトを実行し、スクリプトを機能させます。つまり、ファイル名の前に./を使用します。コマンドは次のようになります
    ./get-NetstatProcessName.ps1 < /pre

  • これで、すべての従来のnetstat情報とプロセス名を確認できます。タスクマネージャ(Task Manager)を開く必要はもうありません。

それらを取得してください(Go Get Them)

netstatコマンドを使用してリスニングポートを確認する2つの方法について説明しました。古いコマンドプロンプト(Command Prompt)またはPowerShellスクリプト内で使用できます。それが私たちに与えることができる情報で、私たちはそれが私たちのコンピューターが何をしているのかを理解するのにどのように役立つかを見てきました。 

netstatが優れたユーティリティだと思った場合は、tracert、ipconfig、nslookupなどの他のWindows TCP/IPユーティリティをご覧ください。または、リソースモニターを使用して、非表示のWebサイトとインターネット接続を詳しく調べます(use Resource Monitor to get a better look into hidden website and Internet connections)。コンピュータが何をしているかを正確に確認するためにできることはたくさんあります。

netstatを使用して問題を解決しましたか?何をしたか教えてください。(Please)netstatの使用方法について質問がありますか?以下のコメントでお問い合わせください(Please)



About the author

私はオーディオとユーザー アカウントの分野で長年働いてきた技術者です。Windows と Mac の両方のコンピューター、およびアップル製品の経験があります。また、2007 年からは Apple 製品の使い方についても教えています。主な専門分野は、ユーザー アカウントと家族の安全です。これに加えて、Windows 7 Home Premium、8.1 Pro、10 Pro、12.9 Mojave など、さまざまなソフトウェア プログラムの経験があります。



Related posts