Глава 3

Реестр и групповая политика Windows XP

3.1. Реестр Windows

Реестр операционной системы Windows представляет собой значительную по размерам базу данных, содержащую информацию о конфигурации системы, программном обеспечении и подключенном оборудовании. На начальных этапах развития Windows все настройки системы и программ хранились в специальных текстовых INI-файлах (впрочем, некоторые программы до сих пор хранят часть настроек в таких файлах). Переход от разрозненных INI-файлов к единому реестру был вызван тем, что размер INI-файла составляет всего 64 Кбайт, чего со временем стало критически не хватать. Использование единой базы данных, с одной стороны, упростило процесс сбора и хранения данных, а с другой – привело к постоянному увеличению реестра за счет программ, которые не удаляют часть своих ключей даже после деинсталляции, что приводит к сильному захламлению реестра.

В составе операционной системы Windows для полноценной работы с реестром имеется специальная утилита – Редактор реестра. Чтобы запустить эту утилиту, выполните команду Пуск Выполнить и в появившемся окне введите команду regedit, после чего нажмите кнопку OK.

Интерфейс утилиты представлен на рис. 3.1. С ее помощью вы сможете добавлять, удалять и изменять различные параметры, сохранять весь реестр или его часть в файле или восстанавливать данные из файла, а также искать нужные значения в реестре.

Рис. 3.1. Главное окно Редактора реестра

Реестр Windows имеет иерархическую структуру. Вверху иерархии находятся пять основных разделов: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER ит.д.

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

♦ строковые (например, содержащие путь к папке: C: \Program files\);

♦ двоичные (например, 4 5 0 0 53 0 0 4F) – длина такого параметра не должна превышать 16 Кбайт;

♦ DWORD – такой параметр занимает 4 байта и отображается как в шестнадцате-ричном, так и в десятичном виде, например 0x00000001 (1); в скобках указывается десятичное значение, а перед ними – шестнадцатеричное.

Между тем типов значений параметров значительно больше. Обратите внимание, что рядом с названием каждого параметра присутствует столбец Тип. Кратко рассмотрим основные типы значений параметров реестра.

♦ REGBINARY – двоичные данные (довольно часто – сведения об аппаратных компонентах).

♦ REGDWORD – значение, занимающее 4 байта и представленное как в шестнад-цатеричном, так и в десятичном виде.

♦ REGEXPANDSZ – содержит некоторую переменную, которую приложение может изменить в процессе работы.

♦ REG_DWORD_BIG_ENDIAN – 32-битное значение (старший байт расположен в самом начале).

♦ REG_MULTI_SZ – значение, содержащее несколько строк для более удобного восприятия (строки будут разделены специальным символом NULL).

♦ REGEXPANDSZ – содержит имена переменных, которые приложение может заменить на их реальные значения (переменная длина).

♦ REGSZ – текстовая строка (как правило, содержит какое-нибудь текстовое описание).

♦ REG_LINK – содержит определенную ссылку в формате Unicode.

♦ REG_FULL_RESOURCE_DESCRIPTOR – данные, касающиеся аппаратных ресурсов системы (например, DMA, I/O, IRQ и т. п.). Отображается в шестнадцатерич-ном виде.

♦ REG_RESOURCE_LIST – также содержит данные, касающиеся аппаратных ресурсов системы, – тип интерфейса и номер шины. Отображается в шестнадца-теричном виде.

♦ REGNONE – данный тип значения используется в том случае, когда операционная система не может распределить имеющиеся данные (неопределенный тип).