Справочник Windows XP

       

Введение в реестр


Введение в реестр

Содержание
Что такое реестр Windows XP



Для начала определимся с терминологией. Эта важная часть нужна нам для того, чтобы лучше понимать друг друга. Реестр - это прежде всего основа операционной системы, огромная база данных настроек, хранящихся в папках %SystemRoot%\System32\Config и папке пользовательских профилей (Ntuser.dat). Без реестра Windows XP была бы просто набором программ, неспособных выполнить даже простейшие функции ОС. Все - даже мельчайшие детали конфигурационных данных - упаковано в реестре. Разобраться в реестре - задание не из легких, но это необходимо, если Вы желаете узнать ОС полностью, в большинстве случаев мало кто даже подозревает о существовании реестра. Итак,

реестр

или

системный реестр

- это база данных для хранения сведений о конфигурации компьютера и настроек операционной системы. Реестр содержит данные, к которым Windows XP постоянно обращается во время загрузки, работы и её завершения, а именно:

    профили всех пользователей, то есть их настройки;

    конфигурация оборудования, установленного в операционной системе. Я не пишу "установленного в компьютере", поскольку "железо" может быть, как говорится, "на борту", но не быть установленным в ОС, например, из-за устаревших драйверов.

    данные об установленных программах и типах документов, создаваемых каждой программой;

    свойства папок и значков программ;

    данные об используемых портах.

    Реестр имеет иерархическую древовидную структуру, состоящую из разделов, подразделов и ключей (параметров). Для работы с реестром используется простая и понятная утилита .

    Запретить запуск Regedit

    В разделе HKCU\SOFTWARE\Microsoft\ Windows\CurrentVerson\Policies\System добавить ключ DisableRegistryTools :dword= 0х00000001. Запуск редактора реестра будет запрещен, однако останется возможность вносить изменения с помощью программного обеспечения сторонних разработчиков и с помощью REG-файла.

    Разделы

    и

    подразделы

    - это, грубо говоря, папки в левом окне regedit'а.

    Ключ

    реестра или

    параметр

    - это некая переменная, которой присвоено определённое значение, проще говоря - это то, что мы видим в правом окне regedit'а.

    Куст

    (

    основной раздел

    ,

    стандартный раздел

    , в английской документации -

    улей

    , от англ. "hive") - это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра. По умолчанию большинство файлов кустов (Default, SAM, Security и System) сохраняются в папке %SystemRoot%\System32\Config.
    Папка %SystemRoot%\Profiles содержит профили (настройки) для каждого пользователя компьютера. Поскольку куст представляет собой файл, его можно перемещать из одной системы в другую. Для редактирования этого файла необходимо использовать редактор реестра. Важное замечание : Windows XP в отличие от своих предшественниц не имеет ограничения по размеру реестра.
    Реестр Windows XP состоит из следующих основных разделов :

Что такое реестр Windows XP ?

Раздел реестра

Краткое описание

HKEY_CLASSES_ROOT Это ссылка на раздел HKLM\Software\Classes. Хранящиеся здесь сведения обеспечивают запуск необходимой программы при открытии файла с помощью проводника. Этот раздел содержит связи между приложениями и типами файлов, а также информацию об OLE.
HKEY_CURRENT_USER Это ссылка на определённый подраздел HKEY_USERS. Настройки соответствуют текущему, активному пользователю, выполнившему вход в систему.
HKEY_LOCAL_MACHINE Раздел содержит настройки, относящиеся к вашему компьютеру и действительны для всех пользователей. Раздел содержит информацию об аппаратной конфигурации и установленном программном обеспечении.
HKEY_USERS Этот раздел содержит настройки для всех пользователей компьютера.
HKEY_CURRENT_CONFIG Это ссылка на: HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current. Раздел содержит сведения о настройках оборудования, используемом локальным компьютером при запуске системы, т.е. содержит информацию о текущей конфигурации.
<
Вышеуказанные основные стандартные разделы вы не сможете удалить или переименовать. Некоторые разделы реестра являются энергозависимыми (volatile) и не хранятся в каком-либо файле. Операционная система создает и управляет этими разделами полностью в памяти, поэтому они являются временными по своей природе. Система создает энергозависимые разделы каждый раз при начальной загрузке. Например, HKLM \HARDWARE - раздел реестра, который хранит информацию по физическим устройствам и назначенным им ресурсам. Назначение ресурса и аппаратное обнаружение происходят каждый раз при загрузке системы, поэтому логично, что эти данные не записываются на диск. Сердце системного реестра - это раздел HKLM \SYSTEM. Наибольший интерес для нас представляют ветви HKCU и HKLM, именно там хранятся настройки, изменения которых способно облагородить нашу операционную систему. Часто для обозначения основных разделов реестра пользуются сокращениями:


Разделреестра

Аббревиатура


HKEY_CLASSES_ROOT HKCR
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC

Раздел HKEY_USERS содержит все активные загруженные параметры пользователя. Он имеет не менее трёх ключей:

    подраздел DEFAULT, где хранится используемая конфигурация, когда ни один из пользователей ещё не вошёл в компьютер. То есть мы ещё видим приглашение на вход в систему.

  • дополнительный подраздел, который имеет имя в соответствии с security ID> текущего пользователя (описание SID см. ниже). Этот подключ реестра содержит конфигурацию текущего пользователя. Если пользователь вошёл удалённо, данные для конфигурации пользователя сохраняются в системном реестре местного компьютера. Данные из HKEY_USERS\%SID% также появляются в HKCU.

  • дополнительный подраздел, который имеет имя в соответствии с SID текущего пользователя с суффиксом Classes. Этот раздел содержит классы текущего пользователя. Данные в HKEY_USERS\%SID%_Classes также содержатся в HKCR.

В Windows XP конфигурация пользователя по умолчанию (default user profile) не хранится в системном реестре. Она находится на системном диске в файле \Documents and Settings\Default User\Ntuser.dat. Отметим, и это важно, что куст HKCU является ссылкой, линком на определённый подраздел куста HKEY_USERS. Это значит, что все изменения в разделах, подразделах и ключах куста HKCU автоматически тут же отображаются в определённом подразделе HKEY_USERS соответствующем активному пользователю. То есть пользователю, выполнившему процедуру входа.
В каком же именно разделе HKEY_USERS проводятся изменения? Для этого вы должны узнать свой SID. Тогда искомый раздел будет именоваться, например, так : HKEY_USERS\S-1-5-21-117609710-1606980848-839522115-500. Где цифровая часть, вместе с буквой "S", и есть SID.

Идентификатор безопасности

(

SID

,

security ID

)


- структура данных переменной длины, которая идентифицирует пользователя, группу или компьютер. Каждая учётная запись в сети имеет уникальный SID. Внутренние процессы в Windows обращаются к SID для получения учётной записи пользователя или имени группы. Откройте реестр HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList. Выберите SID и посмотрите ProfileImagePath. В конце строки найдете имя пользователя. Увидеть все SID, относящиеся к пользователям компьютера, вы можете раскрыв раздел HKEY_USERS. Но, в большинстве случаев, знать SID не обязательно. Отметим также, что HKLM\SYSTEM\CurrentControlSet это тоже ссылка, линк на один из пронумерованных подразделов с именами HKLM\SYSTEM\ControlSet00n, где n - номер. Подразделы ControlSet00n представляют собой наборы настроек для операционной системы Windows XP. Большинство систем имеет два пронумерованных управляющих набора, оригинал и резервную копию, которая использовалась при последнем успешном старте системы.
Операционная система Windows XP может обслуживать несколько таких наборов. Windows XP обслуживает резервные копии так, чтобы вы могли отменить изменения конфигурации, которые в противном случае могли бы препятствовать загрузке операционной системы. Windows XP хранит последний набор настроек, который был использован успешно, и настройки по умолчанию. Эти значения сохранены в подключе >Select. Имена параметров ключа Select соответственно: Current - текущие настройки и Default - настройки по умолчанию. Также обратите внимание на параметр LastKnownGood расположенный там же. При загрузке Windows XP вы можете выбрать пункт меню "Загрузка последней удачной конфигурации", а действительный номер набора загружаемых настроек будет определён именно этим параметром реестра. Все значения ключей реестра относятся к определённому типу.
Следующая таблица содержит типы данных, используемых в реестре Windows XP:


Тип данных



Краткое описание


REG_BINARY Двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
REG_DWORD Целые числа размером в 4 байта. Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах.
REG_EXPAND_SZ Строка данных переменной длины.
REG_MULTI_SZ Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.
REG_SZ Текстовая строка фиксированной длины.
REG_FULL_

RESOURCE_DESCRIPTOR
Последовательность вложенных массивов, разработанная для хранения списка ресурсов железа или драйверов.
<


Хранение реестра.


Элементы реестра хранятся в виде атомарной структуры. Реестр разделяется на составные части, называемые ульями (hives), или кустами. Ульи хранятся на диске в виде файлов. Некоторые ульи, такие, как HKLM\HARDWARE, не сохраняются в файлах, а создаются при каждой загрузке, то есть являются изменяемыми (vola-tile). При запуске системы реестр собирается из ульев в единую древовидную структуру с корневыми разделами. Перечислим ульи реестра и их местоположение на диске (для NT старше версии 4.0).

Улей

Расположение

HKLM\SYSTEM %SystemRoot%\system32\config\system
HKLM\SAM %SystemRoot%\system32\config\SAM
HKLM\SECURITY %SystemRoot%\system32\config\SECURITY
HKLM\SOFTWARE %SystemRoot%\system32\config\software
HKLM\HARDWARE Изменяемый улей
HKLM\SYSTEM\Clone Изменяемый улей
HKU\<SID_пользователя> %USERPROFILE%\ntuser.dat
HKU\<SID пользователя>Classes %USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
HKU\.DEFAULT %SystemRoot%\system32\config\default

Кроме этих файлов, есть ряд вспомогательных, со следующими расширениями:

• LOG — журнал транзакций, в котором регистрируются все изменения реестра.

• SAV — копии ульев в том виде, в котором они были после завершения текстовой фазы установки. Реестр является настоящей базой данных, поэтому в нем используется технология восстановления, похожая как в NTFS. Уже упомянутые LOG-файлы содержат журнал транзакций, который хранит все изменения. Благодаря этому реализуется атомарность реестра — то есть в данный момент времени в реестре могут быть либо старые значения, либо новые, даже после сбоя. Как видим, в отличие от NTFS, здесь обеспечивается сохранность не только структуры реестра, но и данных. К тому же, реестр поддерживает такие параметры NTFS, как управление избирательным доступом и аудит событий — система безопасности пронизывает всю NT.
ОС Windows XP и приложения помещают информацию в реестр ОС, что хорошо и плохо одновременно. Хорошо - потому что реестр представляет собой общую память для эффективного хранения информации. Плохо - потому что размеры реестра увеличиваются по мере того, как приложения и система сохраняют в системе все новую информацию. По мере этого процесса в реестре появляется огромное количество мусора, который необходимо и нелегко удалить.



Из каких файлов состоит реестр Windows XP ?


Итак, повторим, куст — это раздел реестра, отображаемый как файл на жестком диске. Имя используется для указания на ветвящуюся структуру.
Однако не вся информация из некоторых подразделов кустов хранится на диске, но об этом немного ниже.
А сейчас — вот они, файлы реестра Windows XP:

(имени файла соответствует куст реестра Windows XP)
По умолчанию почти все файлы кустов: Default, SAM, Security, Software и System, — сохраняются в папке
Папка %SystemRoot%\Profiles содержит настройки для каждого пользователя компьютера.
Если есть сомнения, то точный список файлов реестра Windows XP можно посмотреть здесь:
При начальной загрузке к этому разделу обращается Configuration Manager, чтобы проинициализировать все основные разделы реестра.

Имя файла Соответствующий  раздел реестра Windows XP
SAM HKEY_LOCAL_MACHINE\SAM
SECURITY HKEY_LOCAL_MACHINE\Security
Software HKEY_LOCAL_MACHINE\Software
System HKEY_LOCAL_MACHINE\System HKEY_CURRENT_CONFIG
Default HKEY_USERS\.DEFAULT
Файлы Ntuser.dat HKEY_CURRENT_USER

(эти файлы хранятся в С:\Documents and Settings\%UserName%)

Содержат конфигурацию для конкретного пользователя.


Структура reg-файла

Знание реестра Windows XP будет неполным без умения написать reg-файл.
REG-файл — это файл, имеющий определенную структуру и содержащий информацию, которая импортируется в реестр.
Для чего нужно это знать и уметь? Например, если была заблокирована работа с редактором реестра, а это можно сделать с помощью изменения ключей реестра, то наиболее легким способом исправить установки в реестре будет создание и импортирование reg-файла.
Первая строка reg-файла для Windows XP обязательно должна быть такой:

Windows Registry Editor Version 5.00
однако REGEDIT от Windows XP понимает и такое:

REGEDIT4
сохраняя тем самым совместимость снизу вверх. Обратите внимание на регистр букв. Кроме этого, в первой строке ничего быть не должно. После текста обязательно должна быть пустая строка.
Затем указывается раздел реестра, в котором надо прописать или изменить какие-то параметры. Название раздела должно быть заключено в квадратные скобки. Затем ниже прописываются параметры и значения по одному параметру в строке. Когда вы закончили описание параметров и их значений, то оставьте пустую строку и либо закончите файл, либо, если нужно, начинайте описание для следующего раздела.
Вот пример reg-файла:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\ SYSTEM\ Setup]

"SetupType"=dword:0

"SystemSetupInProgress"=dword:0

"CmdLine"=""

"SystemPrefix"=hex:cc,1b,00,00,00,40,3d,68

"SystemPartition"="\ \ Device\ \ HarddiskVo-lume1"

"OsLoaderPath"="\ \ "uniqueid"="C:\ \ WINDOWS\ \ LPM"

[HKEY_LOCAL_MACHINE\ SYSTEM\ Setup\ AllowStart]

{...описание параметров...}

Последнюю строку в файле сделайте пустой.
Как видим, строковые параметры заключаются в кавычки. Перед числами ставятся указатели на их тип. Например, dword — указывает на тип этого параметра, буквы должны быть обязательно маленькие. После двоеточия следует значение из восьми цифр в шестнадцатеричном формате. Однако большинство параметров dword имеют значение либо 0, либо 1. Пробелы в строке не допускаются.
В реестре существуют параметры "По умолчанию" (Default). Чтобы присвоить им какое-то значение через REG-файл, надо добавить такую строку:

@="какое-либо значение"

Regedit имеет некоторое множество опций командной строки, чтобы автоматизировать его использование в пакетных файлах. Ниже указаны некоторые из вариантов.
regedit.exe [options] [filename]

filename — импортируемый в реестр.reg файл

/s — подавлять запрос на подтверждение при импорте файла

/e — экспорт раздела реестра в файл.
Пример:

regedit /e file.reg HKEY_CURRENT_USER\ Software\ Microsoft

Довольно убого, не так ли? Но не все так плохо. Наберите в командной строке:

REG /?

и изучайте "Программу редактирования системного реестра из командной строки, версия 3.0". Я думаю, она вам понравится.

Удаление разделов и ключей реестра при помощи .reg-файла


Вы можете удалять разделы реестра и значения в разделах, не используя REGEDIT. Для удаления раздела используйте тот же самый формат reg-файла, только перед наименованием раздела поставьте знак "минус" ("-"). Например:

REGEDIT5

[-HKEY_LOCAL_MACHINE\ SYSTEM\ Test]

Этот же формат используйте для удаления отдельных параметров в выбранных разделах, поставив знак "минус" ("-") после знака "равно" ("="):

REGEDIT5

[HKEY_LOCAL_MACHINE\ SYSTEM\ Test]

"TestValue" =-

Помните, что прежде, чем проводить какие-либо манипуляции с реестром вручную, рекомендуется сделать резервную копию.
Содержание раздела