Основы работы с реестром Windows

Автор: Вадим Стеркин
Иcточник: unattended.oszone.net
Опубликована: 25.12.2007

В этой статье излагаются базовые принципы работы с реестром Windows, знание которых пригодится вам в настройке операционной системы при помощи твиков реестра.

Терминология

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


Рисунок 1 - Редактор реестра

Разделы реестра
Параметры реестра
Значения параметров

Как видите, здесь нет никаких "веток" и "ключей". Теперь к делу.

REG-файл

REG-файл - это текстовый файл с расширением REG, составленный в определенном формате.

Формат REG-файла

Ниже приводится пример REG-файла, отключающего меню недавних документов.

Windows Registry Editor Version 5.00

;Отключить меню недавних документов
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRecentDocsMenu"=hex:01,00,00,00

Создание REG-файла

Создать REG-файл очень просто. Скопируйте код в любой текстовый редактор (например, Блокнот). Нажмите CTRL+S и сохраните файл с любым именем и расширением .reg, заключая оба в кавычки.


Рисунок 2 - Создание REG-файла

Синтаксис REG-файла

В REG-файле может содержаться несколько разделов и параметров реестра, но заголовок используется только в самом начале.

Пример:

Windows Registry Editor Version 5.00

;Отключить перезагрузку в случае BSOD
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]
"AutoReboot"=dword:00000000

;Отключить уведомление на экране приветствия о непрочитанных сообщениях
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\UnreadMail]
"MessageExpiryDays"=dword:00000000

Данный REG-файлом был получен путем экспорта из редактора реестра regedit.exe. При помощи REG-файлов можно вносить изменения в системный реестр - эта операция называется импортом параметров реестра.

Экспорт параметров реестра

Экспорт параметров реестра является несложной задачей. Как правило, параметры экспортируют перед внесением изменений в реестр (резервное копирование), либо для того чтобы создать REG-файл для последующего импорта в реестр другого компьютера или при автоматической установке системы.
Экспортировать параметры реестра можно различными способами.

Редактор реестра Windows (regedit.exe)

В состав ОС Windows входит программа для редактирования реестра - regedit.exe. Поскольку она располагается в системном каталоге, для ее запуска в командной строке не нужно указывать полный путь (например, достаточно будет такой последовательности: Пуск - Выполнить - regedit - OK).

Для того чтобы экспортировать раздел реестра, достаточно щелкнуть по нему правой кнопкой мыши и выбрать из контекстного меню команду Экспортировать (в Windows 2000 эта команда расположена в меню Файл).

Другие редакторы реестра

Существует великое множество программ для внесения изменений в системный реестр, которые также обладают возможностью экспорта параметров. Если Вы часто работаете с реестром, то Вам, наверняка, пригодится программа, обладающая адресной строкой. В адресную строку можно вставить скопированный (из статьи или из сообщения на форуме) раздел реестра и быстро перейти к нужному параметру. Примером такой программы может служить RegWorks.

Командная строка

Из командной строки экспорт параметров реестра можно выполнить при помощи команды REG EXPORT, обладающей следующим синтаксисом.

REG EXPORT

      Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел
         (только для локального компьютера).
      Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ].
      Полный путь к разделу реестра в выбранном корневом разделе.
      Имя файла на диске для экспорта.

Примеры:

  REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
    Экспортирует все подразделы и значения параметров раздела MyApp
    в файл AppBkUp.reg

Импорт параметров реестра

Импорт параметров реестра можно осуществить несколькими способами.

Запуск REG-файла при помощи графического интерфейса

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

Двойной щелчок мыши

Как это ни тривиально звучит, но двойным щелчком мыши на REG-файле можно внести изменения в реестр. Правда, сначала система уточнит, действительно ли вы хотите это сделать. В случае положительного ответа изменения будут внесены.


Рисунок 3 - Система запрашивает подтверждение на внесение изменений.

Из-за этого запроса такой способ не подходит для импорта параметров в реестр во время автоматической установки системы. Но есть и другие способы.

Командная строка

Для импорта REG-файлов из командной строки существует команда REGEDIT. Набрав в командной строке

REGEDIT C:\hklm.reg

Вы получите точно такое же диалоговое окно, как при двойном щелчке мыши. Подавить появление диалогового окна можно запустив команду с параметром /S. Именно этот способ чаще всего применяется во время автоматической установки Windows.

REGEDIT /S C:\hklm.reg

Команда REG ADD

При помощи команды REG ADD также можно импортировать параметры реестра. Она удобна тем, что команды для импорта параметров можно включить в состав пакетного файла, выполняющего также и другие задачи (т. е. нет необходимости в дополнительном REG-файле). Например, эта команда нередко применяется для импорта значений реестра в раздел RunOnceEx и последующей установки программ при первом входе в систему. Синтаксис команды достаточно прост.

REG ADD  [/v  | /ve] [/t ] [/s ]
                 [/d ] [/f]

   [\\\]
        Имя удаленного компьютера, если оно опущено, то по умолчанию
                   считается равным имени локального компьютера.
                   На удаленных компьютерах доступны только разделы HKLM и HKU.
             Полный путь к разделу реестра в виде КОРЕНЬ\Подраздел.
           Корневой радел. Значения [ HKLM | HKCU | HKCR | HKU | HKCC ].
        Полный путь к разделу реестра в выбранном корневом разделе.

  /v   Имя добавляемого параметра в указанном разделе.

  /ve  Добавить пустой параметр (По умолчанию) в указанный раздел.

  /t   Типы данных.
       [REG_SZ    | REG_MULTI_SZ  | REG_DWORD_BIG_ENDIAN    |
        REG_DWORD | REG_BINARY    | REG_DWORD_LITTLE_ENDIAN |
        REG_NONE  | REG_EXPAND_SZ ]
       По умолчанию, считается равным REG_SZ.

  /s   Определяет разделитель, который используется для разделения данных в
       многострочных параметрах типа REG_MULTI_SZ. По умолчанию, считается
       равным "\0".

  /d     Значение, присеваемое добавляемому параметру реестра.
  /f     Принудительно перезаписывать существующие записи реестра
         без предупреждения.

Примеры:

REG ADD \\ABC\HKLM\Software\MyCo
  Добавляет раздел HKLM\Software\MyCo на удаленный компьютер ABC

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
  Добавляет параметр с именем: Data, типом: REG_BINARY, и значением: fe340ead

REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
  Добавляет параметр с именем: MRU, типом: REG_MUTLI_SZ,
  и значением: fax\0mail\0\0

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
  Добавляет параметр с именем: Path, типом: REG_EXPAND_SZ,
  и значением: %systemroot%
  Примечание:  Используйте в строке двойные символы процента ( %% )

INF-файл

Импортировать параметры в реестр можно и при помощи INF-файлов. Их общий синтаксис несколько сложнее, чем у REG-файлов, но непосредственно запись в реестр осуществляется достаточно просто. Ниже приводится пример из аддона Msgina

[Version]
Signature="$Windows NT$"

[Optional Components]
Msgina

[Msgina]
OptionDesc="Msgina"
Tip="Библиотека GINA входа в систему"
Modes=0,1,2,3
AddReg=Msgina.AddReg

[Msgina.AddReg]
HKLM,"Software\Policies\Microsoft\Windows\System\Shutdown","ShowHibernateButton",0x10001,1
HKLM,"Software\Policies\Microsoft\Windows\System\Shutdown","HibernateAsButton",0x10001,1

Примечание. Дополнительную информацию об INF-файлах можно найти в подробном руководстве.


Ссылка: http://www.oszone.net/6176/