Windowsでファイルを開いているプロセス (PID) を特定する方法

Windowsでファイルを開いているプロセス (PID) を特定する方法

こんにちは。

今回は、開いてもいないのに何かのプロセスが掴んでいてファイルが削除できないなどのケースで、プロセスを特定する方法を紹介します。

「再起動したら直るんじゃない?」という解決案は今回においてはなしです(笑)

準備

以下のURLよりProcess Explorer ツールをダウンロードします。 https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx

2016-11-29_14h16_54

2016-11-29_14h16_54

ダウンロードしたファイルを解凍します。 初回起動時のみ、承諾画面が出るのでAgreeを選択します。

2016-11-29_13h40_00

2016-11-29_13h40_00

解凍したフォルダから、procexp.exeを管理者として実行します。

2016-11-29_14h19_16

2016-11-29_14h19_16

特定方法

今回はわかりやすく、Excelファイルを開いている状態で実施してみます。よって、目標は明らかでこのファイルを使っているプロセスであるExcelのPIDを特定することです。

以下の画像は、開いている状態で削除しようとしたときのエラー画面です。

2016-11-29_14h18_20

2016-11-29_14h18_20

  1. procexp.exeを開いた状態から、ツール上部の [Find] - [Find Handle or DLL]をクリックし、[Handle or DLL substring:] 欄にスナップショットファイルのフルパスを入力しSearchをクリックします。

2016-11-29_14h38_06

2016-11-29_14h38_06

  1. Searchが完了すると指定したファイルを使っているプロセスが特定されます。

2016-11-29_14h39_38

2016-11-29_14h39_38

PIDが15240と特定ができました。

  1. タスクマネージャーの詳細からPIDを検索し、確認します。

2016-11-29_14h51_32

2016-11-29_14h51_32

ここまでの確認から、ファイルを開いているプロセスはExcel.exeであることが確認できました。

今回のテストであれば、Searchの結果からExcelが利用していることは明らかですが、プロセスを特定してからの対処についてはケースによると思いますので状況に応じて追加の調査・対処を実施いただければと思います。

あとがき

調査の概要としては、

  1. ツールを作ってエラーが起きたファイルをつかんでいるPIDを調査
  2. 1.で判明したPIDをタスクマネージャで調べてプロセスを確認する
  3. 2.の状況をもとにどうするか判断する

という流れになります。

状況に応じては、3. 以降でさらなる調査が必要になる可能性はありますが、とりあえずの調査として覚えておいて損はないと思います。

ご覧いただきありがとうございました。 次回の記事でお会いしましょう。

norikazum