Какой самый простой и быстрый способ сравнить 2 файла реестра?

36

Я хотел бы найти изменения, внесенные в реестр после установки чего-либо на моем компьютере. Однако я хотел бы также знать, что можно легко сделать в качестве общей процедуры.

Notitze
источник

Ответы:

29

Запустите установщик и просмотрите его с помощью Sysinternals Process Monitor . Вы можете фильтровать данные так, чтобы отображались только операции, выполненные установщиком. Вы даже можете отфильтровать все операции, которые хотите увидеть (RegWrite, RegQueryValue и т. Д.), И сохранить запись для последующего просмотра.

альтернативный текст

Монитор процесса является бесплатным.

Вы также можете использовать WinDiff . Вы можете сохранить экспортированные файлы реестра, а затем сравнить их:

альтернативный текст

WinDiff является бесплатным и открытым исходным кодом.

Еще одно бесплатное решение для сравнения реальных экспортируемых файлов реестра - это RegShot .

RegShot - это небольшая утилита сравнения реестра, которая позволяет быстро сделать снимок реестра, а затем сравнить его со вторым снимком, выполненным после внесения изменений в систему или установки нового программного продукта . Отчет об изменениях может быть создан в текстовом или HTML-формате и содержит список всех изменений, которые произошли между snapshot1 и snapshot2. Кроме того, вы также можете указать папки (с дополнительными папками), которые также будут проверяться на наличие изменений.

альтернативный текст

Джон Т
источник
Является ли RegShot быстрым (эти реестры могут быть довольно большими)
Notitze
Примерно с той же скоростью, что и экспорт реестра, пару секунд. Функция сравнения занимает всего несколько секунд. Это очень быстро
Джон Т
Regmon / Procmon не идеален, потому что слишком много беспорядка, который необходимо отфильтровать вручную. Кроме того, Windiff не может обрабатывать гигантские .regфайлы, WinMerge работает для этого лучше и может даже различать их лучше, чем Windiff. Тем не менее, я обычно использую этот метод для быстрого и грязного анализа (даже при том, что он обычно оказывается большей работой).
Synetech
3
RegShot, кажется, бесполезен, если у вас уже есть снимки реестра и вам нужно их сравнить
7

если у вас есть Total Commander , это довольно просто:

  1. экспортировать реестр перед установкой и после установки (сохранить с тем же именем в разных папках)

  2. откройте обе папки в Total Commander, выделите файл с одной стороны, перейдите в « Файлы» > « Сравнить по содержимому» ... voilá:

введите описание изображения здесь

Total Commander является условно-бесплатной, попробуйте, прежде чем купить.

багор
источник
5

Если вы хотите сравнить два файла реестра (которые вы экспортировали вручную в текст), то существует множество приложений для сравнения, таких как WinMerge , WinDiff и т. Д.

Предостережение: если куст реестра велик, то экспорт может занять некоторое время, и, что еще хуже, Windiff может более или менее зависать при попытке чтения больших .regфайлов. Вместо этого используйте WinMerge, потому что он может обрабатывать большие файлы, быстрее обрабатывать их, и результаты получаются лучше (иногда Windiff просто ошибается).


Если вы хотите сравнить реестр до и после установки, вы также можете использовать монитор установки. Опять же, их много, но одним из основных является InCtrl5 журнала PC Magazine (вам, возможно, придется заплатить, чтобы загрузить его со своего сайта, хотя сама программа бесплатна, поэтому есть много сайтов, у которых она есть). Они выпустили обновление под названием InCtrlX, которое, по-видимому, лучше. Total Uninstall является хорошим коммерческим. Мне обычно нравится моя старая копия InCtrl5, но Z-Soft Uninstaller имеет ту же функцию и является исключительной (это лучшее из десятка или около того, что я пробовал); плюс это бесплатно.


Другим решением является анализ самого установщика . То есть загляните внутрь EXE / MSI / BAT / INF / и т.д. файл, чтобы увидеть, что именно он делает при установке, включая изменения в файлах, записях реестра, службах, драйверах и т. д. Таким образом, вы можете избежать всего процесса обнаружения в целом. Я считаю, что 7Zip - лучший способ заглянуть внутрь большинства исполняемых инсталляторов (таких как NSIS), потому что вы можете видеть файлы и скрипты и тому подобное. Для установщиков MSI я предлагаю либо собственный ORCA от Microsoft, либо InstEd . Хороший коммерческий инструмент для MSI - AdvancedInstaller

Synetech
источник
WinMerge занимает около 30 секунд для полного сравнения реестра Windows7, неплохо.
Николас Рауль
@NicolasRaoul, кроме мощности процессора системы, сравнение также сильно зависит от разницы. Я сравнил текстовые файлы размером более 100 МБ +, которые всего лишь несколько раз отличались за несколько секунд с файлами WinDiff, и файлы размером 100 КБ, которые сильно отличались по времени работы с WinMerge (я обычно заканчиваю тем, что убивал процесс задолго до этого).
Synetech
2

Я использую WinMerge, но я создал приложение для преобразования файлов исправлений WinMerge в формат .reg. Он отлично работает для приложений, не относящихся к M $, но поскольку WinMerge не поддерживает HK в сгенерированных файлах исправлений, в основном только для установки / удаления. В частности, у меня было одно приложение, которое я не смог установить на x64 Win7, но я знал, что оно работает. Я экспортировал весь рег в файл1, установил, экспортировал весь измененный рег в файл2. Сделайте патч для сравнения с WinMerge, а затем используйте мое приложение для очистки всего ненужного контента.

WinPuurg

condonethis
источник
0

Я хотел сравнить реальные ульи и не экспортируемые файлы и иметь возможность легко копировать между ними.

Я пытался:

  1. Registrar Register Manager Имеет встроенную функцию сравнения, которая будет сравнивать загруженные ульи. Однако я не смог найти простой способ скопировать отсутствующие / измененные элементы из одного улья в другой и не получил никакого ответа от их службы поддержки, поэтому отказался от попыток сделать это.
  2. Beyond Compare Профессиональная версия также будет сравнивать ульи, которые вы загрузили. (Вам нужно будет загрузить их с помощью regedit или другого инструмента.) Как только вы это сделаете, инструмент сравнения легко позволяет копировать отсутствующие / измененные элементы из одного улья в другой (и когда вы выделите элемент, он знает, что копия кнопка должна скопировать его в другой улей). Он может копировать целые поддеревья или отдельные ключи, но вы должны выбрать поддерево (или ключ), который хотите скопировать. Были некоторые ключи, которые он не позволил бы мне скопировать. Я предполагаю, что они были заблокированы каким-то механизмом защиты самой системы реестра.

Итак, вот шаги, которые я использовал в деталях. Предположим, что я хочу скопировать элементы из реестра в разделе D (hive SOFTWARE) в раздел реестра E (hive SOFTWARE) при запуске из раздела C.

  1. запустить regedit (загружается как раздел C)
  2. выберите HKEY_LOCAL_MACHINE
  3. в меню «Файл» откройте «LOAD HIVE»
  4. перейдите к D: \ WINDOWS \ SYSTEM32 \ CONFIG \ SOFTWARE (загрузите этот улей) и назовите его d-software
  5. снова опустите LOAD HIVE.
  6. перейдите к E: \ WINDOWS \ SYSTEM32 \ CONFIG \ SOFTWARE (загрузите этот улей) и назовите его электронным программным обеспечением
  7. выходить за рамки сравнения
  8. свернуть НОВУЮ СЕССИЮ / РЕГИСТРАЦИОННОЕ СРАВНЕНИЕ
  9. в поле адреса левой панели введите reg: \ HKEY_LOCAL_MACHINE \ d-software
  10. в поле адреса правой панели введите reg: \ HKEY_LOCAL_MACHINE \ e-software
  11. подождите пока он раскрасит пункты ниже (это делает реальное сравнение)
  12. выберите синий (отсутствует) или красный (другой) элемент на левой стороне
  13. если вы хотите скопировать его, используйте стрелку на панели инструментов, которая скопирует его на правую сторону
  14. если вы выберете элемент с правой стороны, он скопирует его с левой стороны.
  15. когда закончите, закройте оба приложения
intel_chris
источник