Windows レジストリの変更を追跡する方法はありますか? さまざまなプログラムのインストール中にレジストリにどのような変更が加えられるかを確認したいと思います。
10 に答える
Process Monitorを使用すると、さまざまなプロセスのファイルとレジストリのアクティビティを監視できます。
特定のプログラムによって行われたレジストリの変更を監視できます。
https://www.nirsoft.net/utils/reg_file_from_application.html
更新:NirLauncher(NirSoftのすべてのアプリケーションを含む)をダウンロードするだけです。これは、Windowsツールボックスへの最良の追加機能の1つです。 https://launcher.nirsoft.net/
WMI とレジストリについて:
レジストリに関する 3 つの WMI イベント クラスがあります。
- RegistryTreeChangeEvent
- RegistryKeyChangeEvent
- RegistryValueChangeEvent
ただし、次の制限に注意する必要があります。
RegistryTreeChangeEvent と RegistryKeyChangeEvent では、どの値またはキーが実際に変更されたかを直接知る方法はありません。これを行うには、イベント前のレジストリの状態を保存し、イベント後の状態と比較する必要があります。
これらのクラスを HKEY_CLASSES_ROOT または HKEY_CURRENT_USER ハイブで使用することはできません。これは、監視するレジストリ キーを表す WMI クラスを作成することで解決できます。
__InstanceOperationEvent 派生クラスで使用します。
したがって、WMI を使用してレジストリを監視することは可能ですが、完璧とは言えません。利点は、「リアルタイム」で変化を監視できることです。もう 1 つの利点は、WMI の永続的なイベント サブスクリプションです。
レジストリを「常に」監視する方法。アプリケーションが実行されていない場合のイベント。
追加のツールを使用せずにこれを行う簡単な方法は、インストール前にレジストリをテキスト ファイルにエクスポートし、インストール後に別のファイルにエクスポートすることです。次に、2 つのファイルを比較します。
そうは言っても、Sysinternals ツールはこれに最適です。
SOの一部を監視できるsobek( http://code.google.com/p/sobek-hids/ )と呼ばれるpython-hidsがあります。ファイルの変更を監視するために私にとっては正常に機能しています。ドキュメントには、レジストリの変更を監視できると書かれていますが、私にとっては機能しません。
Pythonベースのhidを簡単に再生するための優れたソフトウェア。
いくつかの方法があります。オンザフライで自分でやりたい場合は、おそらく WMI が最適です。RegistryKeyChangeEvent
そしてその親戚は注目すべきものです。__InstanceCreationEvent
、__InstanceDeletionEvent
および__InstanceModificationEvent
クラスでも監視する方法があるかもしれません。
http://msdn.microsoft.com/en-us/library/aa393040(VS.85).aspx
私は Franci に同意します。すべての Sysinternals ユーティリティは一見の価値があります (Autoruns も必須です)。古き良き Filemon と Regmon を置き換える Process Monitor は貴重です。
必要な使用法に加えて、プロセスが失敗した理由 (存在しないファイルまたはレジストリ キーにアクセスしようとするなど) などを確認することは非常に役立ちます。
PhiLho は、ついでにAutoRunsについて言及しましたが、私はそれを詳しく説明する価値があると思います。
レジストリ全体をスキャンするのではなく、自動的にロードされるもの (EXE、DLL、ドライバーなど) への参照を含む部分だけをスキャンします。これはおそらくあなたが興味を持っているものです。変更を追跡しませんが、テキストにエクスポートできます。ファイルなので、インストールの前後に実行してdiffを実行できます。