2つのレジストリファイルを比較する最も簡単で最速の方法は何ですか?


36

コンピューターに何かをインストールした後、レジストリに加えられた変更を見つけたいです。ただし、一般的な手順として簡単にできることも知りたいと思います。

回答:


29

インストーラーを実行し、Sysinternals Process Monitorで監視します。インストーラーによって実行された操作のみが表示されるように、データをフィルターに掛けることができます。表示したい操作(RegWrite、RegQueryValueなど)に絞り込んで、後で表示するためにキャプチャを保存することもできます。

代替テキスト

プロセスモニターはフリーウェアです。

WinDiffも使用できます。エクスポートされたレジストリファイルを保存し、後で比較できます。

代替テキスト

WinDiffは無料のオープンソースです。

実際のレジストリエクスポートファイルを比較するための別のフリーウェアソリューションはRegShotです。

RegShotは小さなレジストリ比較ユーティリティで、レジストリのスナップショットすばやく取得し、システムの変更または新しいソフトウェア製品のインストール後に2つ目のレジストリと比較することができます。変更レポートはテキスト形式またはHTML形式で作成でき、snapshot1とsnapshot2の間で行われたすべての変更のリストが含まれます。また、変更をスキャンするフォルダー(サブフォルダーを含む)も指定できます。

代替テキスト


速いRegShot(これらのレジストリは非常に大きなものとなります)です
Notitze

レジストリのエクスポートとほぼ同じ速度、数秒。比較機能にも数秒しかかかりません。とても速いです。
ジョンT

Regmon / Procmonは、手動でフィルタリングする必要のあるクラッターが多すぎるため、理想的ではありません。また、Windiffは巨大な.regファイルを処理できません。WinMergeはそのために動作し、Windiffよりも差分をよくすることができます。そうは言っても、私は通常、このメソッドを迅速でダーティな分析のために使用します(通常はより多くの作業が必要になりますが)。
Synetech

3
すでにレジストリのスナップショットとそれらを比較する必要がある場合RegShotは、任意の使用のないことのようです

7

Total Commanderを持っている場合、これは非常に簡単です:

  1. インストール前とインストール後にレジストリをエクスポートします(異なるフォルダに同じ名前で保存します)

  2. Total Commanderで両方のフォルダーを開き、一方のファイルを強調表示し、[ ファイル] > [ コンテンツで比較...]に移動します。

ここに画像の説明を入力してください

Total Commanderはシェアウェアです。購入する前に試してください。


5

2つのレジストリファイル(手動でテキストにエクスポートしたもの)を比較する場合、WinMergeWinDiffなどの比較アプリがたくさんあります。

注意事項:レジストリハイブが大きい場合、エクスポートに時間がかかることがあり、さらに悪いことに、大きな.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は、Windows7のレジストリ比較全体で約30秒かかります。悪くはありません。
ニコラスラウル

@NicolasRaoulは、システムのCPU能力は別として、比較も差の量に大きく依存します。わずか数秒でわずかに異なる100MB以上のテキストファイルをWinDiffと比較し、数時間でWinMergeと非常に異なる100KBファイルを比較しました(通常、そのずっと前にプロセスを強制終了します)。
Synetech

2

WinMergeを使用していますが、WinMergeパッチファイルを.reg形式に変換するアプリケーションを作成しました。M $以外のアプリには最適ですが、WinMergeは生成されたパッチファイルにHKを保持しないため、主にインストール/アンインストール用にのみ使用します。特に、x64 Win7にインストールできないアプリケーションが1つありましたが、動作することはわかっていました。reg全体をfile1にエクスポートし、インストールし、変更されたreg全体をfile2にエクスポートしました。WinMergeと比較パッチを作成してから、アプリケーションを使用して不要なコンテンツをすべてクリーンアップしました。

WinPuurg


0

エクスポートされたファイルではなく、実際のハイブを比較し、それらの間で簡単にコピーできるようにしたいと考えました。

私は試した:

  1. Registrar Register Manager これには、ロードしたハイブを比較する組み込みの比較機能があります。しかし、不足しているアイテムや変更されたアイテムをハイブから別のハイブにコピーする簡単な方法を見つけることができず、カスタマーサポートから回答を得られなかったため、試してみました。
  2. 比較を超えてプロフェッショナル版では、ロードしたハイブも比較されます。(regeditまたは他のツールを使用してそれらをロードする必要があります。)それが完了すると、比較ツールを使用して、あるハイブから他のハイブに欠落または変更されたアイテムを簡単にコピーできます(アイテムを強調表示すると、コピーがわかるボタンで他のハイブにコピーする必要があります)。サブツリー全体または個々のキーをコピーできますが、コピーするサブツリー(またはキー)を選択する必要があります。コピーできないキーがいくつかありました。レジストリシステム自体の保護メカニズムによってロックされたと思われます。

したがって、ここで詳細に使用した手順を示します。パーティションCから実行中に、パーティションD(ハイブソフトウェア)のレジストリからレジストリパーティションE(ハイブソフトウェア)にアイテムをコピーするとします。

  1. regeditを実行(パーティションCとして起動)
  2. HKEY_LOCAL_MACHINEを選択します
  3. [ファイル]メニューの[ロードハイブ]をプルダウンします。
  4. D:\ WINDOWS \ SYSTEM32 \ CONFIG \ SOFTWARE(そのハイブをロード)にアクセスし、d-softwareという名前を付けます。
  5. LOAD HIVEをもう一度プルダウンします。
  6. E:\ WINDOWS \ SYSTEM32 \ CONFIG \ SOFTWARE(そのハイブをロード)を参照し、e-softwareという名前を付けます。
  7. 比較を超えて走る
  8. 新しいセッション/レジストリの比較をプルダウン
  9. 左ペインのアドレスボックスにreg:\ HKEY_LOCAL_MACHINE \ d-softwareと入力します
  10. 右ペインのアドレスボックスにreg:\ HKEY_LOCAL_MACHINE \ e-softwareと入力します
  11. 下の項目に色を付けるまで待ちます(実際の比較を行っています)
  12. 左側の青(欠落)または赤(別)の項目を選択します
  13. コピーする場合は、ツールバーの矢印を使用して、右側にコピーします
  14. 右側のアイテムを選択すると、左側にコピーされます。
  15. 完了したら、両方のアプリケーションを閉じます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.