【Windows】調査ツール「プロセスモニター」を使ってみよう!入手法から簡単な使い方まで(+起動ログの取り方)

Tips・ナレッジ

こんにちは!今回はWindows関係で調査によく使われるツールの一つである、「ProcessMonitor」について入手方法と簡単な使い方を紹介します。

「ProcessMonitor」はMicrosoftの提供しているソフトウェアの一つで、無料で使用することができます。主に何か不具合が起こったときの調査等をするときに役立つツールになります。

似たようなもので、Windows標準では「タスクマネージャ」という監視ツールがあります。
これ自体も結構よくできていて、どのアプリケーション・サービスが動いているのか負荷調査するのには悪くないと思っています。

しかし、どのアプリケーションがファイルを操作しているのか、レジストリに何をしているのか等を細かく調べるのにはやはり「ProcessMonitor」クラスの調査ツールは欲しくなります。

今回は「ProcessMonitor」の導入から簡単な使い方、そして一見分かりにくい起動ログの取り方を紹介していきます。

入手元

プロセスモニターはMicrosoftが提供するアプリケーションです。
Microsoftの公開ページからダウンロードすることができます。

Process Monitor - Sysinternals
Monitor file system, Registry, process, thread and DLL activity in real-time.

上記ページに移動すると下記のようなダウンロードページが表示されます。
赤枠内のダウンロードリンクをクリックするとダウンロードが始まります。

※2020年11月19日現在のバージョンです

ProcessMonitor.zip」がダウンロードされるので、これを解凍してあげれば準備完了です。
※インストール作業は不要ですので、解凍後はお好きな場所に保管してください。

基本的な使い方

まずは普通に起動してみましょう。

解凍されたフォルダを見ると「Procmon.exe」「Procmon64.exe」「Procmon64a.exe」と3種類の実行ファイルがあります。
それぞれ32Bit用、64Bit用、それ以外のアーキテクチャ用となっていますので、調査するWindowsの環境に合わせて起動してください。

始めて起動するときにはライセンス表示がでます。
問題なければ「Agree」をクリックして先に進めましょう。

ユーザーアカウント制御が立ち上がることもあるので、「はい」をクリックして続行しましょう。

するとこのように今現在動作しているプロセスの動作状況を表示してくれます。

簡単な操作方法としては、赤○で囲った部分のボタンでリアルタイムスクロールと一時停止を切り替えます。

青枠で囲った部分はオペレーションの種類(例えばレジストリマークならレジストリに対する操作)をフィルターします。

プロセス名でフィルターをかけてみよう

こんどはより実践的な調査の仕方として、プロセス名でフィルターをかけてみましょう。
これによって単一のプロセスのログを追跡することができます。

まずは緑○で囲ったフィルターボタンをクリックします。

すると下の様にフィルターの設定をする画面が出てきます。
一番左のリストをクリックしてプルダウンメニューを表示させて、その中から「ProcessName」をクリックします。そのあと、追跡したいプロセス名をテキストボックスに入力し、「Add」ボタンをクリックします。

すると下記の様にフィルターが追加されます。フィルタの内容がそのまま表示されていますが、「ProcessName」が「explorer.exe」のログをフィルターして表示しますという意味です。。

※デフォルトで「Exclude」されているフィルターは「ProcessMonitor」自身が使っているプロセス名等です。邪魔にならないように初期状態で除外されています。

※「ProcessName」は拡張子までしっかり書きましょう。上記の例でも「.exe」を外すときちんと表示されません。

きちんと設定できていれば、このように必要な情報だけがフィルターされて非常に見やすくなります。
ただでさえ拾えるログの量がハンパではないので、このように抜き出す機能は必須ですね。

★プロセス名は「タスクマネージャー」の「詳細タブ」やコンソールでtasklistコマンドを実行することで確認できます。

タスクマネージャーの詳細タブでプロセス名確認する
tasklistコマンドでプロセス名を確認する

起動ログ(ブートログ)を取得してみよう

一般的なアプリケーションはその性質上、OSが起動していないとログをとることができません
しかし、OSが起動する間にも何かしらの動きを確認したいことがあります。

ProcessMonitor」は起動するまでのログをとる機能も持っていますが、ちょっとだけ見つけにくいところにあるので、併せて紹介しておこうと思います。

起動ログは調査のために行うというパターンもありますが、どちらかというとマイクロソフトやソフトウェアベンダーへ調査のためにログを提供する際に用いるケースが多いように思います。

まずは、「ProcessMonitor」の上部メニューから「Options」をクリックします。
するとプルダウンリストから「Enable Boot Logging」がありますので、それをクリックします。

すると下のポップアップが出ますので、チェックボックスにチェックを入れてOKをクリックします。
※デフォルトでは青○で囲った部分にチェックが入っていますが、特に意図が無ければそのまま実行してください。

ここまで出来たら、準備完了です。
起動時にデータを自動で収集してくれますので、PCを再起動します。

再起動が完了したら、再び「ProcessMonitor」を起動します。
すると次のようなポップアップが出てきますので「OK」をクリックします。

プロセスモニターが起動される前に収集したデータを保存するか確認するメッセージ

すると、保存ダイアログが開きますので、ファイル名を任意のものに変更して保存をクリックします。

これで、保存までの操作は完了です。
結構容量のあるデータですので、保存に時間がかかると思います。
下のようなプログレスバーが表示されますのでしばらく待ちましょう

完了すると下の様に起動ログが保存されます。
ダブルクリックで開くか、「ProcessMinitor」で開くと内容を見ることができます。

あとは、これをもとに調査をしたり、担当者に共有したりすればOKですね!

あとがき

今回はMicrosoftの調査ツール「ProcessMonitor」の入手法と使い方について紹介させていただきました。

「ProcessMonitor」は無料のツールですが、調査に必要な最低限の機能は持ち合わせています。
もちろん有料のツールはもっと細かく設定ができたり、そのソフトウェア会社のナレッジを生かした自動修復機能などもっと便利に使えるかもしれません。

私の仕事の中では、よくマイクロソフト社と情報のやり取りを行うことがあります。
そんなときに、マイクロソフトのサポート担当者からもプロセスモニターの動作ログや、起動ログを要求されることがあります。そのため、ログの採取方法をこのツールで覚えておくのは悪いことではないと思います。

無料かつアクティベーションが不要で使えるのも、現場ではかなりありがたいですしね。
※有料ツールは有効化するのにインターネットが必要だったりするので状況によっては入れることすらできないことも・・・。

非常に有用なソフトウェアでありながら、息の長いツールですので、ぜひ使い方を覚えてWindowsに強くなりましょう!

何かのお役に立てれば幸いです。

コメント

Translate »
タイトルとURLをコピーしました