web-dev-qa-db-ja.com

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

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

39
Notitze

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

alt text

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

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

alt text

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

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

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

alt text

31
John T

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

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

  2. total Commanderで両方のフォルダーを開き、片側でファイルを強調表示し、Files>Compare By Contentに移動します。 。voilá:

enter image description here

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

7
Molly7244

(手動でテキストにエクスポートした)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 です。

5
Synetech

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

WinPuurg

2
condonethis

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

私は試した:

  1. Registrar Register Manager ロードしたハイブを比較する組み込みの比較関数があります。しかし、不足しているアイテムや変更されたアイテムをあるハイブから別のハイブにコピーする簡単な方法が見つからなかったため、カスタマーサポートから回答が得られなかったため、試してみるのを断念しました。
  2. Beyond Compare プロフェッショナルバージョンでは、ロードしたハイブも比較されます。 (それらをregeditまたは他のツールでロードする必要があります。)一度実行すると、比較ツールは欠落/変更されたアイテムを1つのハイブから別のハイブに簡単にコピーできます(アイテムをハイライトすると、コピーがボタンは他のハイブにコピーする必要があります)。サブツリー全体または個々のキーをコピーできますが、コピーするサブツリー(またはキー)を選択する必要があります。コピーできないキーがいくつかありました。レジストリシステム自体の何らかの保護メカニズムによってロックされたと思います。

だから、ここに私が詳細に使用したステップがあります。パーティションCから実行中に、パーティションD(Hive SOFTWARE)のレジストリからレジストリパーティションE(Hive SOFTWARE)にアイテムをコピーするとします。

  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. nEW SESSION/REGISTRY COMPAREをプルダウン
  9. 左ペインのアドレスボックスにreg:\ HKEY_LOCAL_MACHINE\d-softwareと入力します
  10. 右ペインのアドレスボックスにreg:\ HKEY_LOCAL_MACHINE\e-softwareと入力します
  11. 以下のアイテムに色が付けられるまで待ちます(実際の比較を行っています)
  12. 左側の青(欠落)または赤(異なる)アイテムを選択します
  13. コピーしたい場合は、ツールバーの矢印を使用して、右側にコピーします
  14. 右側のアイテムを選択すると、左側にコピーされます。
  15. 完了したら、両方のアプリケーションを閉じます
0
intel_chris