2013-09-16 4 views
0

У меня есть два файла реестра (.reg), экспортированные с помощью powershell. Я хотел бы сравнить разницу двух файлов с реестром, в идеале используя powershell. Я использовал объект сравнения, но сравнивал файлы на текстовом уровне. Я хочу «предварительно загрузить» файлы в память и сравнить их на уровне ключа/свойства, чтобы определить, какие ключи были изменены. Затем я хотел бы создать третий .reg-файл с изменениями и применить его к реестру.Сравните два файла реестра (.reg) и примените разницу

Возможно ли это, например, с помощью Compare-Object?

ответ

0

Несколько идей, ни одно из них, что я бы назвал хорошим. Я не могу найти лучший способ, даже используя .NET API.

  1. (Compare-Object): Используйте 'REG.EXE' экспортировать целевое дерево в файл, а затем Get-Content оба файла, и сделать Compare-Object на их содержание.

  2. (Руководство): используйте get-content на new.reg, затем проанализируйте каждую строку с помощью split или regex-fu. Для каждого элемента, get-itemproperty для цели и проверки значений свойств и дочерних ключей

  3. (Compare-Object): импортируйте new.reg во временное расположение реестра, затем используйте Get-ChildItem на обоих деревьях и сравните все объекты

+0

В конце я использовал второй вариант, но только на каждом ключе, которое необходимо было сравнить. Поэтому я просто сравнил весь текстовый файл, а не по строкам. Если файл был изменен, я знаю, что ключ изменился. – Phaedrus

Смежные вопросы