プロセスモニターを使用して「アクセス拒否」レジストリおよびファイルイベントを追跡する方法

適切に作成されたアプリケーションは適切なエラー処理を行い、サイレントに失敗したり、あいまいなエラーコードをスローして終了したりするのではなく、打ち消したエラーとその修正方法についてユーザーに詳細に通知します。 この投稿では、プロセスモニターを使用して、システムで発生したファイルおよびレジストリアクティビティの「アクセス拒否」イベントをトレースする方法について説明します。

(私は既に例と共にプロセスモニターの使用に関するハウツー記事を持っています。この記事では、プロセスモニターのフィルターオプションを構成して「アクセス拒否」エントリを追跡/追跡する方法を具体的に説明しています。)

1. Windows SysInternalsページからProcess Monitorを取得します。

2.プログラムを初めて実行したときに表示されるEULAを受け入れます。

3.プロセスモニターがイベントのキャプチャを自動的に開始します。 ツールバーの[キャプチャ]ボタン(CTRL + E)をクリックしてキャプチャを停止します。

右側に表示される5つのボタンのセットは、キャプチャされた5つの異なるアクティビティを表示するためのものです。

(とにかくすべてがキャプチャされますが、出力ウィンドウに表示されるものを選択できます。)

  1. レジストリ

  2. ファイルシステム

  3. ネットワーク活動

  4. プロセスとスレッドのアクティビティ

  5. プロセスプロファイリング

4.ほとんどの基本的なトラブルシューティング手順では、ボタン1または2(または必要に応じて両方)をオンにする必要があります。 そのため、ボタン1と2を有効にすることから始めます。

5. [フィルター]メニューから、[フィルター](CTRL + L)をクリックします。

6. [プロセスモニターフィルター]ダイアログで、[リセット]ボタンをクリックします。 これは、以前に設定した場合にフィルターをクリアするためです。

7.次に、特に「アクセス拒否」エントリをキャッチするために、フィルタリングオプションを以下のように設定します。

 結果にDENIEDが含まれ、次に含める 

8. [ 追加 ]をクリックし、[OK]をクリックします。

9.ツールバーの[キャプチャ]トグルボタンを有効にして、キャプチャを開始します。

10.次に、問題の再現を開始します。 レジストリキーを作成しようとしてエラーが発生したとします。プロセスモニターがレジストリキーをバックグラウンドでキャプチャしているときに、同じ操作を実行してみてください。

11.問題を再現すると、プロセスモニターにアクセス拒否エントリが一覧表示されます(発生した場合)。

この例では、REG.EXEコマンドラインを使用してHKEY_CLASSES_ROOTブランチの下にレジストリキーを作成しようとしたところ、アクセス拒否エラーが発生しました。 もちろん、レジストリのシステム領域でキーを作成または変更するには、管理者特権のコマンドプロンプトでREG.EXEを実行する必要があることはわかっていました。 これは説明のためのものです。

12.プロセス名、実行しようとした操作、および変更しようとしたファイル/ディレクトリまたはレジストリパスを書き留めます。 必要に応じて権限を変更します。

ただし、Process Monitorに表示されるすべてのACCESS DENIEDエントリが必ずしも問題のあるイベントであるとは限らないことに注意してください。 一部は完全に正常です。 ログの表示内容がわからない場合は、ログをPMLファイルに保存してください。 それを圧縮し、それぞれのサポートチームに送信します。

関連記事