headermask image

Работа с системным реестром, часть 1

Как и в предыдущих версиях операционных систем из семейства 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. Select ‘r’ at the first screen to repair.

Аналогичное сообщение может появиться и в процессе работы с 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 иллюстрирует иерархическую структуру реестра.

reg1.jpg

Рис. 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).

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

reg2.jpg

Рис. 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

Постовой

Нет сил или времени написать работу сам, рекомендую заказать реферат  по разумным ценам

Print This Post Print This Post
Похожие посты
  • Работа в режиме хостинга Exchange 2010 SP1. Часть 1 – Установка
  • Работа в режиме хостинга Exchange 2010 SP1. Часть 4 – получение и отправка почты
  • Настройка SCCM 2007 SP1 в Windows Server 2008, часть 7
  • Работа в режиме хостинга Exchange 2010 SP1. Часть 3 – управление организацией
  • Установка SCCM 2007 sp1 в Windows Server 2008, часть 2
  • Трюки с реестром Windows. Часть 2
  • Работа в режиме хостинга Exchange 2010 SP1. Часть 2 – Создание и удаление организаций
  • Трюки с реестром Windows. Часть 1
  • Решение проблем с соединениями в сетях Windows (часть 5)
  • Работа с системным реестром, часть 3