1.4. Использование REG-файлов
В процессе эксплуатации системы могут возникать ситуации, когда редактирование реестра средствами Редактора реестра невозможно либо нецелесообразно. В таких случаях следует использовать файлы реестра, которые имеют расширение REG. В данном разделе мы кратко рассмотрим порядок работы с REG-файлами.
По своей структуре и содержанию файл реестра представляет собой обычный текстовый файл, поэтому его формирование и редактирование возможно с помощью любого текстового редактора (например, Блокнота). Следует отметить, что для редактирования имеющегося REG-файла целесообразно воспользоваться командой Файл → Экспорт, которая выбирается в окне Редактора реестра. В результате выполнения этой команды требуемый файл (это может быть как файл отдельного раздела или ветви, так и файл реестра целиком) будет экспортирован по указанному пути. После внесения всех необходимых изменений файл импортируется в реестр с помощью команды Файл → Импорт, также вызываемой в окне Редактора реестра.
Внимание!
Следует учитывать, что двойной щелчок кнопкой мыши на имени файла реестра в Проводнике не откроет его для редактирования, а приведет к импорту его в реестр таким же образом, как это произошло бы при выполнении команды Файл → Импорт.
Заголовок REG-файла
Важным элементом любого REG-файла системного реестра Windows является его первая строка, текст которой нельзя изменять ни при каких обстоятельствах. Только по ней система сможет распознать, что текущий файл содержит именно данные реестра. Вот как выглядит эта строка для REG-файлов операционных систем семейства Windows NT (в том числе и операционной системы Windows Vista):
Windows Registry Editor Version 5.00
Если вы будете создавать REG-файлы вручную, то вместо этой длинной строки можно использовать другой заголовок:
REGEDIT4
Данный заголовок REG-файла использовался в операционных системах семейства Windows9x, а также Windows NT 4. Он считается морально устаревшим, однако вопросы обратной совместимости требуют, чтобы он поддерживался будущими версиями операционных систем Windows.
Иными словами, REG-файлы, имеющие заголовок REGEDIT4, будут работать на любых версиях операционной системы Windows. Тогда как REG-файлы, имеющие более новый заголовок, будут работать только в операционных системах начиная с Windows NT 5.
Между REG-файлами со старым и новым заголовком существует еще одно отличие: в REG-файлах с новым заголовком строковые переменные записываются в кодировке Unicode, тогда как в REG-файлах со старым заголовоком используется стандартная кодировка ASCII. Это отличие не важно, если вы создаете REG-файл вручную. Однако, если вы выполняете экспортирование в REG-файл с помощью программы Редактор реестра, следует учитывать то, что REG-файлы с новым заголовком будут иметь больший размер, чем REG-файлы с заголовком REGEDIT4 (при самых худших условиях, то есть если все экспортируемые в REG-файл параметры имеют строковый тип, размер REG-файла с новым заголовком будет в два раза больше).
По умолчанию при экспортировании содержимого ветви реестра в REG-файл программа Редактор реестра использует новые заголовоки. Если же вы хотите экспортировать в REG-файл старого формата, вам придется самостоятельно выбрать элемент Файлы реестра Win9x/NT4 (-.reg) раскрывающегося списка Тип файла окна Экспорт файла реестра.
Пример REG-файла
Рассмотрим содержимое одного из файлов реестра на примере части REG-файла раздела HKEY_CURRENT_USER\Control Panel\Mouse.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Mouse]
"ActiveWindowTracking"=dword:00000000
"DoubleClickHeight"="4"
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,15,6e,00,00,\
00,00,00,00,00,40,01,00,00,00,00,00,29,dc,03,00,00,00,00,00,\
00,00,28,00,00,00,00,00
После первой строки текста REG-файла (заголовка) обязательно должна следовать пустая строка. Затем в квадратных скобках указывается раздел системного реестра, к которому относятся редактируемые параметры (в качестве разделителя между объектами реестра используется символ \). Далее следует перечисление параметров редактируемого раздела с указанием имени параметра, типа данных и значения параметра (каждый параметр отображается в отдельной строке текста файла). При этом соблюдаются следующие правила: имя параметра заключается в кавычки, затем после знака равенства указывается тип данных, далее после двоеточия – значение параметра. Если же тип данных не указан, то по умолчанию соответствующий параметр считается строковым и его значение заключается в кавычки. Последняя строка REG-файла должна оставаться пустой.
Редактирование текста REG-файла осуществляется по обычным правилам работы с текстовыми файлами. Кроме того, с помощью REG-файла можно удалять элементы системного реестра. Например, чтобы удалить раздел реестра, необходимо перед его именем в тексте REG-файла поставить знак "минус":
[-HKEY_CURRENT_USER\Control Panel\Mouse]
Примечание
Следует учитывать, что удаление раздела невозможно до тех пор, пока не удалены все входящие в его состав подразделы, поэтому сначала необходимо произвести подобную операцию с ними.
Для удаления значения параметра следует поставить знак – после знака =:
"SnapToDefaultButton"=–
Сделанные изменения будут перенесены в реестр после импорта отредактированного REG-файла.
1.5. Резервное копирование и восстановление реестра
Характерной особенностью реестра Windows является то, что, в отличие от большинства других программ, при его редактировании система не спрашивает, желает ли пользователь сохранить внесенные изменения. Поэтому в процессе работы с реестром следует помнить, что все внесенные корректировки невозможно отменить. Поскольку системный реестр является одним из главных компонентов Windows, необходимо перед началом редактирования создать его резервную копию, к которой можно будет вернуться в случае внесения в реестр ошибочных изменений. В этом разделе мы кратко остановимся на двух наиболее популярных способах сохранения резервной копии.
Архивирование в REG-файл
Самым простым способом является создание резервной копии с помощью Редактора реестра. В левой панели окна редактора следует установить указатель мыши на ветвь Компьютер (в этом случае будет сохранен весь реестр; если необходимо сделать копию какой-либо его части, то нужно выделить ее указателем) и выполнить команду Файл → Экспорт либо команду Экспортировать контекстного меню, которое появляется при щелчке правой кнопкой мыши на выделенном элементе. В результате на экране откроется стандартное окно Экспорт файла реестра, в котором следует указать имя файла и путь для его сохранения, а затем нажать кнопку Сохранить. После этого реестр (либо выделенная его часть) будет сохранен в виде REG-файла (описание порядка работы с REG-файлами см. в разд. 1.4). Рекомендуется, помимо сохранения файла реестра на локальном компьютере, сохранять его и на внешнем носителе информации (другой компьютер, компакт-диск и т. п.). Для последующего восстановления системного реестра из сохраненного заранее REG-файла необходимо запустить Редактор реестра и выполнить команду Файл → Импорт. В результате на экране отобразится стандартное окно Импорт файла реестра, в котором следует указать путь для импорта файла.
Создание куста реестра
Более удобным и одновременно более сложным способом архивирования части реестра является создание куста реестра. Кустом реестра называется ветвь или корневой раздел, которые хранятся в отдельном файле. Собственно, сам реестр операционных систем семейства Windows хранится в виде отдельных кустов (расположенных в каталоге %systemroot%\system32\config), поэтому, создавая куст, вы фактически создаете часть реестра, которую впоследствии можно будет загрузить в Редактор реестра.
Чтобы создать куст реестра, необходимо воспользоваться командой вида reg save <ветвь реестра> <файл>. Например, архивирование корневого раздела HKEY_CURRENT_USER в файл MyHKEY_CURRENT_USER.hiv, расположенный в каталоге c:, выполняется с помощью команды reg save HKEY_CURRENT_USER c:\MyHKEY_CURRENT_USER.hiv.
Впоследствии вы всегда сможете восстановить содержимое ветви реестра из созданного ранее куста. Для этого предназначена команда вида reg restore <ветвь реестра> <файл>. Например, reg restore HKEY_CURRENT_USER c:\MyHKEY_CURRENT_USER.hiv.
Создание и восстановление из куста реестра выполняется намного быстрее, чем создание и восстановление из REG-файла. Однако это еще не все преимущества использования кустов реестра.