回答:
インストーラーを実行し、Sysinternals Process Monitorで監視します。インストーラーによって実行された操作のみが表示されるように、データをフィルターに掛けることができます。表示したい操作(RegWrite、RegQueryValueなど)に絞り込んで、後で表示するためにキャプチャを保存することもできます。
プロセスモニターはフリーウェアです。
WinDiffも使用できます。エクスポートされたレジストリファイルを保存し、後で比較できます。
WinDiffは無料のオープンソースです。
実際のレジストリエクスポートファイルを比較するための別のフリーウェアソリューションはRegShotです。
RegShotは小さなレジストリ比較ユーティリティで、レジストリのスナップショットをすばやく取得し、システムの変更または新しいソフトウェア製品のインストール後に2つ目のレジストリと比較することができます。変更レポートはテキスト形式またはHTML形式で作成でき、snapshot1とsnapshot2の間で行われたすべての変更のリストが含まれます。また、変更をスキャンするフォルダー(サブフォルダーを含む)も指定できます。
.reg
ファイルを処理できません。WinMergeはそのために動作し、Windiffよりも差分をよくすることができます。そうは言っても、私は通常、このメソッドを迅速でダーティな分析のために使用します(通常はより多くの作業が必要になりますが)。
Total Commanderを持っている場合、これは非常に簡単です:
インストール前とインストール後にレジストリをエクスポートします(異なるフォルダに同じ名前で保存します)
Total Commanderで両方のフォルダーを開き、一方のファイルを強調表示し、[ ファイル] > [ コンテンツで比較...]に移動します。
Total Commanderはシェアウェアです。購入する前に試してください。
2つのレジストリファイル(手動でテキストにエクスポートしたもの)を比較する場合、WinMerge、WinDiffなどの比較アプリがたくさんあります。
注意事項:レジストリハイブが大きい場合、エクスポートに時間がかかることがあり、さらに悪いことに、大きな.reg
ファイルを読み取ろうとするとWindiffが多少ハングすることがあります。代わりにWinMergeを使用してください。大きなファイルを処理し、それらをより速く差分でき、結果が優れているためです(Windiffが間違っている場合もあります)。
インストールの前後にレジストリを比較する場合は、インストールモニターを使用することもできます。繰り返しますが、それらはたくさんありますが、主なものの1つは、PC MagazineのInCtrl5です(プログラム自体は無料ですが、サイトからダウンロードするには費用がかかる場合があります。彼らはInCtrlXと呼ばれるアップデートをリリースしました。トータルアンインストールは、優れた商用のものです。私は一般に私の古いInCtrl5のコピーが好きですが、Z-Soft Uninstallerには同じ機能があり、例外的です(私が試した数十の中で最高です)。さらに、無料です。
別の解決策は、インストーラー自体を分析することです。つまり、EXE / MSI / BAT / INF / etcを調べます。ファイル、レジストリエントリ、サービス、ドライバなどの変更を含め、インストール時に何を行うかを正確に確認するためのファイル。これにより、検出プロセス全体を完全に回避できます。私はそれを見つける7zipをを使用すると、ファイルやスクリプトなどを見ることができるので、内部の最も実行可能なインストーラを見るための最良の方法(例えばNSISなど)です。MSIインストーラーについては、Microsoft独自のORCAまたはInstEdをお勧めします。MSI用の優れた商用ツールはAdvancedInstallerです
WinMergeを使用していますが、WinMergeパッチファイルを.reg形式に変換するアプリケーションを作成しました。M $以外のアプリには最適ですが、WinMergeは生成されたパッチファイルにHKを保持しないため、主にインストール/アンインストール用にのみ使用します。特に、x64 Win7にインストールできないアプリケーションが1つありましたが、動作することはわかっていました。reg全体をfile1にエクスポートし、インストールし、変更されたreg全体をfile2にエクスポートしました。WinMergeと比較パッチを作成してから、アプリケーションを使用して不要なコンテンツをすべてクリーンアップしました。
エクスポートされたファイルではなく、実際のハイブを比較し、それらの間で簡単にコピーできるようにしたいと考えました。
私は試した:
したがって、ここで詳細に使用した手順を示します。パーティションCから実行中に、パーティションD(ハイブソフトウェア)のレジストリからレジストリパーティションE(ハイブソフトウェア)にアイテムをコピーするとします。