Введение в реестр
Введение в реестр |
Содержание | |
Что такое реестр 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 содержит все активные загруженные параметры пользователя. Он имеет не менее трёх ключей:
дополнительный подраздел, который имеет имя в соответствии с security ID> текущего пользователя (описание SID см. ниже). Этот подключ реестра содержит конфигурацию текущего пользователя. Если пользователь вошёл удалённо, данные для конфигурации пользователя сохраняются в системном реестре местного компьютера. Данные из HKEY_USERS\%SID% также появляются в HKCU.
дополнительный подраздел, который имеет имя в соответствии с SID текущего пользователя с суффиксом Classes. Этот раздел содержит классы текущего пользователя. Данные в HKEY_USERS\%SID%_Classes также содержатся в HKCR.
подраздел DEFAULT, где хранится используемая конфигурация, когда ни один из пользователей ещё не вошёл в компьютер. То есть мы ещё видим приглашение на вход в систему.
В 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" =- Помните, что прежде, чем проводить какие-либо манипуляции с реестром вручную, рекомендуется сделать резервную копию. |