Process Monitor(procmon)とは?エラー原因や依存関係を調べる使い方

プロセスモニターの使い方

「あるソフトが突然起動しなくなった」「エラーの原因がさっぱりわからない」
そんな時に活躍するのが、Microsoftが無料で提供している「Process Monitor(procmon)」です。
この記事では、IT初心者の方でも迷わず使えるように、Process Monitorの基本的な使い方から、ログの見方、特定のアプリケーションの依存関係を調べる具体的な活用法まで、分かりやすく徹底解説します。
この記事を読めば、原因不明のトラブルも自分で解決できるようになります。

目次

まずは結論から

  • Process Monitorは、パソコンの中で「どのソフトが、どのファイルや設定にアクセスしているか」をすべて記録する監視ツールです。
  • アプリケーションが起動しない時や、エラーが出る時の原因調査に非常に役立ちます。
  • 多くの場合は次の手順で原因を特定できます。
  • Process Monitorを起動して記録を開始する
  • エラーが起きる操作(アプリの起動など)を行う
  • 記録を停止し、エラーが起きたアプリ名でログを絞り込む
  • 「ACCESS DENIED(アクセス拒否)」や「NAME NOT FOUND(ファイルが見つからない)」という結果を探す

Process Monitor(procmon)とは?

Process Monitor(通称:procmon)は、Microsoftが提供している「Sysinternals」という便利なツール群の一つです。
Windows上で動いているすべてのプログラムが、裏でどのような活動をしているのかをリアルタイムで監視し、記録してくれます。

具体的には、ファイルへの読み書き、レジストリ(Windowsの重要な設定ファイル)へのアクセス、プログラムの起動や終了といった動きを、1件残らずログとして記録します。
普段、私たちがパソコンを使っている時、画面には見えないところで無数の処理が行われていますが、Process Monitorを使えばその裏側の動きを丸裸にすることができます。

これは、建物に設置された「超高性能な監視カメラと入退室記録システム」のようなイメージです。
「いつ」「誰が(どのプログラムが)」「どの部屋(ファイルやレジストリ)に入って」「何をしたか(読み込み、書き込みなど)」をすべて記録してくれるため、何か事件(エラーやトラブル)が起きた時に、その記録を振り返ることで犯人や原因を特定できるというわけです。

先日も、「昨日まで普通に使えていた業務アプリが、急に起動直後に落ちるようになった」という相談がありました。
画面には何のエラーメッセージも出ないため、お手上げ状態でしたが、Process Monitorを使って裏側の動きを監視したところ、ある設定ファイルへのアクセス権限がなくなっていることが原因だとすぐに判明しました。

Process Monitorの導入と基本的な使い方

Process Monitorは、パソコンにインストールする必要がなく、ダウンロードして実行するだけですぐに使い始めることができます。
ここでは、導入から基本的な使い方までを解説します。

ダウンロードと起動

まずは、Microsoftの公式サイトからProcess Monitorをダウンロードします。
検索エンジンで「Process Monitor ダウンロード」と検索するか、MicrosoftのSysinternalsのページにアクセスして、「ProcessMonitor.zip」というファイルをダウンロードしてください。

ダウンロードしたZIPファイルを解凍(展開)すると、いくつかのファイルが入っています。
その中にある「procmon.exe」(または64ビット版の「procmon64.exe」)をダブルクリックして実行します。
起動時に「ユーザーアカウント制御」の画面が出たら「はい」をクリックし、初回起動時のライセンス同意画面では「Agree」をクリックします。

基本操作(記録の開始と停止)

Process Monitorを起動すると、自動的にパソコン内の活動の記録(キャプチャ)が始まります。
画面には、ものすごいスピードで大量のログが流れていくはずです。
これは、Windowsが裏で常に何らかの処理を行っているためです。

そのままにしておくとログが膨大になりすぎてしまうため、まずは画面左上にある虫メガネのアイコン(Captureボタン)をクリックして、記録を一時停止しましょう。
アイコンに赤いバツ印がつけば、記録が停止した状態です。

トラブルの調査を行う際の基本的な流れは以下のようになります。

  1. 虫メガネアイコンの隣にある消しゴムのアイコン(Clearボタン)をクリックして、これまでのログを消去する。
  2. 虫メガネアイコンをクリックして、記録を開始する。
  3. エラーが起きる操作(アプリの起動など)を実際に行う。
  4. エラーが再現したら、すぐに虫メガネアイコンをクリックして記録を停止する。

これで、トラブルが起きた瞬間の裏側の動きだけを切り取って記録することができます。

Process Monitorの基本的な使い方:記録開始からログ分析までの4ステップ

 

ログの見方と重要なOperation(操作)

記録したログには、様々な情報が含まれています。
画面上部に並んでいる列(カラム)の意味を理解することで、プログラムが何をしたのかを読み解くことができます。

列の名前 意味
Time of Day 操作が行われた時刻
Process Name 操作を行ったプログラムの名前(例:notepad.exe)
PID プログラムに割り当てられた固有の番号(プロセスID)
Operation プログラムが行った具体的な操作の種類
Path 操作の対象となったファイルやレジストリの場所
Result 操作の結果(成功したか、失敗したか)
Detail 操作に関する詳細な情報

この中でも特に重要なのが「Operation(操作)」と「Result(結果)」です。

注目すべきOperation(操作)

Operationには多くの種類がありますが、トラブル調査でよく見るのは以下のものです。

  • Read File / Write File:ファイルからの読み込み / ファイルへの書き込み
  • Reg Open Key / Reg Query Value:レジストリの設定を開く / 値を読み取る
  • Reg Set Value:レジストリの設定を書き換える
  • Process Create / Process Start:新しいプログラムを起動する

例えば、Operationが「WriteFile」で、Pathが「C:\test.txt」となっていれば、「Cドライブにあるtest.txtというファイルにデータを書き込んだ」ということが分かります。

Result(結果)からエラーの原因を探る

Result列には、その操作が成功したかどうかが表示されます。
「SUCCESS(成功)」であれば問題ありませんが、トラブルの原因を探る際は、以下のようなエラー結果に注目します。

  • NAME NOT FOUND:指定されたファイルや設定が見つからなかった。
  • ACCESS DENIED:ファイルや設定にアクセスする権限がなかった。

プログラムが動かない原因の多くは、「必要なファイルが見つからない」か「アクセス権限がなくて弾かれた」のどちらかです。
これらのエラー結果を探すことが、解決への第一歩となります。

フィルター機能を活用して必要な情報を見つける

Process Monitorは、数秒間記録しただけでも数万件のログが生成されます。
この膨大なログの中から目視で原因を探すのは不可能です。
そこで活躍するのが「フィルター機能」です。

画面上部にある漏斗のようなアイコンをクリックするか、メニューの「Filter」から「Filter…」を選択すると、フィルターの設定画面が開きます。

プロセス名で絞り込む

最もよく使うのが、調査したいプログラムの名前(Process Name)で絞り込む方法です。
例えば、「テストアプリ.exe」というプログラムの動きだけを見たい場合は、以下のように設定します。

  1. 一番左のドロップダウンリストから「Process Name」を選ぶ。
  2. 真ん中のリストから「is」を選ぶ。
  3. その右の入力欄に「テストアプリ.exe」と入力する。
  4. 一番右のリストが「Include(含める)」になっていることを確認し、「Add」ボタンをクリックする。
  5. 「OK」ボタンをクリックする。

これで、画面には「テストアプリ.exe」が行った操作だけが表示されるようになり、一気にログが見やすくなります。

除外(Exclude)フィルターの活用

逆に、「この情報は邪魔だから見たくない」という場合は、除外フィルターを使います。
例えば、Resultが「SUCCESS」のものは正常な処理なので、エラーの原因を探る際には不要です。
その場合は、フィルター設定で「Result」「is」「SUCCESS」とし、一番右のリストを「Exclude(除外する)」にして追加します。

これにより、成功した処理が隠れ、何らかのエラーが起きた処理だけが画面に残るため、原因の特定がさらに早くなります。

具体的な活用法:特定のアプリケーションの依存関係を調べる方法

Process Monitorの非常に強力な活用法の一つが、アプリケーションの「依存関係」を調べることです。
プログラムは単独で動いているわけではなく、裏で様々な「DLLファイル(他のプログラムと共有して使う部品のようなファイル)」を読み込んで動いています。

「アプリを起動しようとしたら、一瞬画面が出てすぐに消えてしまう」といったトラブルの場合、この依存しているDLLファイルが見つからなくて落ちているケースがよくあります。

このような場合、以下の手順でProcess Monitorを使って原因を特定します。

  1. Process Monitorを起動し、記録を開始する。
  2. 問題のアプリを起動させ、エラーを再現する。
  3. Process Monitorの記録を停止する。
  4. フィルター機能を開き、「Process Name」を問題のアプリ名にして「Include」で絞り込む。
  5. さらにフィルターを追加し、「Result」を「NAME NOT FOUND」にして「Include」で絞り込む。
  6. 追加で、「Path」が「.dll」で終わる(ends with)ものに絞り込むとさらに見やすくなります。

この状態でログを確認すると、アプリが「〇〇.dllというファイルを読み込もうとしたけれど、見つからなかった(NAME NOT FOUND)」という記録が残っているはずです。
これが、アプリが依存しているのに欠落しているファイルです。

原因となるDLLファイルが特定できたら、そのファイルが含まれているソフトウェア(例えば、Visual C++ 再頒布可能パッケージなど)を再インストールするか、正しい場所にファイルを配置することで、トラブルを解決することができます。

Process Monitorで依存関係を調べる手順:アプリ起動エラーから欠落ファイルを特定する流れ

まとめ

Process Monitor(procmon)は、パソコンの裏側の動きをすべて記録し、トラブルの原因を特定するための非常に強力なツールです。

  • Process Monitorは、ファイルやレジストリへのアクセスを監視するツールです。
  • トラブルが起きる瞬間のログを記録し、後から分析することができます。
  • 「Operation(操作)」と「Result(結果)」の列に注目してログを読み解きます。
  • フィルター機能を使いこなし、特定のプロセスやエラー結果(NAME NOT FOUNDやACCESS DENIED)だけを抽出するのがコツです。
  • アプリが依存しているファイルが見つからない問題も、このツールを使えば簡単に特定できます。

最初はログの多さに圧倒されるかもしれませんが、フィルターの使い方さえ覚えれば、これほど頼りになるツールはありません。
原因不明のエラーやアプリの不具合に遭遇した際は、ぜひProcess Monitorをダウンロードして、裏側の動きを監視してみてください。

  • URLをコピーしました!
目次