Глава 14. Работа с системным реестром

Глава 14. Работа с системным реестром

1. Обзорная информация по реестру Windows NT/2000

 

Глава 14

Работа с системным реестром

Реестр операционной системы Windows 2000 представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам AUTOEXEC.BAT и CONFIG.SYS, которые использовались ранее. Реестр содержит информацию обо всех аппаратных средствах, программном обеспечении, операционной системе и сетевых параметрах компьютера. Эта сложная иерархическая база данных принимает участие во всех аспектах работы Windows 2000. Хорошее понимание принципов работы реестра, выполняемых им задач, а также умение манипулировать реестром необходимо всем: системным и сетевым администраторам, специалистам из групп технической поддержки, а также опытным пользователям из числа программистов. Кроме того, для системных администраторов особенно важны вопросы администрирования и защиты реестра, а также его резервного копирования и восстановления.

В данной главе будут рассмотрены следующие темы:

Обзорная информация по реестру Windows 2000
Краткий обзор иерархической структуры реестра
Администрирование реестра и средства его редактирования
Резервное копирование и восстановление реестра

 

Обзорная информация по реестру Windows NT/2000

Как было показано в главе 2, реестр становится необходимым уже на начальных этапах загрузки Windows NT/2000. Проблемы при загрузке могут быть вызваны, в том числе, и повреждением реестра. Например, многие пользователи 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. Select 'r' at the first screen to repair.

Появление такого сообщения свидетельствует об отсутствии или повреждении важной части реестра Windows NT/2000 — файла куста (hive) разделов реестра SYSTEM (речь о принципах хранения реестра пойдет далее в этой главе). Приведенный пример убедительно демонстрирует, что единственная ошибка в системном реестре может не только повлиять на всю конфигурацию, но и сделать невозможным запуск операционной системы. Помимо этого, добиться корректной работы некоторых приложений можно также лишь через редактирование реестра. Таким образом, важность навыка редактирования реестра нельзя недооценивать.

 

2. Назначение реестра

 

Назначение реестра

Реестр пришел на смену конфигурационным файлам (INI-файлам) и призван был снять неудобства и ограничения, связанные с их использованием. В виде, более или менее напоминающем его нынешнюю структуру, реестр появился в Windows NT 3.5 (тогда он имел 4 корневых раздела: HKEY_ LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT и HKEY_USERS). Новый компонент операционной системы был предназначен для того, чтобы заменить собой многочисленные инициализационные и установочные файлы, разбросанные по" различным каталогам на жестком диске и сетевом сервере. Эти файлы требовались для обеспечения корректной работы операционной системы, приложений и аппаратных устройств, но управление ими было задачей сложной, трудоемкой и неудобной. Реестр как централизованная база данных представляет собой источник конфигурационной информации, где все параметры сведены воедино, что обеспечивает возможность эффективного управления средой Windows NT/2000. Перечисление компонентов системы Windows NT/2000, использующих реестр, и краткое описание их взаимодействия с этой базой данных приведено ниже:

Программы установки (Setup). Каждый раз при запуске программы установки Windows 2000 или других установочных программ (для аппаратных и программных средств) программа. Setup добавляет в реестр новые конфигурационные данные. Начиная свою работу, все грамотно разработанные программы установки считывают информацию реестра, чтобы определить, присутствуют ли в системе компоненты, обязательные для

успешного завершения установки. Наконец, централизованный реестр позволяет приложениям совместно использовать конфигурационную информацию и предоставляет им больше возможностей взаимодействия между собой. Чтобы приложение могло получить статус "Designed for Windows 2000", оно должно активно и правильно использовать реестр, а также содержать утилиту, позволяющую корректно выполнить удаление этого приложения (uninstall utility), не удаляя компонентов, которые могут использоваться другими программами (.DLL, .OCX, и т. д.). Эта утилита использует информацию, хранящуюся в реестре.

Распознаватель (Recognizer). Каждый раз при запуске компьютера под управлением Windows NT/2000 распознаватель аппаратных средств (Hardware Recognizer) помещает в реестр список обнаруженных им устройств. На компьютерах с процессорами Intel распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром Windows NT/2000 (Ntoskrnl.exe).
Ядро Windows NT/2000 (Windows NT/2000 Kernel). При старте системы ядро Windows NT/2000 извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (примером такой информации может служить, например, номер версии).
Драйверы устройств. Драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Эти данные аналогичны строкам device=, которые можно найти в файле Config.sys для запуска компьютера под управлением MS-DOS. Драйвер устройства должен сообщить об используемых им системных ресурсах, включая аппаратные прерывания и каналы DMA, чтобы система могла включить эти данные в реестр. Приложения и драйверы устройств могут считывать эту информацию реестра, предоставляя пользователям интеллектуальные программы инсталляции и конфигурирования.
Административные средства Windows 2000. Административные средства Windows 2000, в том числе утилиты панели управления и оснастки, собранные в группу Администрирование (Administrative Tools), представляют собой наиболее удобные и безопасные средства модификации реестра. Редакторы реестра, рассмотрению которых посвящен отдельный раздел данной главы, также полезны для его просмотра и, время от времени, для внесения изменений в конфигурацию системы.
Пользовательские профили (user profiles). Windows NT/2000 обеспечивает возможность создания множества пользовательских профилей. Вся информация, относящаяся к конкретному пользовательскому имени и ассоциированным с ним правам, хранится в реестре. Более подробная информация о пользовательских профилях будет приведена далее в этой главе, здесь же отметим, что пользовательский, профиль определяет индивидуальные параметры настройки дисплея, параметры сетевых соединений, принтеры и многое другое. Пользовательские профили бывают следующих типов: локальные (local user profile), создаваемые автоматически при первой регистрации пользователя на локальном компьютере, перемещаемые (roaming user profile), создаваемые администратором и хранящиеся на сервере, и обязательные (mandatory user profile)'— перемещаемые профили, обязательные для применения. Информация о пользовательских профилях также хранится в реестре.
Аппаратные профили (hardware profiles). Реестр, в отличие от INI-файлов, позволяет хранить множественные аппаратные конфигурации. Так, например, можно создать профили для док-станций (что актуально для пользователей портативных компьютеров), а также профили для съемных устройств. Аппаратный профиль представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. В процессе установки Windows 2000 создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере на момент инсталляции.

 

3. Структура реестра

 

Структура реестра

Реестр Windows 2000 состоит из пяти так называемых корневых разделов (root keys):

HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_ MACHINE, HKEY_USERS и HKEY_CURRENT_CONFIG.

Каждый раздел может содержать элементы данных, которые называются параметрами (value entries), а также вложенные разделы (subkeys). Для понимания этой концепции можно провести аналогию с файловой системой. Разделы в структуре реестра аналогичны каталогам, а значимые элементы — файлам. Рис. 14.1 иллюстрирует иерархическую структуру реестра Windows 2000. Все имена корневых разделов начинаются со строки HKEY_, что указывает разработчикам программного обеспечения на то, что это — дескриптор, который может использоваться программой. Дескриптор (handle) — это значение, используемое для уникального описания ресурса, к которому программа может получить доступ. Описания корневых разделов реестра Windows NT/2000 приведены в табл. 1.4.1.

Таблица 14.1. Корневые разделы реестра

Имя корневого раздела

Описание

HKEY_LOCAL_MACHINE

Содержит глобальную информацию о компьютерной системе, включая такие данные об аппаратных средствах и операционной системе, в том числе: тип шины, системная память, драйверы устройств и управляющие данные, используемые при запуске системы. Информация, содержащаяся в этом разделе, действует применительно ко веем пользователям, регистрирующимся в системе Windows NT/2000. На верхнем уровне иерархии реестра для этого раздела имеются три псевдонима: HKEY CLASSES ROOT, HKEY CURRENT CONFIG и HKEY_DYN_DATA

 

HKEY_CLASSES_ROOT

Содержит ассоциации между приложениями и типами файлов (по расширениям имени файла). Кроме того, этот раздел содержит информацию OLE (Object Linking and Embedding), ассоциированную с объектами COM, а также данные по ассоциациям файлов и классов (эквивалент реестра ранних версий. Windows, служивших настройкой над MS-DOS). Параметры этого раздела совпадают с параметрами, расположенными в разделе HKEY_LOCAL_MACHINE\Software\Classes. Подробную информацию о разделе HKEY_CLASSES_ ROOT можно найти в руководстве OLE Programmer's Reference, входящем в состав продукта Windows NT 4.0 Software Development Kit (SDK)

HKEY_CURRENT_CONFIG

Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили представляют собой наборы изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную данными разделов Software и System корневого раздела HKEY_LOCAL_MACHINE. В разделе HKEY_CURRENT_ CONFIG отражаются только изменения. Кроме того, параметры этого раздела появляются также в разделе HKEY_LOCAL_MACHINE\System \CurentControlSet\HardwareProfites\CuiTent

HKEY_CURRENT_USER

Содержит, профиль пользователя, на данный момент . зарегистрировавшегося в системе, включая переменные окружения, настройку рабочего стола, параметры настройки сети, принтеров и приложений. Этот раздел представляет собой ссылку на раздел HKEY USERS\username, где username — имя пользователя, зарегистрировавшегося в системе на текущий момент

HKEY_USERS

Содержит все активно загруженные пользовательские профили, включая HKEY_CURRENT_USER, а также профиль по умолчанию. Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся в этом разделе; их профили загружаются в реестры на их собственных компьютерах. Windows NT/2000 требует наличия учетных записей для каждого пользователя, регистрирующегося в системе. Раздел HKEY_USERS содержит вложенный раздел \Default, а также другие разделы, определяемые идентификатором безопасности (Security ID) каждого пользователя

 

 

Рис. 14.1. Реестр имеет иерархическую структуру, и его разделы могут содержать вложенные разделы и параметры

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

В табл. 14.2 перечислены, типы данных, определенные и используемые в системе.

Таблица 14.2. Типы данных для параметров реестра

Тип данных

Описание

REG_BINARY

Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате

REG_DWORD

Данные представлены в виде значения, длина которого составляет 4 байта. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать эти данные в двоичном, шестнадцатеричном и десятичном формате

REG_EXPAND_SZ

Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения

REG_MULTI_SZ

Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL

REG.SZ

Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных

 

1.gif

Изображение: 

4. Хранение данных реестра

 

Хранение данных реестра

В Windows NT/2000 элементы реестра хранятся в виде атомарной структуры. Реестр подразделяется на составные части, которые разработчики этой операционной системы назвали кустами, или ульями (hives) по аналогии с ячеистой структурой пчелиного улья. Куст представляет собой дискретную совокупность разделов, вложенных разделов и параметров, берущую начало в вершине иерархии реестра. Отличие кустов от других групп разделов состоит в том, что они являются постоянными компонентами реестра. Кусты не создаются динамически при загрузке операционной системы и не удаляются при ее остановке. Таким образом, раздел HKEY_LOCAL_MACHINE \Hardware, который строится динамически распознавателем аппаратных средств при запуске Windows NT/2000, кустом не является. Данные кустов реестра хранятся в файлах, находящихся в каталогах %SystemRoot%\System32\Conue и %SystemRoot%\Proules\\Jsername (Windows NT 4.0) и %SystemRoot%\System32\Cohue и %SystemDrive%\Documents and Settings\Username (Windows 2000).

Каждый куст реестра Windows NT/2000 ассоциирован с набором стандартных файлов), В табл. 14.3 перечислены стандартные кусты реестра Windows NT/2000 и поддерживающие их файлы.

Таблица 14.3. Стандартные файлы, обеспечивающие поддержку кустов реестра Windows NT

Ветвь реестра

Имена файлов

HKEY_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.bg

HKEY_CURRENT_USER

Ntuser.dat, Ntuser.dat.log

Все файлы кустов реестра, за исключением HKEY_CURRENT_USER, находятся в подкаталоге %SystemRoot%\System32\Conug.

Поддержку куста HKEY_CURRENT_USER выполняют файлы Ntuser.dat и Ntuser.dat.log. В файлах Ntuser.dat хранятся пользовательские профили; файл Ntuser.dat.log отслеживает изменения, которые вносились в файл Ntuser.dat. В Windows NT 4.0 эти файлы располагаются во всех подкаталогах каталога %SystemRoot%\Profiles (за исключением подкаталога \All Users). В Windows 2000 эти файлы располагаются в каталогах % SystemDrive %\Documents and\Settings \%Usemame%.

Файлы Ntuser и Userdiff были впервые введены в Windows NT 4.0:

файл Ntuser.dat, в котором хранится пользовательский профиль, заменил собой файлы usemamexxx и adminxxx из предыдущих версий Windows NT;
файл Ntuser.dat из каталога %SystemRoot%\Proules\Defa.u\t\Jser заменил собой файл Userdef из предыдущих версий Windows NT. Этот профиль используется для построения куста HKEY_CURRENT_USER, когда новый пользователь впервые регистрируется в системе;
файлы Userdiff, которые находятся только в каталоге %SystemRoot% \System32\Config, не ассоциируются ни с одним кустом. Они служат для обновления существующих профилей пользователей, использовавшихся в предыдущих версиях Windows NT, таким образом, чтобы эти профили могли применяться в Windows NT 4.6 и последующих версиях (Windows 2000).

С кустами ассоциируются файлы четырех типов. Все эти типы файлов (с соответствующими расширениями имен файлов) перечислены в табл. 14.4.

Таблица 14.4. Типы файлов, ассоциированных с кустами реестра Windows NT 4.0/Windows 2000

Тип файла

Описание

Без расширения имени файла

Содержит копию куста

alt

Содержит резервную копию жизненно важного куста HKEY_LOCAL_MACHINE\System. Только раздел System имеет соответствующий файл с расширением alt

log

Содержит журнал транзакций, в котором регистрируются все изменения, внесенные в разделы и значимые элементы куста

sav

Содержит копии файлов куста в том виде, который они имели на момент завершения текстовой фазы процесса установки. Файлы с расширением sav имеются для разделов Software, System, SAM, Security и Default.

Windows NT/2000 выполняет резервное копирование содержимого кустов в процессе инсталляции. Процедура инсталляции состоит из двух стадий: стадии текстового режима и стадии графического режима. Когда установка в текстовом режиме завершается, выполняется копирование кустов в файлы с расширением sav. Это делается для того, чтобы защитить кусты от ошибок, которые могут произойти в случае сбоя на графической стадии установки. Если процедура установки даст сбой на графической стадии, то после перезагрузки компьютера будет производиться повтор только графической стадии установки. Sav-файлы используются для перестройки кустов реестра

 

5. Ограничение по размеру реестра

 

Ограничение по размеру реестра

В Windows NT 4.0/Windows 2000 существует возможность установить ограничение на размер, до которого может разрастаться реестр. Чтобы установить ограничение на размер реестра Windows 2000, проделайте следующее:

1. Вызовите утилиту Система (System) панели управления.
2. В окне Свойства системы (System Properties) перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Параметры быстродействия (Performance Options). В появившемся окне нажмите кнопку Изменить (Change) в группе опций Виртуальная память (Virtual Memory). На экране появится диалоговое окно Виртуальная память, показанное на рис. 14.2, где в группе Размер системного реестра (Registry size) имеется поле Максимальный размер (МБ) (Maximum registry size (MB)). В этом поле можно задать максимально допустимый размер реестра.

Данные реестра, загруженные в память, хранятся в нерезидентном пуле (paged pool), который представляет собой область физической памяти, используемую для хранения данных, которые могут быть сброшены на диск в том случае, когда они долго не используются. Целью установки этого ограничения является предотвращение такой ситуации, когда реестр займет все пространство, необходимое для работы процессов.

Рис. 14.2. Установка ограничения на размер реестра в Windows 2000

 

14.1.gif

Изображение: 

6. Администрирование и поддержка реестра

 

Администрирование и поддержка реестра

Непосредственное редактирование реестра, даже в тех случаях, когда оно необходимо, при неумелом выполнении может привести к большим неприятностям. Поэтому, если вы чувствуете себя неуверенно или просто не можете позволить себе затратить значительное время для проведения восстановительных работ, не ставьте смелых экспериментов над реестром своей операционной системы (будь то Windows NT 4.0 или Windows 2000). Вполне возможно, что единственная ошибка приведет к необходимости переустановки операционной системы.

Предупреждение

Для выполнения задач по конфигурированию системы, по мере возможности, рекомендуется использовать административные утилиты, так как их применение всегда предпочтительнее непосредственного редактирования реестра. Этот метод намного безопаснее, поскольку административные средства не позволяют сохранять в реестре некорректные значения. Если в процессе редактирования реестра с помощью одного из редакторов реестра будет допущена

ошибка, редактор сохранит некорректное значение, а вы не получите даже предупреждения, так как редакторы реестра не распознают и не исправляют такие ошибки.

 

7. Использование редакторов реестра

 

Использование редакторов реестра

Все современные операционные системы из семейства Windows — Windows 95/98, Windows NT 4.0 и Windows 2000 — имеют в своем составе утилиты, предназначенные для просмотра и редактирования реестра, так называемые редакторы реестра. В Windows NT/2000 существует два таких редактора. Традиционная программа редактирования реестра Windows NT носит название Regedt32.exe. Эта программа наследуется от предыдущих версий Windows NT и позволяет редактировать реестр Windows NT/2000 методами, которые не поддерживаются в Windows 95/98. Более новая программа, Regedit.exe, была первоначально написана для Windows 95. Она обладает многими из возможностей Regedt32.exe и снабжена интерфейсом Windows Explorer. Версия Regedit, которая имеется в составе Windows NT/2000, почти полностью идентична аналогичному приложению, имеющемуся в составе Windows 95/98.

 

8. Программа Regedit в Windows 2000

 

Программа Regedit в Windows 2000

Как уже упоминалось, программа Regedit.exe, имеющаяся в составе Windows 2000, почти ничем не отличается от аналогичных программ из состава Windows 95/98 и Windows NT 4.0. Именно поэтому авторы и возьмут на себя смелость отослать читателей, заинтересованных в описании интерфейса этой программы, к специальной литературе, посвященной реестру Windows 95/98 или Windows NT 4.0 (как правило, в любом издании о реестре имеется целая глава, подробно описывающая интерфейс редактора реестра Regedit). Исключение будет сделано только для новой функции Regedit — меню Избранное (Favorites).

Меню Избранное. Хотя программа Regedit в Windows 2000 и очень похожа на свои предыдущие версии, в ней появилось полезное новшество. В Windows 2000 меню Избранное присутствует во многих системных программах, и редактор реестра Regedit — не исключение (рис. 14.3).

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

Чтобы добавить раздел реестра в список Избранное, проделайте следующее:

1. Выделите раздел реестра, который требуется добавить в список Избранное.
2. В меню Избранное выберите команду Добавить в избранное (Add to Favorites).
3. В раскрывшемся диалоговом окне Добавить в избранное согласитесь с именем раздела, предложенным по умолчанию, или введите новое имя в поле Имя для избранного раздела (Favorite name). Нажмите кнопку ОК, и раздел появится в списке Избранное.

 

Рис. 14.3. В новой версии Regedit появился пункт меню Избранное (Favorites)

Теперь вы в любой момент сможете быстро перейти к нужному разделу, выбрав его имя из списка Избранное. Удалить раздел реестра из списка очень просто — для этого достаточно выбрать из меню Избранное команду Удалить из избранного (Remove Favorite), а затем в раскрывшемся диалоговом окне выбрать удаляемый раздел и нажать кнопку ОК.

 

2.gif

Изображение: 

9. Использование Regedt32

 

Использование Regedt32

Редактор реестра Regedt32, который существует только в Windows NT/2000, имеет интерфейс, абсолютно отличный от интерфейса Regedit. Для каждого из корневых разделов реестра этот редактор открывает отдельное окно (рис. 14.4).

Каждое из окон Regedt32 содержит две панели, но новые возможности, заложенные в Regedit, включая контекстное меню, выводимое по нажатию правой кнопки мыши, отсутствуют. Тем не менее, несмотря на не столь удобный интерфейс и отсутствие некоторых возможностей, делающих Regedit более удобным в использовании, Regedt32 обладает и рядом пре имуществ. Так, хотя доступ к опциям может осуществляться только через меню, сам набор опций является существенно более широким, нежели доступный в Regedit. Одним из преимуществ Regedt32 можно назвать возможность использования этой программы в режиме "только для чтения". Этот режим позволяет защитить реестр от случайных непреднамеренных изменений в процессе его просмотра и знакомства с его структурой. Чтобы перейти в данный режим, выберите опцию Только чтение (Read Only Mode) из меню Параметры (Options). Наличие этой опции делает Regedt32 предпочтительным средством, с помощью которого новички могут знакомиться со структурой реестра.

Рис. 14.4. В отличий от интерфейса Regedit, разработанного по образу и подобию интерфейса Explorer, интерфейс Regedt32 напоминает интерфейс Windows 3.x File Manager

 

3.gif

Изображение: 

10. Манипулирование реестрами и разделами с помощью Regedt32

 

Манипулирование реестрами и разделами с помощью Regedt32

Базовые команды, позволяющие выполнять манипуляции над реестром, можно найти в меню Реестр (Registry).

Ниже приведено краткое описание каждой из команд, доступных в этом меню:

Открыть локальный (Open Local) — эта команда позволяет открыть файлы кустов реестра на локальном компьютере (данное действие выполняется по умолчанию при запуске Regedt32).
Закрыть (Close) — эта команда позволяет закрыть окна активного реестра. Если вы одновременно открыли несколько реестров или имеете несколько представлений одного и того же реестра, то эта команда закроет все окна (каждое из которых соответствует улью), относящиеся к окну, раскрытому на текущий момент.
Загрузит, куст (Load Hive) — данная команда позволяет загрузить в реестр ранее сохраненный файл куста. Данная опция влияет только на разделы HKEY_USERS и HKEY_LOCAL_MACHINE. Эта команда меню будет активна только в тех случаях, если выбраны указанные выше разделы, а во всех остальных случаях она будет недоступна. После того как куст будет загружен в реестр, он станет подразделом одного из указанных выше разделов.
Выгрузить куст (Unload Hive) — с помощью этой команды куст можно выгрузить из реестра. Перед выполнением данной команды куст необходимо сохранить с тем, чтобы впоследствии его можно было восстановить.
Восстановить (Restore) т эта команда используется для восстановления информации из ранее сохраненного файла. При этом информация, содержащаяся в разделах и подразделах выбранного куста, будет переписана.
Сохранить раздел (Save Key) — эта команда применяется для сохранения выбранного раздела в файле (данный файл не является файлом формата ASCII)

 

Примечание

Не путайте файлы кустов, которые вы создаете с помощью команды Сохранить раздел, с файлами кустов, созданными системой для внутреннего использования. Файлы системных кустов на удаленном компьютере обычно хоанятся в каталогах %SystefnRoof%\System32\Config и могут загружаться и восстанавливаться только тогда, когда удаленный компьютер работает под управлением другой операционной системы (не Windows NT420QO).

 

Выбрать компьютер (Select Computer) - эта команда используется для того, чтобы открыть реестр на удаленном компьютере Windows NT/2000 Редактор реестра можно использовать для просмотра и редактирования содержимого реестра удаленного компьютера (если на этом компьютере работает сервис Сервер (Server)). При получении доступа к реестрам удаленных систем можно просматривать только ветви HKEY_IJSERS и HKEY_LOCAL_MACHINE. Вы сможете просматривать и редактировать информацию разделов реестра на удаленном компьютере, если установленные для этого реестра права доступа позволяют выполнять такие операции.
Печатать ветви ;(Рrint Subtree) --как следует из названия этой команды она применяется для распечатки выбранного поддерева.
Сохранить ветвь как (Save Subtree As) — эта команда предназначена для сохранения целых кустбв или выбранных поддеревьев в виде текстовых файлов. Несмотря на то, что эти файлы представляют собой файлы формата ASCII, они отличаются от REG-файлов, получаемых с помощью приложения Regedit. Формат файлов, сохраняемых командой Regedt32 Сохранить ветвь как, отличается от формата файлов, сохраняемых Regedit, хотя и те и другие файлы представляют собой текст ASCII.

 

11. Модификация разделов и параметров

 

Модификация разделов и параметров

Меню Правка (Edit) программы Regedt32 содержит команды, позволяющие добавлять, модифицировать и удалять разделы и значимые элементы реестра.

Для добавления нового раздела в любой куст реестра следует выбрать команду Добавить раздел (Add Key) меню Правка. При выполнении этой команды вам предлагается ввести имя раздела и класс (класс в данном случае относится к типу данных). Диалоговое окно для ввода этой информации показано на рис. 14.5. Списка, из которого можно выбрать тип данных, в этом диалоговом окне не приводится, но предоставляется возможность создать раздел, а тип данных определить при вводе нового параметра в состав созданного раздела.

Рис. 14.5. Диалоговое окно Добавление раздела (Add Key), открываемое при создании нового раздела с помощью Regedt32

Команда Добавить раздел используется для добавления значимых элементов в состав разделов реестра. Раскрывающееся при выполнении этой команды диалоговое окно (рис. 14.6) содержит список, позволяющий выбрать тип данных для значимого элемента: строковые значения (REG_SZ, REG_ MULTI_SZ и REG_EXPAND_SZ) или двоичные значения (REG_DWORD или REG_BINARY).

Рис. 14.6. Диалоговое окно Добавление параметра (Add Value) позволяет добавлять новые значимые элементы в состав разделов реестра

Чтобы удалить из реестра раздел или значимый элемент, выделите объект (раздел или значимый элемент), намеченный для удаления, и выберите команду Удалить (Delete) меню Правка. Вам будет предложено подтвердить свое намерение удалить выбранный раздел или значимый элемент.

Примечание

Как уже неоднократно повторялось, редакторы реестра не поддерживают операций отмены (Undo), поэтому после подтверждения операции удаления в вашем распоряжении не будет никакого другого способа восстановить удаленную информацию, кроме ее восстановления по предварительно созданной резервной копии. Помимо этого, редактор реестра предлагает подтвердить операцию удаления, только если в меню Параметры установлена опция Подтверждение удаления (Confirm On Delete). Поэтому, решившись на удаление разделов из реестра, не пренебрегайте резервным копированием (и не ищите себе лишних задач при уже существующем решении).

Если вы случайно удалите что-либо из раздела реестра HKEY_LOCAL_ MACHINE\System\CurrentControlSet, помните о возможности восстановления содержимого этого раздела с помощью последней успешно загруженной конфигурации (см. главы 2 и 8). Для выполнения этой операции перезагрузите компьютер и сразу же после появления меню загрузчика нажмите клавишу <F8>, а затем выберите из отладочного меню опцию Загрузка последней удачной конфигурации (Last Known Good).

Помимо команд удаления элементов реестра и добавления в его состав новых разделов и параметров, в меню Правка редактора Regedt32 имеется набор команд для редактирования существующих элементов реестра (и следует отметить, что этот набор опций гораздо шире, нежели тот, который предоставляется более новой программой Regedit). Меню Правка редактора реестра Regedt32 содержит команды Двоичные данные (Binary), Строка (String), Двойное слово (DWORD) и Многострочные (Multi String). Выбор каждой из команд запускает редактор значений соответствующего типа — например, выбор команды Двоичные данные запускает редактор двоичных значений — Binary Editor, выбор команды Двойное слово — редактор значений типа DWORD, а выбор команд Строка и Многострочные вызывает соответствую щие редакторы строковых и многострочных значений. Обратите внимание, что таких широких возможностей в редакторе Regedit просто нет.

 

14.2.gif

Изображение: 

14.3.gif

Изображение: 

12. Управление безопасностью

 

Управление безопасностью

Редактор Regedt32, в отличие от Regedit, позволяет обеспечить безопасность реестра. Функции защиты реестра и установки аудита на доступ к реестру устанавливаются при помощи функций меню Безопасность (Security) редактор Regedt32.

Установка прав доступа к разделам реестра. Команда Разрешения (Permissions) из меню Безопасность используется для просмотра и установления

прав доступа к разделам реестра. Права доступа к разделам реестра можно назначать вне зависимости от типа файловой системы на разделе, где содержатся файлы Windows NT/2000.

Предупреждение

Изменение прав доступа к разделу реестра может иметь серьезные последствия. Например, если вы установите права доступа типа запретить полный доступ или запретить чтение (No Access) на раздел, необходимый для конфигурирования сети с помощью опции Сеть и удаленный доступ к сети из панели управления, то эта опция работать не будет. Права полного доступа (Full Access) к разделам реестра должны иметь, как минимум, члены группы Администраторы и сама операционная система (System). Такая установка прав доступа позволяет гарантировать возможность восстановления раздела реестра администратором при запуске системы.

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

Примечание

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

В Regedt32 команды из меню Безопасность по назначению разделам реестра прав владельца и прав доступа работают по такому же принципу, как и аналогичные команды Проводника по установке прав доступа к файлам и каталогам на разделах NTFS (используется обычный редактор списков управления доступом, ACL). Чтобы установить права доступа к конкретному разделу реестра проделайте следующее:

1. Перед внесением изменений выполните резервное копирование тех разделов реестра, на которые будут устанавливаться права доступа.
2. Выделите раздел, на который собираетесь установить права доступа. После этого выберите команду Разрешения меню Безопасность.
3. В открывшемся диалоговом окне Разрешения для (Permissions for) (рис. 14.7) установите нужные права доступа, выбрав флажки в поле Разрешения (Permissions). Права доступа, которые можно установить, перечислены в табл. 14.5.

Таблица 14.5. Права Доступа к разделам реестра

Тип доступа

Описание

Чтение (Read)

Позволяет пользователям, внесенным в список, просматривать содержимое раздела реестра, не позволяя сохранять изменения

Полный доступ (Full Control)

Позволяет пользователям, внесенным в список, получать доступ к разделу, редактировать его содержимое и изменять к нему уровень прав доступа

 

Рис. 14.7. Диалоговое окно Разрешения для (Permissions for)

Можно также установить аудит на доступ к реестру.

При нажатии кнопки Дополнительно (Advanced) раскрывается диалоговое окно Параметры управления доступом (Access Control Settings), в котором можно установить более "тонкие" разрешения для отдельных пользователей или групп, включить аудит и сменить владельца выбранного раздела реестра.

Чтобы выбрать особые разрешения для некоторого пользователя или группы, нужно в окне Параметры управления доступом выделить нужную строку в списке Элементы разрешении (Permissions Entry) и нажать кнопку Показать/Изменить (View/Edit). Появится окно, где можно выбрать требуемые разрешения, устанавливая или сбрасывая соответствующие флажки (рис. 14.8).

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

описание этих флажков и устанавливаемых с их помощью прав приведены в табл. 14.6.

Рис. 14.8. Диалоговое окно Эл емент разрешения для (Permission Entry for) позволяет установить индивидуальный набор прав доступа к разделу реестра, назначаемых конкретному пользователю или группе

Таблица 14.6. Флажки диалогового окна Элемент разрешения для

Флажок

Назначаемые права

Запрос значения

(Query Value)

Дает право чтения значимых элементов из раздела реестра

Задание значения

(Set Value)

Дает право модифицировать значимый элемент в разделе реестра

Создание подраздела (Create Subkey)

Дает право создавать подразделы в выбранном разделе реестра

Перечисление подразделов (Enumerate Subkey)

Дает право идентифицировать подразделы выбранного раздела реестра

Уведомление (Notify)

Дает право установить аудит на разделы реестра

Создание связи

(Create Link)

Дает право создавать символические ссылки в конкретном подразделе реестра

Удаление (Delete)

Дает право удаления выделенного раздела

Запись DAC

(Write DAC)

Дает право получать доступ к разделу и создавать/модифицировать для него Список управления доступом (Access Control List, ACL)

Смена владельца

(Write Owner)

Дает право присвоения прав владельца данного раздела

Чтение разрешений

(Read Control)

Дает право просматривать параметры безопасности, установленные для данного раздела

Как системный администратор, вы можете присвоить себе права владельца на раздел реестра и ограничить доступ, к этому разделу. Чтобы присвоить себе права владельца на раздел реестра, выберите в окне Параметры управления доступом вкладку Владелец (Owner), в поле Изменить владельца на (Change owner to) укажите нужного пользователя или группу и нажмите кнопку Применить (Apply).

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

Аудит действий в отношении реестра. Чтобы установить аудит на действия в отношении реестра, необходимо выполнить следующие действия:

С помощью оснастки Групповая политика (Group Policy) активизировать в системе политику аудита — аудит доступа к объектам.
Указать пользователей и группы, за действиями которых в отношении выбранных разделов реестра требуется установить аудит. Воспользуйтесь для этого вкладкой Аудит (Auditing) в окне Параметры управления доступом редактора реестра Regedt32.
Результаты аудита просматривайте в Журнале безопасности (Security log) с помощью оснастки Просмотр событий (Event Viewer).

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

Примечание

Если при установке аудита выбрать опцию Успех (Success) для событий доступа к объектам, то в системном журнале может появляться большое количество записей, не имеющих большой практической значимости. Поэтому нужно либо выбрать опцию Отказ (Failure), либо регистрировать успешные попытки выполнения отдельных критических операций типа изменения значения параметра, удаления/добавления разделов и т. п.

 

14.4.gif

Изображение: 

14.5.gif

Изображение: 

13. Резервное копирование и восстановление реестра

 

Резервное копирование и восстановление реестра

Как уже упоминалось в главе 2, реестр Windows 2000 представляет собой один из жизненно важных компонентов операционной системы, необходимый, в том числе, и при ее загрузке. Именно поэтому при подготовке процедур восстановления системы после сбоев нельзя недооценивать важность роли резервного копирования и восстановления системного реестра. Эту процедуру можно выполнить следующими способами:

Резервное копирование и восстановление реестра осуществляются, в том числе, и при выполнении рассмотренных ранее процедур резервного копирования и восстановления системных данных (System State data).
Резервное копирование реестра может выполняться при изготовлении диска аварийного восстановления (ERD). Для этого при создании ERD необходимо установить флажок Архивировать реестр в папку восстановления (Also backup the registry to the repair directory). Резервное копирование реестра будет произведено в папку %SystemRoot%\Kpair. Процедура аварийного восстановления будет использовать информацию из этой папки, поэтому никогда не следует ни удалять, ни модифицировать ее содержимое.
Резервное копирование и восстановление реестра Windows 2000 может быть выполнено с помощью утилиты Reg, включенной в состав программных продуктов Windows 2000 Resource Kit.
Наконец, резервное копирование и восстановление реестра можно выполнять путем экспорта/импорта реестра с помощью команд Импорт файла реестра (Import Registry File) и Экспорт файла реестра (Export Registry File) программы Regedit или даже вручную.

Процедуры резервного копирования и восстановления системных конфигурационных данных (System State data), а также процедуры изготовления и использования диска аварийного восстановления (ERD), были подробно рассмотрены в главе 8. Однако в ряде случаев вам могут весьма пригодиться альтернативные методы резервного копирования и восстановления реестра, которые и будет рассмотрены в последующих нескольких разделах.

 

14. Импорт и экспорт файлов кустов реестра

 

Импорт и экспорт файлов кустов реестра

Программа Regedit позволяет экспортировать весь реестр целиком или отдельные его разделы. Экспорт может производиться на любое устройство, имеющееся в локальной системе.

Примечание Совет

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

Экспортированный файл реестра представляет собой обычный текст в формате ASCII, который можно читать и редактировать при помощи любого текстового редактора.

Экспорт всего реестра или отдельных его разделов представляет собой простейший способ резервного копирования реестра перед тем, как выполнять над ним какие бы то ни было операции. Если в реестр внесены некорректные изменения, можно импортировать в его состав предварительно экспортированный файл, и изменения будут отменены.

Чтобы восстановить разделы реестра с помощью Regedit, выберите из меню Реестр команду Импорт файла реестра.

Примечание

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

Ниже приведен ряд рекомендаций, по работе с функциями импорта и экспорта реестра:

Если функции импорта и экспорта используются для резервного копирования реестра, то простого импорта реестра в файл на локальном жестком диске недостаточно для полной уверенности в том, что в случае неполадок поврежденный реестр будет-восстановлен. Скопируйте экспортированные файлы реестра на съемный носитель или сетевой диск.
Перед тем как завершить операцию экспорта (нажатием кнопки Сохранить), убедитесь в том, что вы экспортируете именно нужный диапазон разделов. Если установлен переключатель Весь реестра (АН), то будет экспортирован весь реестр. При установленном переключателе Выбранная ветвь (Selected branch) будет экспортирован раздел, имя которого указано в расположенном ниже поле.
Соблюдайте осторожность, работая с экспортированными файлами реестра. Не пытайтесь импортировать несовместимые файлы реестра (например, не следует импортировать в реестр Windows NT 5.0 файлы реестра, экспортированные из Windows NT 4.0 или 3.51 и обратно; и уж тем'более ни к чему хорошему не приведет импорт в Windows NT файлов реестра

Windows 95/98). Скорее всего, в процессе импорта произойдет ошибка, и если процедура импорта до появления ошибки успела записать в реестр некорректные параметры (а это произойдет в большинстве случаев), то нормально работать после этого вы сможете только до первой перезагрузки.

Избегайте выполнять двойной щелчок мышью, указывая при этом на экспортированный файл реестра, происхождение которого является для вас неясным. Файлы реестра по умолчанию имеют расширение reg, которое ассоциировано с приложением Regedit. Если такие действия проделать по отношению к несовместимому файлу реестра, экспортированному из другой операционной системы, то его импорт начнется быстрее, чем вы успеете осознать свою ошибку.

 

Примечание

Будьте осторожны с REG-файлами! Дистрибутивы некоторых приложений включают такие файлы и используют их при инсталляции для установки необходимых параметров реестра. Не пренебрегайте мерами предосторожности! Если вы выполните двойной щелчок мышью, указав на файл с расширением гед, программа Regedit прочтет этот файл и вставит его содержимое в реестр. Если в реестре уже существовали такие же разделы, как в REG-файле, то они будут замещены новыми разделами из REG-файла. Прежде чем переносить содержимое REG-файла в реестр, прочтите его, например, с помощью редактора Notepad. В этом случае вы хотя бы будете знать, что вы добавили в свой реестр.

 

15. Использование утилиты Regedit

 

Использование утилиты Reg

Утилита Reg.exe, входящая в набор утилит Windows 2000 Support Tools, позволяет добавлять, редактировать, удалять и искать разделы и значимые элементы реестра, выполнять их резервное копирование и восстановление, а также выполнять над ними другие операции. Утилита Reg может использоваться из командной строки или применяться в командном файле. Она позволяет выполнять операции над реестрами как локального, так и удаленных компьютеров.

Утилита Reg реализует функциональные возможности следующих утилит для работы с реестром из предыдущих версий Resource Kit: REGCHG.EXE, REGDELEXE, REGDIR.EXE, REGREAD.EXE, REGSEC.EXE, RESTKEY.EXE, RREGCHG.EXE, и SAVEKEY.EXE. В Windows 2000 она замещает собой все эти утилиты.

Для резервного копирования и восстановления реестра используются следующие команды (типы операций) утилиты Reg:

REG SAVE и REG BACKUP

Эти команды копируют указанный элемент, раздел или куст реестра в указанный файл, очень полезны для резервного копирования частей реесгра перед внесением изменений. Команда reg save абсолютно идентична команде REG BACKUP.

Команда reg restore восстанавливает указанный значимый элемент, раздел или куст реестра из файла, созданного с помощью команд reg save или reg

BACKUP.

Команды reg save и reg backup поддерживают следующий синтаксис:

REG SAVE RegistryPath FileName [\\Machine] REG BACKUP RegistryPath FileName [\\Machine]

где:

RegistryPath — это путь к элементу или разделу реестра в формате

[ROOTKEY\]Key.

При этом параметр rootkey указывает корневой раздел реестра, который содержит раздел, подлежащий сохранению (по умолчанию этот параметр получает значение HKEY_LOCAL_MACHINE).

Корневой раздел реестра может указываться в сокращенном формате, с использованием одной из приведенных ниже аббревиатур:

HKEY_LOCAL_MACHINE - HKLM HKEY_CURRENT_USER - HKCU HKEY_CLASSES_ROOT - HKCR HKEY_CURRENT_CONFIGURATION - HKCC

Key — этот параметр указывает полный путь к разделу реестра, расположенному под корневым разделом, обозначенным параметром rootkey.

FileName — данный параметр указывает имя файла (без расширения), в котором должны быть сохранены данные реестра. (На локальном компьютере этот файл сохраняется в текущем каталоге. При работе с удаленными компьютерами данный файл сохраняется в каталоге Windows.)

Machine — этот параметр указывает имя удаленного компьютера (по умолчанию используется локальный компьютер). При указании имен удаленных компьютеров следует использовать имена UNC (например: \\STATION1).

Примечание

На удаленных компьютерах доступны только разделы HKLM и HKU.

Команда reg restore поддерживает следующий синтаксис:

REG RESTORE FileName KeyName [\\Machine]

где:

FileName — имя подлежащего восстановлению файла (без расширения). Файл, указанный этим параметром, должен быть создан командами reg save

ИЛИ REG BACKUP.

KeyName — имя раздела реестра в формате [ROOTKEY\]Key.

Key — полное имя раздела реестра, расположенного в разделе rootkey.

Machine — имя удаленного компьютера в формате ONC (по умолчанию будет использоваться локальный компьютер).

 

16. Ручное резервное копирование и восстановление реестра

 

Ручное резервное копирование и восстановление реестра

Если загрузочный диск Windows NT 4.0 или Windows 2000 отформатирован для использования файловой системы FAT, то резервное копирование реестра с легкостью можно выполнить вручную, загрузив компьютер под управлением другой операционной системы (например, MS-DOS) или Windows 95/98 (в системе с двойной загрузкой или просто с загрузочной дискеты). После этого процедура резервного копирования будет заключаться в обычном копировании файлов кустов реестра, которое может быть выполнено любым способом (из командной строки или с помощью Explorer).

Если загрузочный диск Windows NT 4.0 или Windows 2000 отформатирован для использования файловой системы NTFS, то применение данного метода резервного копирования и восстановления реестра будет затруднено (однако не так уж и невозможно, как утверждается в некоторых источниках). В тех случаях, когда загрузочный диск Windows NT 4.0 или Windows 2000 необходимо форматировать для NTFS (эти требования могут диктоваться правилами безопасности, принятыми на конкретном предприятии, или же необходимостью использования ряда программных продуктов, требующих установки на разделы NTFS), и при этом администратор не хочет отказываться от метода ручного резервного копирования реестра, рекомендуется установить на компьютер избыточную копию Windows NT 4.0 или Windows 2000. Этот совет представляет собой официальную рекомендацию Microsoft по повышению надежности системы, и фигурирует как в сопроводительной документации к программным продуктам из серии Windows NT/2000 Resource Kit, так и в статьях из Microsoft Knowledge Base.

Итак, чтобы выполнить ручное резервное копирование реестров Windows NT 4.0 или Windows 2000, скопируйте содержимое каталога %SystemRoot% \system32\config на другое устройство (носитель ZIP, перезаписываемый компакт-диск или любой другой носитель) — обычной дискеты для этой цели будет недостаточно.

Файлы, которые требуется скопировать из каталога %SystemRoot98\system32 \config, перечислены ниже:

Арр Event. Evt default

default.LOG default.sav

SAM SAMXOG

Sec Event. Evt

Software.LOG

SYSTEM.ALT

SECURITY

Software.sav

System.LOG

SECURITY.LOG

SysEvent.Evt

System.sav

Software

System

userdiff

Процедура восстановления реестра при помощи этого метода резервного копирования требует загрузки компьютера под управлением другой операционной системы. После загрузки компьютера файлы резервной копии следует скопировать обратно в папку %SystemRoot%\system32\conug.