【QAコーナー】特定のポート番号を利用しているサービスを調べる方法

 
先日、いただいたご質問で、
特定のポート番号を使っているサービスを知りたい、という内容がありました。
 
Windows標準のサービスならば、MSダウンロードセンターからダウンロードできる、
「Microsoft Windows Server System:ポート番号一覧」を参照すれば良いけれど、
Windows標準でないサービスのポート番号を調べるにはどうしたら良いだろうと
という疑問です。
 
 
一般的は、netstat -ano コマンドで、オープンポートと同時にポートを
開けているプロセスのID(PID)を確認するという方法がありますね。
 
 
上から3番目に554番というポートがあいているけど、
何のために使っているのかな、と思ったら、PIDをチェックし、
(この場合、PIDは2604番です)
タスクマネージャーでPIDに該当するプロセスを調べます。
(PIDは表示メニューの列の選択で表示されます)
 
 
すると、554番をあけているプロセスはwmpnetwk.exeだということがわかりました。
 
しかし、これでわかるのはプロセスの名前であって、サービスの名前ではありません。
サービスの名前を知りたいということであれば、色々な手段があると思いますが、
Windows SysinternalsのProcess Explorerを使うという方法があります。
 
 
 
Process Explorerの開発者である、Markさんがいつも言っていることですが、
Process Explorerは”Super Task Manager”であり、タスクマネージャーと同じように
PIDを持つプロセスを確認することができます。
 
Process Explorerでプロセス一覧をみると、階層化されており、
wmpnetwk.exeはServices.exeの下に位置しています。
つまり、サービスとしてwmpnetwk.exeが起動しているということがわかります。
 
では、wmpnetwk.exeを動かすサービスの名前は?ということですが、
wmpnetwk.exeのプロパティを開けば、確認できます。
 

wmpnetwk.exeはWindows Media Player Network Sharing Serviceだったのか、
ということがわかりました。
 
ちなみに、各プロセスのプロパティでは、そのプロセスが使用しているポート番号がわかりますので、
”サービスが使っているポート番号を調べる”ことも簡単にできます。
 
 
 
「Windows標準でないサービスのポート番号を調べるにはどうしたら…」と始まった内容なのに
サンプルとして取り上げた内容がWindowsのサービスでしたね。。