Как и в предыдущих версиях операционных систем из семейства Windows (включая Windows 9x/ME и Windows NT/2000/XP), реестр Windows Server 2003 представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам autoexec.bat и config.sys, которые использовались ранее. Реестр содержит информацию обо всех аппаратных средствах, программном обеспечении, операционной системе и сетевых параметрах компьютера. Эта сложная иерархическая база данных принимает участие во всех аспектах работы Windows. Хорошее понимание принципов работы реестра, выполняемых им задач, а также умение манипулировать реестром необходимо всем: системным и сетевым администраторам, специалистам из групп технической поддержки, а также опытным пользователям из числа программистов. Кроме того, для системных администраторов особенно важны вопросы администрирования и защиты реестра, а также его резервного копирования и восстановления.
Как и в предыдущих системах, в Windows Server 2003 реестр также играет ключевую роль в управлении системной конфигурацией и представляет собой централизованное хранилище всей информации об аппаратных средствах, операционной системе и установленных приложениях, а также данных, управляющих пользовательской средой. Реестр по-прежнему хранится на диске в виде файлов ульев, в состав которых внесены лишь незначительные изменения. Однако в код реестра Windows XP/Windows Server 2003 были внесены изменения, направленные на повышение производительности системы за счет ускорения доступа к реестру и на снятие ограничений по размеру реестра, существовавших во всех предыдущих версиях, включая Windows 2000. Усовершенствования, внесенные в реестр, будут подчеркиваться далее по ходу изложения материала данной главы.
Как было показано в главе 3 "Загрузка операционной системы", реестр становится необходимым уже на начальных этапах загрузки Windows. Проблемы при загрузке могут быть вызваны, в том числе, и повреждением реестра. Например, многие пользователи Windows NT/2000 испытывали этот шок,
когда в процессе загрузки получали сообщение примерно следующего содержания:
Windows 2000 Could not start because
the following file is missing or corrupt:
\WINNT\SYSTEM32\CONFIG\SYSTEM
You can attempt to repair this file by
Starting Windows NT Setup using
the original Setup floppy disk or CD-ROM.
Аналогичное сообщение может появиться и в процессе работы с Windows Server 2003. Появление такого сообщения свидетельствует об отсутствии или повреждении важной части реестра — файла улья реестра SYSTEM (речь о принципах хранения реестра пойдет далее в этой главе). Приведенный пример убедительно демонстрирует, что единственная ошибка в системном реестре может не только повлиять на всю конфигурацию, но и сделать невозможным запуск операционной системы. Помимо этого, добиться корректной работы некоторых приложений можно также лишь через редактирование реестра. Таким образом, важность навыка редактирования реестра нельзя недооценивать.
Реестр пришел на смену конфигурационным файлам (INI-файлам) и призван был снять неудобства и ограничения, связанные с их использованием. В виде, более или менее напоминающем его нынешнюю структуру, реестр появился в Windows NT 3.5 (тогда он имел 4 корневых ключа: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT
и HKEY_USERS). Новый
компонент операционной системы был предназначен для того, чтобы заменить собой многочисленные инициализационные и установочные файлы, разбросанные по различным каталогам на жестком диске и сетевом сервере. Эти файлы требовались для обеспечения корректной работы операционной системы, приложений и аппаратных устройств, но управление ими было задачей сложной, трудоемкой и неудобной. Реестр как централизованная база данных представляет собой источник конфигурационной информации, где все параметры сведены воедино, что обеспечивает возможность эффективного управления операционной системой.
Перечисление компонентов Windows Server 2003, использующих реестр, и краткое описание их взаимодействия с этой базой данных приведено ниже.
Программы установки (Setup). Каждый раз при запуске программы Setup или других установочных программ (для аппаратных и программных средств) происходит добавление в реестр новых конфигурационных данных. Начиная свою работу, все грамотно разработанные программы уста-новки считывают информацию реестра, чтобы определить, присутствуют ли в системе компоненты, обязательные для успешного завершения установки. Наконец, централизованный реестр позволяет приложениям совместно использовать конфигурационную информацию и предоставляет им больше возможностей взаимодействия между собой. Чтобы приложение могло получить статус "Designed for Windows", оно должно активно и правильно использовать реестр, а также содержать утилиту, позволяющую корректно выполнить удаление этого приложения (uninstall utility), не удаляя компонентов, которые могут использоваться другими программами (.dll, .ocx и т. д.). Эта утилита использует информацию, хранящуюся в реестре.
Распознаватель (Recognizer). Каждый раз при запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. На компьютерах с процессорами Intel распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы (Ntoskrnl.exe).
Ядро системы (Ntoskrnl.exe). При старте системы ядро извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (примером такой информации может служить, например, номер версии).
Драйверы устройств. Драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Эти данные аналогичны строкам DEVICE=, которые можно найти в файле config.sys для запуска компьютера под управлением MS-DOS. Драйвер устройства должен сообщить об используемых им системных ресурсах, включая аппаратные прерывания и каналы DMA, чтобы система могла включить эти данные в реестр. Приложения и драйверы устройств могут считывать эту информацию реестра, предоставляя пользователям интеллектуальные программы инсталляции и конфигурирования.
Административные средства. Административные средства системы, в том числе утилиты панели управления и оснастки, собранные в группу
Administrative Tools, представляют собой наиболее удобные и безопасные (с точки зрения внесения возможных ошибок) средства модификации реестра. Редактор реестра, рассмотрению которого посвящен отдельный раздел данной главы, также полезен для его просмотра и, время от времени, для внесения изменений в конфигурацию системы.
Пользовательские профили (user profiles). Windows NT/2000/XP, а также продукты из семейства Windows Server 2003 обеспечивают возможность создания множества пользовательских профилей. Вся информация, относящаяся к конкретному пользовательскому имени и ассоциированным с ним правам, хранится в реестре. Более подробная информация о пользовательских профилях будет приведена далее в этой главе, здесь же отметим, что пользовательский профиль определяет индивидуальные параметры настройки дисплея, параметры сетевых соединений, принтеры и многое другое. Пользовательские профили бывают следующих типов: локальные (local user profile), создаваемые автоматически при первой регистрации пользователя на локальном компьютере, "блуждающие" или перемещаемые (roaming user profile), создаваемые администратором и хранящиеся на сервере, и обязательные (mandatory user profile) — "блуждающие" профили, обязательные для применения. Информация о пользовательских профилях также хранится в реестре.
Обязательные пользовательские профили (mandatory user profiles) поддерживаются в Windows XP и Windows Server 2003 только в целях обеспечения обратной совместимости с существующими доменами Windows NT 4.0. Если же в вашей сети уже применяются домены на базе Windows 2000 или Windows Server 2003, и необходимость обеспечения обратной совместимости отсутствует, то вместо обязательных пользовательских профилей рекомендуется использовать групповую политику (Group Policy).
Аппаратные профили (hardware profiles). Реестр, в отличие от INI-файлов, позволяет хранить множественные аппаратные конфигурации. Так, например, можно создать профили для dock-станций (что актуально для пользователей портативных компьютеров), а также профили для съемных устройств. Аппаратный профиль представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. В процессе установки системы создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере на момент инсталляции.
Как и реестры систем Windows NT/2000/XP, реестр Windows Server 2003 состоит из пяти так называемых корневых ключей (root keys):
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
Каждый отдельный ключ может содержать элементы данных, которые называются параметрами (value entries), а также дополнительные вложенные ключи (subkeys). Для понимания этой концепции можно провести аналогию с файловой системой. Ключи в структуре реестра аналогичны каталогам, а значимые элементы — файлам. Рис. 24.1 иллюстрирует иерархическую структуру реестра.
Рис. 24.1. Реестр имеет иерархическую структуру, и его ключи могут содержать вложенные ключи и параметры
Все имена корневых ключей начинаются со строки HKEY_, что указывает разработчикам программного обеспечения на то, что это — дескриптор, который может использоваться программой. Дескриптор (handle) — это значение, используемое для уникального описания ресурса, к которому программа может получить доступ. Описания корневых ключей реестра Windows NT/2000/XP и Windows Server 2003 приведены в табл. 24.1.
Таблица 24.1. Корневые ключи реестра
Имя корневого ключа |
Описание |
HKEY_LOCAL_MACHINE |
Содержит глобальную информацию о компьютерной системе, включая такие данные об аппаратных средствах и операционной системе, как: тип шины, системная память, драйверы устройств и управляющие данные, используемые при запуске системы. Информация, содержащаяся в этом ключе, действует применительно ко всем пользователям, регистрирующимся в системе. На верхнем уровне иерархии реестра для этого ключа имеются три псевдонима: HKEY_CLASSES_ROOT, HKEY CURRENT_CONFIG И HKEY_DYN_DATA |
HKEY_ CLASSES_ ROOT |
Содержит ассоциации между приложениями и типами файлов (по расширениям имени файла). Кроме того, этот ключ содержит информацию OLE (Object Linking and Embedding), ассоциированную с объектами СОМ, а также данные по ассоциациям файлов и классов (эквивалент реестра ранних версий Windows, служивших настройкой над MS-DOS). Параметры этого ключа совпадают с параметрами, расположенными под ключом HKEY_LOCAL_MACHINE \ Sof tware\Classes. Подробную информацию о ключе HKEY_CLASSES_ROOT можно найти в руководстве OLE Programmer's Reference, входящем в состав продукта Windows Platform Software Development Kit (SDK) |
HKEY_CURRENT_ CONFIG |
Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили (hardware profiles) представляют собой наборы изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную данными ключей Software И System корневого
ключа HKEY LOCAL_MACHINE. В ключе HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, параметры этого ключа появляются также под ключом HKEY_LOCAL_MACHINE\System \CurrentControlSet\HardwareProfiles\Current |
HKEY_CURRENT USER |
Содержит пользовательский профиль пользователя, на данный момент зарегистрировавшегося в системе, включая переменные окружения, настройку рабочего стола, параметры настройки сети, принтеров и приложений. Этот ключ представляет собой ссылку на ключ HKEY_USERS \user SID, где user SID— идентификатор безопасности (Security ID, SID) пользователя, зарегистрировавшегося в системе на текущий момент |
HKEY_USERS |
Содержит все активно загруженные пользовательские профили, включая HKEY_CURRENT_USER, а также профиль по умолчанию. Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся под этим ключом; их профили загружаются в реестры на их собственных компьютерах. Операционная система требует наличия учетных записей для каждого пользователя, регистрирующегося в системе. Ключ HKEY_USERS содержит вложенный ключ \Default, а также другие ключи, определяемые идентификатором безопасности (Security ID) каждого пользователя |
Следует обратить особое внимание на весьма существенное различие между реестрами Windows 9x/ME и Windows NT/2000/XP/Windows Server 2003, касающееся ключа HKEY_USERS. Как известно, в Windows 9x/ME не существует встроенных средств для предотвращения несанкционированного доступа к системе, и для регистрации нового пользователя не требуется наличия учетной записи. Ключ реестра HKEY_USERS в этих операционных
системахсодержит вложенные ключи вида username, где username —
входные имена пользователей.
В отличие от Windows 9x/ME и по аналогии с Windows NT/2000, Windows ХР и Windows Server 2003 для доступа пользователей в обязательном порядке требуют наличия пользовательской учетной записи (user account), причем это требование совершенно не зависит от того, принимает ли ваш компьютер участие в работе сети. Далее, Windows NT/ 2000/ХР или Windows Server 2003 идентифицируют пользователей не по входным именам (login names), а по идентификаторам безопасности (Security IDs, SIDs), большинство из которых является уникальными для каждого пользователя (в том числе и для пользовательских учетных записей в разных системах). Исключение составляют только так называемые "хорошо известные" SID (well-known SIDs), например, такие, как встроенная группа Everyone (S-1-1-0) или пользователь Creator Owner (S-1-3-0), полный список которых можно найти в статье Microsoft Knowledge Base Q243330 — "Well Known Security Identifiers in Windows 2000 and Windows ХР". Если вы удалите пользовательскую учетную запись в локальной системе или в домене, а затем создадите новую с использованием того же входного имени, то для новой учетной записи будет сгенерирован новый SID. Идентификаторы безопасности имеют следующий формат: S-1-XXXXX1-YYYYY2-...-RID, где: S-1 — идентификатор безопасности (Security ID), версия 1; ХХХХХ — номер ведомства (authority number), YYYYYn — номера подразделений (subauthority numbers), RID — относительный идентификатор (Relative ID). Обратите внимание на то, что относительные идентификаторы (RID) уже не будут уникальны для каждого компьютера.
Многие пользователи Windows, даже довольно опытные, часто ошибочно считают, что система идентифицирует пользователей по их регистрационной информации — входному имени (username или login name) и паролю (password). Следует особо подчеркнуть, что это распространенное мнение является ошибочным, т. к. система идентифицирует пользователей именно по их идентификаторам безопасности. Пользовательские профили также идентифицируются по ассоциированным с ними SID (рис. 24.2).
Данные реестра поддерживаются в виде параметров, расположенных под ключами реестра. Каждый параметр характеризуется именем, типом данных и собственно значением. Три части параметра реестра всегда располагаются в следующем порядке:
Рис. 24.2. В отличие от Windows 9x/ME и по аналогии с Windows NT/2000,
Windows XP и Windows Server 2003 идентифицируют пользовательские профили
по ассоциированным с ним идентификаторам безопасности (SID)
В табл. 24.2 перечислены типы данных, определенные для параметров реестра и используемые в системе.
Таблица 24.2. Типы данных для параметров реестра
Тип данных |
Описание |
REG_BINARY |
Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате |
REG_DWORD |
Данные представлены в виде значения, длина которого составляет 4 байта. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать эти данные в двоичном, шестнадцатеричном и десятичном формате |
REG_EXPAND_SZ |
Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения |
REGJMULTI_SZ |
Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL |
REG_SZ |
Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных |
REG_DWORD_ LITTLE_ENDIAN |
32-разрядное число в формате "остроконечников" (little-endian). Представляет собой эквивалент REG DWORD. При использовании метода "остроконечников" самый младший байт ("little end") хранится в памяти первым в числе. Например, шестнадцатеричное число A02Bh по методу "остроконечников" сохраняется как 2ВАО. Метод "остроконечников" используется в микропроцессорах Intel |
REG_DWORD_BIG_ ENDIAN |
32-разрядное число в формате "тупоконечников" (big-endian). В противоположность методу "остроконечников", при использовании метода "тупоконечников" самый старший байт ("big end") оказывается первым байтом числа |
REG_LINK |
Символическая ссылка Unicode. Этот тип данных предназначен для внутреннего использования. Тип данных REG LINK особенно интересен тем, что он позволяет одному элементу реестра ссылаться на другой ключ или параметр. Например, если элемент реестра \Rootl\Link имеет параметр типа REG LINK со значением \Root2\RegKey, а ключ RegKey содержит параметр RegValue, то этот параметр идентифицируется двумя путями: \Rootl\Link\RegValue И \Root2 \ RegKey \RegValue. Windows NT/2000/XP и Windows Server 2003 активно использует этот метод — некоторые из корневых ключей реестра, перечисленных в табл. 24.1, являются ссылками на вложенные ключи других корневых ключей |
REG_NONE |
Параметр не имеет определенного типа данных |
REG_QWORD |
64-разрядное число |
REG_QWORD_LITTLE_ ENDIAN |
64-разрядное число в формате "остроконечников". Эквивалент REG QWORD |
REG_RESOURCE_LIST |
Список аппаратных ресурсов, применяется только в ветви HKEY_LOCAL_MACHINEXHARDWARE |
REG_FULL_RESOURCE_ DESCRIPTOR |
Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE |
REG_RESOUECE_ REQUIREMENTS_LIST |
Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE |
В Windows NT/2000/XP и Windows Server 2003 элементы реестра хранятся в виде атомарной структуры. Реестр подразделяется на составные части, которые разработчики этой операционной системы назвали ульями (hives) по аналогии с ячеистой структурой пчелиного улья. Улей представляет собой дискретную совокупность ключей, вложенных ключей и параметров, берущую начало в вершине иерархии реестра. Отличие ульев от других групп ключей состоит в том, что они являются постоянными компонентами реестра. Ульи не создаются динамически при загрузке операционной системы и не удаляются при ее остановке. Таким образом, ключ HKEY_LOCAL_MACHiNE\Hardware, который строится динамически распознавателем аппаратных средств при запуске операционной системы, ульем не является.
Данные ульев реестра хранятся в файлах, которые находятся в каталогах %SystemRoot%\system32\Config и %SystemRoot'%\Profiles\%Username% (Windows NT 4.0) и %SystemRoot%\system32\Config, и %SystemDrive%\ Documents and Settings\%Username% (Windows 2000, Windows XP и Windows Server 2003).
Каждый улей реестра ассоциирован с набором стандартных файлов. В табл. 24.3 перечислены стандартные ульи реестра Windows NT/2000/XP и Windows Server 2003 и поддерживающие их файлы.
Таблица 24.3. Стандартные файлы, обеспечивающие поддержку ульев реестра Windows NT/2000/XP и Windows Server 2003
Ветвь реестра |
Имена файлов |
НКЕ Y_LOCAL_MACHINE\SAM |
Sam, Sam. log, Sam.sav* |
HKEY_LOCAL_MACHINE\Security |
Security, Security.log, Security. sav* |
HKEY_LOCAL_MACHINE\Software |
Software, Software.log, Software. sav |
HKEY_LOCAL_MACHINE\System |
System, System.alt**, System.log, System. sav |
HKEY_CURRENT_CONFIG |
System, System.alt**, System.log, System. sav |
HKEY_USERS\.DEFAULT |
Default, Default.log, Default.sav |
(Файлы, не ассоциированные ни с одним ключом) |
Userdiff, Userdiff.log, Userdifr***, Userdifr.log*** |
HKEY_CURRENT_USER |
Ntuser.dat, Ntuser.dat.log |
* Файлы, появляющиеся в системе лишь при определенных обстоятельствах.
** Файлы, исключенные из Windows XP и Windows Server 2003.
*** Файлы, присутствующие только в Windows XP.
Как видно из приведенной выше таблицы, некоторые из файлов реестра в Windows XP и Windows Server 2003 больше не используются. Это является следствием усовершенствований, внесенных в их реестр.
Все файлы ульев реестра, за исключением HKEY_CURRENT_USER, находятся в
подкаталоге %SystemRoot%\system32\config.
Поддержку улья HKEY_CURRENT_USER выполняют файлы Ntuser.dat и Ntuser.dat.log. В файлах Ntuser.dat хранятся пользовательские профили; файл Ntuser.dat.log отслеживает изменения, которые вносились в файл Ntuser.dat. В Windows NT 4.0 (а также в системах Windows 2000/XP и Windows Server 2003, установленных как обновление версий Windows NT 4.0) эти файлы располагаются во всех подкаталогах каталога %SystemRoot%\Profiles
(за исключением подкаталога \Аll Users). В Windows 2000/XP и Windows Server 2003 эти файлы располагаются в каталогах %SystemRoot%\Documents and Settings\ % Username%.
Файлы Ntuser и Userdiff были впервые введены в Windows NT 4.0:
файл Ntuser.dat, в котором хранится пользовательский профиль, заменил собой файлы usernamejcet и admiruco: из предыдущих версий Windows NT;
файл Ntuser.dat из каталога %SystemRoot%\Profiles\DefaultUser заменил собой файл Userdef из предыдущих версий Windows NT. Этот профиль используется для построения улья HKEY_CURRENT_USER, когда новый пользователь впервые регистрируется в системе;
файлы UserdifF, которые находятся только в каталоге %SystemRoot% \system32\config, не ассоциируются ни с одним ульем. Они служат для обновления существующих профилей пользователей, использовавшихся в предыдущих версиях Windows NT, таким образом, чтобы эти профили могли применяться в Windows NT 4.0 и последующих версиях (Windows 2000, Windows XP и Windows Server 2003).
С ульями ассоциируются файлы четырех типов. Все эти типы файлов (с соответствующими расширениями имен файлов) перечислены в табл. 24.4.
Таблица 24.4. Типы файлов, ассоциированных с ульями реестра Windows NT4.0Windows 2000/Windows XP/Windows Server 2003
Тип файла |
Описание |
Без расширения имени файла |
Содержит копию улья |
ALT* |
Содержит резервную копию жизненно важного улья HKEY LOCAL MACHlNE\System. Только ключ System имеет соответствующий файл с расширением alt. Файлы ульев с таким расширением существуют только в Windows NT/2000. В Windows XP и Windows Server 2003 они больше не используются вследствие того, что в этой операционной системе для хранения и доступа к реестру применяются усовершенствованные алгоритмы |
LOG |
Содержит журнал транзакций, в котором регистрируются все изменения, внесенные в ключи и значимые элементы улья |
SAV |
Содержит копии файлов улья в том виде, который они имели на момент завершения текстовой фазы процесса установки. Файлы с расширением sav появляются для ключей Software, System, SAM, Security И Default. Подобно Windows NT/2000/XP, Windows Server 2003 выполняет резервное копирование содержимого ульев в процессе инсталляции. Процедура инсталляции состоит из двух стадий: стадии текстового режима и стадии графического режима. Когда установка в текстовом режиме завершается, выполняется копирование ульев в файлы с расширением sav. Это делается для того, чтобы защитить ульи от ошибок, которые могут произойти в случае сбоя на графической стадии установки. Если процедура установки даст сбой на графической стадии, то после перезагрузки компьютера будет производиться повтор только графической стадии установки. SAV-файлы используются для перестройки ульев реестра |
*Файлы, исключенные изWindows XP иWindows Server 2003
Одним из основных недостатков INI-файлов, использовавшихся для управления конфигурацией системы и приложений до введения реестра, являлась проблема, вызванная ограничением по размеру файла Win.ini, использовавшегося в ранних версиях Windows для хранения параметров настройки всех установленных в системе приложений. Каждое вновь устанавливаемое приложение вносило свои параметры в этот файл, вследствие чего он очень быстро рос. Когда размер файла Win.ini превышал установленное ограничение (не более 64 Кбайт), добавление новых записей в его состав создавало проблему, поскольку все дальнейшие изменения, вносимые в последние разделы этого файла (за пределами инициализационной границы), игнорировались.
Казалось, что с введением концепции реестра эта проблема была решена. Однако реестр, при всей своей прогрессивности, все же остался ограниченным по объему (на практике, его размер ограничивался до 80% от объема нерезидентного пула памяти). Поэтому проблема снова начала возникать с появлением приложений, интенсивно использующих реестр (к их числу относятся, например, СОМ и терминальные сервисы). При установке в системе таких приложений значительный объем нерезидентного пула поглощался реестром, оставляя слишком малый объем адресного пространства для других приложений, работающих в режиме ядра. В Windows NT/2000 для решения этой проблемы применяется ограничение по размеру реестра, т. е. существует возможность установить ограничение на размер, до которого может разрастаться реестр.
В отличие от Windows NT/2000, в Windows XP и Windows Server 2003 ограничение по размеру реестра практически снято. Код реестра был переработан таким образом, чтобы переместить реестр из нерезидентного пула и передать управление им диспетчеру кэша. Эта новая реализация позволяет реестру разрастаться до существенно больших размеров, нежели в предыдущих версиях, и фактически ограничивает его размеры только объемом доступного дискового пространства. Таким образом, ни в Windows XP, ни в Windows Server 2003 вы больше не найдете опции, позволяющей задать ограничение по размеру реестра.
Новый подход к реализации реестра позволил также существенно повысить производительность системы за счет усовершенствований, перечисленных ниже.
Ускоренная обработка обращений к реестру. В Windows NT/2000 на производительность реестра влияла его фрагментация. Взаимосвязанные ячейки были разбросаны по всему файлу улья, вследствие чего попытки доступа к такой информации (например, поиск атрибутов ключа) могли
приводить к генерации большого количества страничных прерываний и существенно снижали общую производительность системы. В Windows XP и Windows Server 2003 при выделении памяти для ячеек реестра применяется улучшенный алгоритм, при котором взаимосвязанным ячейкам реестра выделяется пространство в пределах одной и той же или близких страниц памяти, что снимает эту проблему.
Улучшенные механизмы для работы с данными большого объема. Во всех версиях, предшествующих Windows XP, неэффективно работающее приложение могло создавать разреженные файлы реестра большого объема за счет постоянного увеличения значения параметра реестра малыми приращениями. В Windows XP и Windows Server 2003 эта проблема решена за счет реализации разбиения крупных ячеек на цепочки ячеек размером по 16 Кбайт.
Непосредственное редактирование реестра, даже в тех случаях, когда оно необходимо, при условии неумелого выполнения может привести к большим неприятностям. Поэтому, если вы чувствуете себя неуверенно или просто не можете позволить себе затратить значительное время для проведения восстановительных работ, не ставьте смелых экспериментов над реестром своей операционной системы (будь то Windows NT 4.0/Windows 2000, Windows XP или Windows Server 2003). Вполне возможно, что единственная ошибка приведет к необходимости переустановки операционной системы.
Для выполнения задач по конфигурированию системы, по мере возможности, рекомендуется использовать административные утилиты, т. к. их применение всегда предпочтительнее непосредственного редактирования реестра. Этот метод намного безопаснее, поскольку административные средства не позволяют сохранять в реестре некорректные значения. Если в процессе редактирования реестра будет допущена ошибка, то некорректное значение будет сохранено без предупреждения.
Большинство операционных систем Windows имеет в своем составе утилиты, предназначенные для просмотра и редактирования реестра, так называемые редакторы реестра. В Windows NT/2000 существует два таких редактора. Традиционная программа редактирования реестра Windows NT носит название Regedt32.exe. Эта программа наследуется от предыдущих версий Windows NT и позволяет редактировать реестр Windows NT/2000 с помощью методов, которые не поддерживаются в Windows 9x/ME. Более новая программа, Regedit.exe, была первоначально написана для Windows 95. Она обладает многими из возможностей Regedt32.exe и снабжена интерфейсом Windows Explorer. Версия Regedit.exe, которая имеется в составе Windows NT/2000, почти полностью идентична аналогичному приложению, имеющемуся в составе Windows 9x/ME. По сравнению с Windows NT/2000, Windows XP и продукты из семейства Windows Server 2003 и в этой области предлагают усовершенствование. Теперь все задачи по редактированию реестра могут выполняться только с помощью редактора реестра Regedit.exe, который в дополнение к своим традиционным возможностям предоставляет и все функции, которые ранее были доступны только через редактор Regedt32.exe (установка разрешений на доступ к ключам реестра, импорт и экспорт поддеревьев реестра и др.).
Стоит, правда, отметить и то, что Regedit.exe в Windows XP и Windows Server 2003 не реализует одной, но очень важной функции, которая была присуща Regedt.32.exe. Речь идет о возможности использования редактора реестра в режиме "только для чтения". Этот режим позволяет защитить реестр от случайных непреднамеренных изменений в процессе его просмотра и знакомства с его структурой. Именно наличие команды Read Only Mode в меню Options и делало Regedt32.exe предпочтительным средством, с помощью которого новички могли безбоязненно начинать знакомство со структурой реестра.
По умолчанию утилита Regedit.exe в процессе установки операционной системы копируется в каталог %SystemRoot% (например, C:\Windows). Обычно редактор реестра запускается с помощью команды
Run (Выполнить) меню Start (Пуск).
Редактор реестра можно также запустить из командной строки с ключом /s. В этом случае Regedit.exe не будет предоставлять графического пользовательского интерфейса и не будет запрашивать подтверждения пользователя на выполнение указанной ему операции. Эта опция позволяет использовать редактор реестра в командных файлах. Например, чтобы выполнить импорт файла реестра MyRegSettings.reg в состав реестра без запроса подтверждения, дайте следующую команду:
Regedit /s MyRegSettings.reg
Окно редактора реестра Regedit.exe состоит из четырех основных областей (рис. 24.3).
Строка меню. В этой строке содержатся основные пункты меню: File, Edit, View, Favorites (этот пункт меню впервые был введен в Windows 2000) и Help.
Левая панель (левое подокно). Отображает иерархию реестра, организованную в виде ключей (в литературе они часто обозначаются термином "разделы") и вложенных ключей (другие часто встречающиеся термины — "подключи" или "подразделы").
Правая панель (правое подокно). Показывает текущие параметры выбранного ключа реестра, известные также как значимые элементы (value entires). Каждый параметр реестра характеризуется именем, отображаемым в столбце
Name правой панели, типом данных, отображаемым в столбце Туре (на тип данных указывает и небольшой значок, расположенный чуть левее имени), и значением, отображаемым в столбце
Data.
Строка состояния. Строка состояния указывает путь к выбранному элементу реестра. Она нужна, чтобы отображать полный путь к ключу реестра, в составе которого содержится выделенный параметр.
Рис. 24.3. Окно редактора реестра Regedit.exe с обозначением основных областей
В окне редактора реестра Registry Editor отображаются ключи только верхнего уровня иерархии реестра, ответвляющиеся от значка
My Computer. Это — имена корневых ключей, базовая информация о которых была приведена в начале этой главы.
Если выполнить щелчок мышью, указав курсором на значок [+], расположенный левее значка любой из папок, то развернется соответствующий ключ, в котором отобразится иерархия содержащихся в его составе вложенных ключей. Эта операция разворачивает дерево ключа реестра до следующего уровня вложенности и во многом напоминает аналогичную операцию раскрытия папок и вложенных папок в Explorer.
Если в составе вложенных ключей имеются другие вложенные ключи, то слева от них тоже будут находиться значки [+], которые можно в свою очередь развернуть для просмотра следующего уровня иерархии. Этот послойный метод организации реестра известен под названием вложения (nesting) и допускает множество уровней.
По достижении самого нижнего уровня вложения слева от вложенного ключа появится значок [—], который указывает, что дальнейшее раскрытие невозможно. После этого перемещение по иерархическому дереву будет возможно только в одном направлении — вверх. Если рядом с ключом нет ни значка [+], ни значка [—], это означает, что он не содержит вложенных ключей.
В табл. 24.5 приведен список клавиш, используемых для просмотра реестра с помощью Regedit.exe
Таблица 24.5. Клавиши, используемые в Registry Editor
Клавиша |
Действие |
<+> |
Разворачивает выбранный ключ на один уровень, показывая вложенные подключи |
<- > |
Сворачивает выбранный ключ на один уровень |
вверх |
Перемещает вверх к следующему ключу |
вниз |
Перемещает вниз к следующему ключу |
<- >> |
Разворачивает выделенный ключ на один уровень, показывая его подключи; если подключен нет, то перемещает вниз к следующему ключу |
<<-> |
Сворачивает выделенный ключ, если он был развернут; в противном случае перемещает вверх к следующему ключу |
<Таb> |
Перемещает в другое подокно окна Registry Editor |
В правой панели окна Registry Editor располагаются параметры реестра, каждый из которых характеризуется именем, типом данных, и собственно данными.
Каждый параметр реестра характеризуется именем. Многие параметры, предоставляемые Microsoft, используют имя
Default (вы убедитесь в этом, когда начнете интенсивно работать с Registry Editor). Имена параметров располагаются в столбце
Name правой панели окна Registry Editor. Эти имена присваиваются значимым элементам разработчиками приложений и физических устройств.
Типы данных, характеризующие параметры реестра, отображаются в столбце Туре.
Утилита Regedit.exe для удобства применяет также специальные значки, отображаемые чуть левее имен параметров и позволяющие быстро отличать двоичные данные от текстовых. Краткое описание значков, отображаемых в окне редактора реестра Regedit, приведено в табл. 24.6.
Таблица 24.6. Значки, соответствующие типам данных
в окне Registry Editor
Тип данных |
Описание |
Означает, что данные имеют двоичный формат (типы данных REG_BINARY И REG_DWORD) |
|
Означает текст и символы, которые вы можете прочесть, например, "On The Microsoft Network"
(строковые типы данных - REG_EXPAND_SZ, REG_MULTI_SZ И REG_SZ) |
В столбце Data располагаются собственно данные (текстовые или двоичные), соответствующие значению выбранного параметра. Эти данные можно редактировать, модифицировать или создавать в целях оптимизации той или иной функции.
Последующие разделы содержат инструкции по использованию этих возможностей, а также указания по внесению модификаций в реестр.
Команда Import (Импорт) позволяет импортировать в реестр предварительно экспортированные REG-файлы и файлы ульев реестра.
Команда Export (Экспорт) позволяет сохранить весь реестр или его часть в виде REG-файла или файла другого типа, например, файла улья реестра или текстового файла формата ASCII.
Чтобы экспортировать ветвь реестра, выполните следующие действия:
1. Выделите ветвь реестра, затем выберите в меню
File (Файл) команду Export.
2. В поле File name открывшегося диалогового окна
Export Registry File
(рис. 24.4) введите имя файла. По умолчанию файлу будет присвоено расширение reg. Чтобы сохранить экспортируемый файл в другом формате, выберите нужную опцию из списка Save as type, расположенного непосредственно под полем
File name. Обратите внимание, что, несмотря на все внешнее сходство, утилиты Regedit.exe, поставляемые в составе Windows 9x, Windows NT 4.0, Windows 2000, Windows XP и Windows Server 2003, представляют собой разные версии этого приложения. Поэтому версия Regedit.exe из Windows XP или Windows Server 2003 позволяет сохранять экспортированные файлы реестра как в формате Windows XP/ Windows Server 2003 (для этой цели служит опция
Registration Files (*.reg)),
так и в формате файлов реестра Windows 9x/NT 4 (для этой цели служит опция
Win9x/NT 4 Registration Files (*.reg)).
Рис. 24.4. Диалоговое окно Export Registry File
3. Если требуется сохранить часть реестра, выбирайте опцию сохранения только выделенной ветви реестра. Для этого установите переключатель Selected branch из группы
Export range. Однако, если вы часто модифицируете реестр, то экспорт всего реестра целиком — неплохая идея. Это даст вам дополнительные гарантии восстановления в случае ошибки.
4. Нажмите кнопку Save.
Сохраненный файл можно просмотреть в текстовом редакторе, чтобы убедиться в правильности сохранения. Экспортированные файлы реестра содержат текст ASCII без каких-либо символов форматирования.
Нужно помнить, что файлы с расширением гед по умолчанию ассоциированы с приложением Regedit.exe. По умолчанию над такими файлами выполняется операция merge (слияние), которая импортирует содержимое данного файла в реестр. Чтобы избежать случайного импорта в реестр экспортированного файла, будьте внимательны и осторожны при обращении с такого рода файлами.
Обращаясь с экспортированными файлами реестра, следует соблюдать осторожность, особенно в том случае, если экспорт производится с целью экспериментов. Например, опытные администраторы, хорошо знакомые с реестром, экспериментируют над своей системой или решают некоторые проблемы путем редактирования экспортированного файла реестра, а затем импортируют его обратно в систему. Однако перед тем, как вносить такие изменения, рекомендуется принять следующие меры предосторожности:
1. Предварительно создайте резервную копию экспортированного файла, который требуется редактировать. Если при редактировании будет допущена ошибка, которая приведет к возникновению проблем, можно будет импортировать в реестр резервную копию этого REG-файла.
2. Если вы часто экспериментируете с реестрами различных операционных систем, то экспортированные файлы реестров каждой из этих операционных систем рекомендуется держать отдельно друг от друга, в различных каталогах, специально выделенных для этой цели. Это поможет избежать случайного импорта в систему несовместимого файла реестра.
Команды Load Hive (Загрузить улей) и Unload Hive (Выгрузить улей) действуют по аналогии с одноименными командами, существовавшими в редакторе реестра Regedt32.exe. Они позволяют загрузить в реестр ранее сохраненный файл улья или выгрузить ранее загруженный файл улья соответственно. Следует отметить, что эти команды меню
File действуют только применительно к ключам HKEY_USERS И HKEY_LOCAL_MACHINE и будут эфективны только
в том случае, когда выбран один из этих ключей. Во всех остальных случаях эти команды будут недоступны. Улей, будучи загружен в реестр, станет вложенным ключом одного из упомянутых выше ключей.
Команда Connect Network Registry (Подключить сетевой реестр) позволяет выполнить редактирование реестра на другом компьютере, работающем в составе сети.
Чтобы отключиться от реестра, расположенного на удаленном компьютере, используется команда
Disconnect Network Registry (Отключить сетевой реестр). Если вы на текущий момент не подключены к сетевому реестру, эта опция будет недоступна.
Для выполнения таких процедур, как загрузка и выгрузка ульев, а также подключение к реестру удаленного компьютера, необходимо иметь права администратора или пользователя из группы Administrators. Если компьютер подключен к сети, то параметры настройки сетевой политики также окажут влияние на возможность выполнения этих процедур.
Команду Print из меню Registry можно использовать для распечатки выбранной ветви реестра (которая может потребовать довольно большое количество листов бумаги).
Команда Exit закрывает окно Regedit и завершает сеанс работы с этой программой.
Команда Modify (Изменить) используется для изменения данных, содержащихся в составе параметров реестра. Эта опция будет доступна только в том случае, если выбрать один из параметров, перечисленных в правой панели окна
Registry Editor. Команда Modify Binary Data (Изменить двоичные данные) позволяет редактировать любые данные (в том числе и данные других форматов) в окне двоичного редактора. Эта команда также будет доступна только в том случае, если выбран один из параметров реестра, перечисленных в правой панели окна редактора реестра.
Команда New (Создать) позволяет добавлять в реестр новые ключи и параметры строковых типов, двоичные параметры и параметры типа REG_DWORD (рис. 24.5). Выбирать тип параметра можно в подменю
New в контекстном меню, раскрывающемся по нажатию правой кнопки мыши на выбранном ключе.
Рис. 24.5. Команда New позволяет добавлять в реестр новые ключи, а также строковые и двоичные параметры
Опции Rename (Переименовать) и Delete (Удалить) меню Edit позволяют, соответственно, переименовать или удалить значимый элемент реестра. Удалить значимый элемент можно и другим способом: выделите нужный элемент, выполнив на нем щелчок мышью, а затем нажмите клавишу <Del>. Аналогичным образом, для быстрого переименования значимого элемента можно указать на него курсором, выполнить щелчок правой кнопкой мыши, выбрать из контекстного меню команду
Rename и ввести новое имя.
Удаление параметров и ключей реестра с помощью утилиты Regedit — это необратимая операция. Regedit не имеет команды Undo, поэтому при удалении параметров и ключей следует соблюдать осторожность.
Команда Copy Key Name (Копировать имя раздела) позволяет скопировать в буфер обмена имя ключа, выделенного на текущий момент. Впоследствии скопированное имя можно вставить в любой текст с помощью команды
Paste (Вставить), имеющейся в любом текстовом редакторе. Поскольку реестр представляет собой сложную иерархическую базу данных, пути к нужному элементу могут оказаться очень длинными и сложными для запоминания. Поэтому многие по достоинству оценили удобство этой функции. Команду
Copy Key Name очень удобно использовать в сочетании с командами Find и
Find Next.
Команды Find (Найти) и Find Next (Найти далее) используются для поиска конкретных элементов или данных (включая строки и слова) в реестре. Можно выполнять поиск ключей, параметров, данных или любой их комбинации. Искомые значения могут быть как текстовыми, так и числовыми. Наконец, особого внимания заслуживает команда
Permissions (Разрешения), которая позволяет управлять правами доступа к ключам реестра и осуществлять аудит действий в отношении ключей реестра. Здесь необходимо упомянуть, что в Windows NT/2000 эти возможности были доступны только в Regedt32.exe, где для их установки требовалось использовать опции меню Security. В Windows XP и Windows Server 2003 все эти функциональные возможности были интегрированы в состав редактора реестра Regedit.exe. Права доступа к ключам реестра можно назначать вне зависимости от типа файловой системы на разделе, где содержатся файлы операционной системы.
Изменение прав доступа к ключу реестра может иметь серьезные последствия. Например, если вы установите права доступа типа No Access на ключ, необходимый для конфигурирования сети с помощью опции Network Connections из Control Panel, то это приложение работать не будет. Права полного доступа (Full Control) к ключам реестра должны иметь, как минимум, члены группы Administrators и сама операционная система (Operating System). Такая установка прав доступа позволяет гарантировать возможность восстановления ключа реестра администратором при запуске системы.
Поскольку установка ограничений по правам доступа к ключам реестра может иметь серьезные последствия, зарезервируйте эту меру для ключей, добавляемых вами с целью настройки отдельных индивидуально разработанных приложений или иных видов индивидуальной настройки. Изменив права доступа к ключам реестра, обязательно установите в системе аудит, а затем проведите наблюдения за различными видами системной активности, регистрируясь в системе с использованием различных пользовательских и административных учетных записей.
Для того чтобы получить возможность выполнить эти действия, необходимо зарегистрироваться в системе от имени пользователя, имеющего административные права.
В Regedit.exe команды из меню Permissions по назначению ключам реестра прав владельца и прав доступа работают по такому же принципу, как и аналогичные команды Windows Explorer по установке прав доступа к файлам и каталогам на разделах NTFS. Чтобы установить права доступа к конкретному ключу реестра, проделайте следующее:
1. Перед внесением изменений выполните резервное копирование тех ключей реестра, на которые будут устанавливаться права доступа.
2. Выделите ключ, на который собираетесь установить права доступа. После этого выберите команду
Permissions меню Edit.
3. В открывшемся диалоговом окне (рис. 24.6) выберите имя нужного пользователя или группы в поле
Group or user names (Группы или пользователи) и установите для них нужный тип прав доступа в поле
Permissions for <group or user name>. Типы прав доступа, которые вы сможете установить, перечислены в табл. 24.7.
Таблица 24.7. Типы прав доступа к ключам реестра
Тип доступа |
Описание |
Read |
Позволяет пользователям, внесенным в список Permissions, просматривать содержимое ключа реестра, не позволяя сохранять изменения |
Full Control |
Позволяет пользователям, внесенным в список Permissions, получать доступ к ключу, редактировать его содержимое и изменять к нему уровень прав доступа |
Special Permissions |
Предоставляет пользователям, внесенным в список Permissions, индивидуально назначаемые комбинации прав доступа и редактирования к избранному ключу. Подробное описание типов и комбинаций
Special Permissions можно найти далее в этой главе |
Рис. 24.6. Диалоговое окно, позволяющее задать права доступа к ключам реестра
4. Чтобы установить аудит на доступ к реестру и задать комбинацию прав доступа типа
Special Permissions, нажмите кнопку Advanced (Дополнительно). Раскроется диалоговое окно
Advanced Security Settings for <Registry Key Name>, где <Registry Key Name> — имя ключа, для которого требуется задать расширенные права доступа (рис. 24.7). Выберите имя пользователя или группы из списка
Permission entries и нажмите кнопку Edit. Раскроется следующее окно (рис. 24.8), в котором вам будут предоставлены опции по расширенному редактированию прав доступа к ключам реестра. Типы прав доступа, которые вы сможете установить в этом окне, перечислены в табл. 24.8.
Таблица 24.8. Флажки диалогового окна Permission entry for
Флажок |
Назначаемые права |
Query Value |
Дает право чтения значимых элементов из ключа реестра |
Set Value |
Дает право установить значимый элемент в ключе реестра |
Create Subkey |
Дает право создавать подключи в выбранном ключе реестра |
Enumerate Subkey |
Дает право идентифицировать подключи выбранного ключа реестра |
Notify |
Дает право установить аудит на ключи реестра |
Create Link |
Дает право создавать символические ссылки в конкретном подключе реестра |
Delete |
Дает право удаления выделенного ключа |
Write DAC |
Дает право получать доступ к ключу и создавать/модифицировать для него список контроля доступа (Access Control List, ACL) |
Write Owner |
Дает право присвоения прав владельца данного ключа |
Read Control |
Дает право просматривать параметры безопасности, установленные для данного ключа |
Рис. 24.7. Окно Advanced Security Settings for Winlogon
Рис. 24.8. Окно, предоставляющее расширенные опции по редактированию прав доступа к ключам реестра
Как системный администратор, вы можете присвоить себе права владельца на ключ реестра и ограничить доступ к этому ключу. Заменить права владельца можно на вкладке
Owner, а установить аудит — на вкладке Auditing.
Пользователь, зарегистрировавшийся на компьютере с правами администратора, может присвоить себе права владельца на любой ключ реестра. Однако, если администратор будет иметь права владельца на ключ без прав доступа типа Full Control, то ключ не может быть возвращен первоначальному владельцу, а в журнале аудита появится соответствующее сообщение.
Аудит действий в отношении реестра
Чтобы установить аудит на действия в отношении реестра, необходимо выполнить следующие действия:
1. Активизировать в системе аудит и задать политику аудита на все события, которые, с вашей точки зрения, подлежат аудиту.
2. Указать пользователей и группы, за действиями которых в отношении выбранных ключей реестра требуется установить аудит. Воспользуйтесь для этого вкладкой
Auditing (Аудит) окна, показанного на рис. 24.7.
3. Результаты аудита можно просматривать в системном журнале Security с помощью оснастки
Event Viewer.
Чтобы иметь возможность выполнить любое из указанных выше действий, необходимо зарегистрироваться на компьютере с использованием учетной записи из группы Administrators. Политика аудита задается для каждого компьютера индивидуально. Прежде чем задавать политику аудита в отношении избранных ключей реестра, необходимо активизировать на компьютере аудит событий, имеющих отношение к системе безопасности.
Как минимум, при установке аудита необходимо выбрать опцию Failure (Отказ) для событий типа
File and Object Access. Если выбрать опцию Success (Успех), то в системном журнале может появиться большое количество записей, не имеющих большой практической значимости.
Команда Status Bar (Строка состояния) меню View (Вид) позволяет при желании отключить строку состояния. Поскольку строка состояния помогает быстрее ориентироваться в реестре, отображая путь к текущему ключу, ее рекомендуется постоянно держать включенной.
Опция Split (Разделить) перемещает курсор мыши на разделитель левой и правой частей окна
Registry Editor, после чего остается только переместить мышь влево или вправо, чтобы найти удобную позицию для разделителя, и выполнить щелчок левой кнопкой мыши.
Команда Display Binary Data (Вывод двоичных данных) из меню View, впервые появившаяся в Windows XP, становится доступной только после того, как вы выберете один из параметров реестра, отображаемых в правой панели окна
Registry Editor. Эта команда позволяет вам просматривать значение параметра, используя один из следующих трех форматов: Byte, Word или Dword (рис. 24.9). Обратите внимание, что эта команда не позволяет вам выполнять редактирование данных (если вам требуется выполнить именно эту операцию, следует выбрать команду
Modify Binary Data из меню Edit).
В меню View имеется еще одна команда — Refresh (Обновить). При внесении изменений в реестр не все они могут отображаться в окне редактора реестра немедленно после внесения модификации. Обновить окно
Registry Editor можно с помощью команды Refresh или нажатием клавиши <F5>.
Как правило, в Windows NT 4.0 многие изменения (в том числе и внесенные путем редактирования реестра) входят в силу только после перезагрузки системы. В Windows 2000 впервые (для операционных систем Windows NT) была введена полноценная поддержка Plug and Play, которая была расширена и усе- вершенствована в Windows XP и Windows Server 2003. Поэтому перезагрузок потребуется меньше. Тем не менее, ряд модификаций все же входят в силу только после перезагрузки операционной системы.
Рис. 24.9. Окно Binary Data позволяет просматривать значение выбранного параметра реестра в одном из трех возможных форматов —
Byte, Word или Dword
Одним из полезных новшеств, впервые появившихся в Windows 2000, является то, что пункт меню
Favorites (Избранное) присутствует теперь повсюду, и редактор реестра Regedit.exe — не исключение (рис. 24.10).
Все, кто часто выполняет поиск ключей и значимых элементов в реестре, а также интенсивно занимается его редактированием, по достоинству оценят эту удобную функциональную возможность. С помощью меню
Favorites можно создать список наиболее часто редактируемых ключей реестра (и не повторять затем громоздкую процедуру поиска).
Чтобы добавить ключ реестра в список Favorites, проделайте следующее:
1. Выделите ключ реестра, который требуется добавить в список
Favorites.
2. В меню Favorites выберите команду Add to Favorites (Добавить в избранное).
3. В раскрывшемся диалоговом окне Add to Favorites (рис. 24.11) согласитесь с именем ключа, предложенным по умолчанию, или введите новое имя в поле Favorite name. Нажмите кнопку
ОК, и ключ появится в списке Favorites.
Теперь вы в любой момент сможете быстро перейти к нужному ключу, выбрав его имя из списка
Favorites. Удалить ключ реестра из списка Favorites очень просто — для этого достаточно выбрать в меню
Favorites команду Remove Favorite (Удалить из избранного), а затем в раскрывшемся диалоговом окне выделить ключ, который требуется удалить из списка
Favorites, и нажать кнопку ОК.
Рис. 24.10. С выходом Windows 2000 в Regedit появился пункт меню Favorites
Рис. 24.11. Диалоговое окно Add to Favorites
Прежде чем завершить эту главу примерами, позволяющими на практике освоить методы редактирования реестра, необходимо напомнить, что реестр является жизненно важным компонентом системы, и единственная ошибка
в его редактировании может привести к проблемам в работе с системой, включая и проблемы с загрузкой. Если реестр окажется поврежденным, а в вашем распоряжении не найдется работоспособной и пригодной к использованию резервной копии, то весьма высока вероятность того, что единственным методом решения возникшей проблемы будет переустановка операционной системы.
Таким образом, прежде чем начинать редактирование реестра, необходимо выполнить его резервное копирование. Windows XP и Windows Server 2003 предоставляют множество методов резервного копирования реестра, в том числе перечисленные ниже.
Экспорт ключа реестра, который вы собираетесь редактировать. Это простейший метод резервного копирования реестра, который рекомендуется выполнять в любом случае. Если внесенные вами изменения приведут к нежелательным эффектам, вы сможете быстро восстановить первоначальное состояние путем импорта этого файла в реестр.
System Restore — функция System Restore создает точки восстановления, фактически представляющие собой "моментальные снимки" системной конфигурации, которая включает в себя и данные реестра. Перед внесением любых серьезных изменений в конфигурацию системы (включая и непосредственное редактирование реестра) рекомендуется вручную создать точку восстановления, которая позволит выполнить быстрое восстановление системы в случае возникновения неполадок и проблем с загрузкой. Что особенно важно, System Restore может применяться как при нормальном режиме загрузки, так и в безопасном режиме (safe mode). Следует, однако, отметить, что данная функция имеется только в Windows XP.
Процедура автоматического восстановления поврежденной системы (Automated System Recovery, ASR). Никогда не пренебрегайте подготовкой к процедуре ASR перед внесением серьезных изменений в конфигурацию системы. Процедуры подготовки и выполнения ASR были подробно рассмотрены в главе 23 "Восстановление системы".
Резервное копирование системных конфигурационных данных (System State). Подобно предыдущим двум опциям, этот вариант резервного копирования реестра подробно рассматривался в главе 23. Здесь же стоит отметить один факт, весьма важный с точки зрения резервного копирования и восстановления реестра, а именно: при выполнении резервного копирования системных конфигурационных данных система сохраняет резервные копии файлов реестра в каталоге %SystemRoot%\repair. Если ульи реестра получат повреждения, то вы можете воспользоваться этими резервными копиями для восстановления системы, не прибегая к громоздкой процедуре переустановки системы и последующего восстановления системных конфигурационных данных. Однако пользоваться этим методом могут только опытные пользователи, которые отлично понимают, что именно они делают.
Ручное резервное копирование реестра. Чтобы выполнить ручное резервное копирование и восстановление реестра Windows NT/2000/XP или Windows Server 2003, скопируйте на съемный носитель следующие файлы, хранящиеся в каталоге %SystemRoot%\system32\config:
Appevent.evt
Secevent.evt
Sysevent.evt
Default
Security
System
Default.log
Security.log
System.alt*
Default.sav
Software
System.log
Sam
Software.log
System.sav
Sam.log
Software.sav
Userdiff
* Файл, присутствующий только в Windows NT/2000.
Использование этого метода резервного копирования и восстановления реестра сопряжено с некоторыми сложностями. Так, весьма логично было бы использовать для резервного копирования дискету емкостью 1,44 Мбайт, но отнюдь не всегда ее объема хватит для копирования всех файлов. Далее, если раздел, на котором установлена поврежденная копия Windows XP или Windows Server 2003, отформатирован для использования NTFS, то вы столкнетесь с некоторыми трудностями при загрузке с дискет MS-DOS или Windows 9x/ME (хотя эта трудность легко преодолима, если вы воспользуетесь утилитой NTFSDOS, которую можно загрузить, посетив сайт http://www.sysinternals/com). Помимо этого, в данной ситуации могут помочь загрузочная дискета Windows Server 2003, параллельная установка операционной системы, а также Recovery Console.
Теперь, после рассмотрения общих концепций реестра и его усовершенствований, введенных с выходом Windows XP и Windows Server 2003, средств и методов его редактирования, резервного копирования и восстановления, рассмотрим пару примеров настройки и конфигурирования Windows, а также решения проблем и устранения неполадок с помощью редактирования реестра. Цель этих примеров — продемонстрировать на практике методы модификации системного реестра, рассмотренные в предыдущих разделах данной главы.
Стоит также отметить, что некоторые из приведенных методов специфичны для Windows Server 2003, в то время как некоторые другие применимы также и к Windows NT/2000.
Параметр | Значение |
ASR error file* |
%SystemRoot%\repair\asr.err |
ASR log file* |
%SystemRootf%\repair\asr.log |
Catalog database* |
%SystemRoot%\sysiem32\CatRoot2\ * /s |
Client Side Cache |
%SystemRoot%\csc\* /s |
ComPlus |
%SystemRoot/%\Registration\*.crrnlog /s |
Digital Rights Management (DRM) folder* |
%SystemDrive%\Documer\te and SettingsW/ l/sers\DRM\* /s |
Internet Explorer |
%UserProfile%\mdex.dai /s |
Memory Page File |
\Pagefile.sys |
Microsoft Writer (Bootable state)* |
%SystemRoot%\Registration\*.clb \ *. crmlog /s |
Microsoft Writer (Service state)* |
%SystemRoot%\system32\NtmsData\* |
MS Distributed Transaction |
%SystemRoot%\system32\DTCLog\MSDTC.LOG |
Netlogon* |
%SystemRoot%\netlogon.chg |
NTDS** |
%SystemRoot%\NTDS\* |
NtFrs |
%SystemRoot%\ntf rs\jet\* /s %SystemRoot%\debug\NtFrs* %SystemRoot%\sysvol\domain \DO_NOT_REMOVE_NtFrs_Prelnstall_Directory\*/s %SystemRoot%\sysvol\domain \NtFrs_PreExisting __ See_EventLog\* /s %SystemRoot%\sysvol\staging\domain\NTFRS_* |
Power Management |
\hiberfil.sys |
Registry Writer** |
%SystemRoot%\system32\NtmsData\* |
Task Scheduler** |
%SystemRoot%\Jasks\sc hed Ig u . txt |
Temporary Files |
%TEMP%\* /s |
VSS Default Provider* |
\System Volume lnformation\*{3808876B-C176-4e48-B7AE-04046E6CC752} /s |
VSS Service Alternate DB** |
\System Volume lnformation\*.{7cc467ef-6865-4831-853f-2a4817fd1bca}ALT |
VSS Service DB** |
\System Volume lnformation\*.{7cc467ef-6865-4831-853f-2a4817fd1bca}DB |
Winlogon debug** |
%W//VD/R%\debug\* |
Параметр |
Значение |
Active Directory Restore |
CurrentControlSet\Services\NTDS\Restore In Progress \CurrentControlSet\Services\NTDS\Parameters \New Database QUID |
ASR Information |
CurrentControlSet\Control\ASR\ |
Fault Tolerance |
Disk\ |
Installed Services |
CurrentControlSet\Services\* |
LDM Boot Information |
CurrentControlSet\Services\dmio\boot info\ |
LDM Boot Information (dmboot) |
CurrentControlSet\Services\dmboot\ |
Mount Manager |
Мои nted Devices\ |
NtFrs |
CurrentControlSet\Services\NtFrs\Parameters\Backup/Re store\Process at Startup\ |
Pending Rename Operations |
CurrentControlSet\Control\Session Man-ager\PendingFileRenameOperations |
Plug and Play |
CurrentControlSet\Enum\CurrentControlSet \Control\CriticalDeviceDatabase\ |
Removable Storage Manager |
CurrenlControlSet\Control\NTMS\lrnporlDatabase |
Session Manager |
CurrentControlSet\Control\Session |
Windows Setup |
Setup\SystemPartition |