Реестр в ОС Windows
СОДЕЖАНИЕ
ВВЕДЕНИЕ
. АНАЛИЗ
СОСТОЯНИЯ ВОПРОСА
1.1 Что такое
реестр
.2 Роль
реестра
.3 Реестр
Windows 3.1
.4 Реестр
Windows NT 3.1
1.5 Современный реестр
Windows7
.6 Архитектура реестра
.7 Структура реестра
2. ПОСТАНОВКА
ЗАДАЧИ
.
ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
3.1 Интерфейс
программы
.2
Структурная схема вызовов окон приложений
4. РЕАЛИЗАЦИЯ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
4.1
Физическая структура приложения
.2 Описание
стандартных методов использованных в при реализации приложения
.3 Описание
основных процедур и функции
5.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
5.1 Cоздание
нового раздела
.2 Добавление
новых ключей со значениями новых ключей
.3 Изменение
ключа
.4 Удаление
раздела со всеми ключами
.5 Результаты
тестирования
ВЫВОДЫ
СПИСОК
ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А
ВВЕДЕНИЕ
Во всех версиях Windows,
начиная с Windows 95, системный реестр является
центральным хранилищем всей конфигурационной информации, касающейся настройки Windows, пользовательских предпочтений, а
также установленного программного и аппаратного обеспечения. Поэтому есть
необходимость в создании системной утилиты работающей с системным реестром Windows. Данная утилита должна поддерживать
вывод ключей реестра, создание и удаление ключей, а также иметь возможность
изменения их.
В первом разделе рассказывается о системном реестре в целом. Описывается
его структура, роль и выполняемые им функции.
Во втором разделе была сформулирована задача, которую необходимо
реализовать в данном курсовом проекте.
В третьем и четвертом разделах рассмотрены основные моменты на этапах
проектирования и реализации программного обеспечения.
В пятом разделе производится тестирование программного продукта и его
сравнение со стандартной утилитой редактирования реестра Regedit.
К записке также прилагается листинг исполняемых модулей и графическая
часть.
Курсовой проект выполнен с учётом требований к содержанию и оформлению
курсового проекта [1], а также гостов на построение блок схем [2], [3].
1. АНАЛИЗ
СОСТОЯНИЯ ВОПРОСА
1.1
Что такое реестр
Словарь Microsoft Computer Dictionary дает такое определение Реестра:
Иерархически построенная, централизованная база данных в составе операционных
систем Microsoft Windows 9x/NT/2000/XP/2003/Vista/7, содержащая сведения,
которые используются операционной системой для работы с пользователями,
программными продуктами и устройствами.
В реестре хранятся данные, которые необходимы для правильного
функционирования Windows. К ним относятся профили всех пользователей, сведения
об установленном программном обеспечении и типах файлов, которые могут быть
созданы каждой программой, информация о свойствах папок и значках приложений, а
также установленном оборудовании и используемых портах.
Системный реестр заменяет собой большинство текстовых ini-файлов, которые
использовались в Windows 3.x, а также файлы конфигурации MS-DOS (например,
Autoexec.bat и Config.sys).
Версии реестра для разных версий операционных систем семейства Windows
имеют определенные различия.
Во время запуска операционной системы происходит до тысячи обращений к
Реестру, а во время работы на ПК в течение одного сеанса работы — до 10 тысяч.
Отдельные компоненты Реестра хранятся в оперативной памяти ПК в течение всего
сеанса работы.
Запись (считывание) информации в Реестр (из Реестра) происходит
постоянно: например, если мы устанавливаем какую-нибудь программу, вся
информация, необходимая для запуска и работы этой программы, записывается в
Реестр. Если мы устанавливаем новое устройство, в Реестре будет отмечено, где
находится его драйвер и т.д. Если же мы запускаем какую-либо программу или
устройство, то из Реестра считывается вся необходимая для запуска программы
(устройства) информация.
1.2
Роль реестра
Реестр можно рассматривать как записную книжку Windows — как только
системе нужна какая-то информация, то она ищет ее в реестре. Реестр очень
обширен и дать однозначное его определение невозможно. Приблизительно, Реестр —
компонент операционной системы компьютера, который в иерархической базе данных
хранит важнейшие установки и информацию о приложениях, системных операциях и
пользовательской конфигурации.
Реестр выполняет следующие основные функции:
) отслеживает все системные устройства и их установки, включая такие
ресурсы, как запросы на прерывания (IRQ) и номера каналов прямого доступа
памяти (DMA);
2) работает как база данных, которая унифицирует функционирование
приложений;
) проверяет наличие необходимых драйверов для инсталлируемого
оборудования. При добавлении нового периферийного устройства Диспетчер
конфигурации (Configuration manager) операционной системы помещает
конфигурационные данные устройства в реестр;
4) предоставляет системные сервисы, которые необходимы для работы
многих приложений;
5) обеспечивает запуск необходимого приложения при щелчке мышью;
6) сохраняет информацию, относящуюся к системным правилам, профилям
пользователей и средствам администрирования.
Реестр — это не статическая база данных, он постоянно работает и
постоянно обновляется. При запуске любой программы происходит множество
обращений к реестру, еще больше обращений происходит при запуске компьютера.
1.3
Реестр Windows 3.1
Сам реестр, как древовидная иерархическая база данных (registration
database — регистрационная база) впервые появился в Windows 3.1 (апрель 1992).
Это был всего один двоичный файл, который назывался REG.DAT и хранился в
каталоге C:\Windows\. Реестр Windows 3.1 имел только одну ветку
HKEY_CLASSES_ROOT. Он служил для связи DDE, а позднее и OLE объектов.
Одновременно c появлением реестра в Windows 3.1 появилась программа
REGEDIT.EXE для просмотра и редактирования реестра.
Первый реестр уже имел возможность импорта данных из *.REG файлов. В
базовой поставке шел файл SETUP.REG, содержащий данные по основным расширениям
и типам файлов.
Реестр Windows 3.1 имел ограничение на максимальный размер файла REG.DAT
— 64 Кбайт. Если вдруг реестр превышал этот размер — то файл реестра (REG.DAT)
приходилось удалять и собирать заново либо из *.REG файлов, либо вводить данные
вручную.
1.4
Реестр Windows NT 3.1
Следующий шаг сделан в Windows NT 3.1 (июль 1993). Произошёл отказ от
устаревших файлов MS-DOS: AUTOEXEC.BAT и CONFIG.SYS, а также от INI-файлов, как
от основных файлов конфигурации. На “регистрационную базу” (реестр) была
переведена вся конфигурация системы. Основой конфигурации системы стал реестр.
Он имел 4 корневых раздела: HKEY_LOCAL_MACHINE,
HKEY_CURRENT_USER, HKEY_CLASS-ES_ROOT и HKEY_USERS.
Реестр стал «сборным»: на диске он хранился в файлах: DEFAULT, SOFTWARE,
SYSTEM, а при запуске системы из этих файлов собиралась единая БД.
В комплекте поставки оставался файл REGEDIT.EXE, который по прежнему
позволял просматривать и редактировать только ветку HKEY_CLASSES_ROOT, и
появился файл REGEDT32.EXE, который позволял редактировать все ветки реестра.
Далее технология и идеология (назначение) реестра уже не менялись. Все
последующие версии Windows (NT 3.5, 95, NT 4.0, 98, 2000, XP, Vista, 7)
использовали реестр как основную БД, содержащую все основные данные по
конфигурации как самой ОС, так и прикладных программ. Далее менялось только
расположение и название файлов реестра, и название и назначение ключей.
1.5
Современный реестр Windows
Реестр в том виде, как его использует Windows и как видит его
пользователь в процессе использования программ работы с реестром, некоторым
образом «нигде не хранится», а формируется из различных данных. Чтобы
получилось то, что видит пользователь, редактируя реестр, происходит следующее.
Вначале, в процессе установки и настройки Windows, на диске формируются
файлы, в которых хранится часть данных относительно конфигурации системы.
Затем, в процессе каждой загрузки системы, а также в процессе каждого
входа и выхода каждого из пользователей, формируется некая виртуальная
сущность, называемая «реестром» — объект REGISTRY\. Данные для формирования
«реестра» частично берутся из тех самых файлов (Software, System …), частично
из информации, собранной ntdetect при загрузке (HKLM\Hardware\Description).
То есть часть данных реестра хранится в файлах, а часть данных
формируется в процессе загрузки Windows.
Для редактирования, просмотра и изучения реестра стандартными средствами
Windows (программы regedit.exe и regedt32.exe) доступны именно ветки реестра.
После редактирования реестра и/или внесения в него изменений эти изменения
сразу записываются в файлы.
Однако есть программы сторонних разработчиков, которые позволяют работать
непосредственно с файлами.
Программы оптимизации реестра, твикеры, а также инсталляторы и
деинсталляторы программ работают через специальные функции работы с реестром.
1.6
Архитектура реестра
Информация, хранящаяся в иерархической базе данных реестра, собрана в
разделы (key), которые содержат один или более
подразделов (subkey).
Возможность создавать вложенные подразделы позволяет группировать
параметры. В результате получается древовидная структура, которую можно
просмотреть в Редакторе реестра (Registry editor). Каждый
раздел (ветвь) соответствует определенному типу информации о пользователе,
аппаратном обеспечении, приложении и т.д.
1.7
Структура реестра
Реестр состоит из следующих разделов (ветвей):
1) HKEY_CURRENT_USER — данный раздел является корневым для данных
конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь
хранятся папки пользователя, цвета экрана и параметры панели управления. Эти
сведения сопоставлены с профилем пользователя. Вместо полного имени раздела
иногда используется аббревиатура HKCU;
2) HKEY_USERS — данный раздел содержит все
активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER
является подразделом раздела HKEY_USERS. Вместо полного имени раздела иногда
используется аббревиатура HKU;
4) HKEY_CLASSES_ROOT — является подразделом HKEY_LOCAL_MACHINE
\Software. Хранящиеся
здесь сведения обеспечивают выполнение необходимой программы при открытии файла
с использованием проводника. Вместо полного имени раздела иногда используется
аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в
HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER. Раздел HKEY_LOCAL_
MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко
всем пользователям локального компьютера. Параметры, содержащиеся в разделе
HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и
относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в
себя данные из обоих источников.
Кроме того, раздел HKEY_CLASSES_ROOT предоставляет эти объединенные
данные программам, разработанным для более ранних версий Windows. Изменения
настроек текущего пользователя выполняются в разделе
HKEY_CURRENT_USER\Software\Classes. Модификация параметров по умолчанию должна
производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes. Данные из разделов,
добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе
HKEY_LOCAL_MACHINE\Software\Classes. Если изменяется параметр в одном из
подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в
HKEY_CURRENT_USER\Software\Classes, то для хранения информации будет
использован раздел HKEY_CURRENT_USER\Software\Classes, а не
HKEY_LOCAL_MACHINE\Software \Classes;
5) HKEY_CURRENT_CONFIG — данный раздел содержит сведения о профиле
оборудования, используемом локальным компьютером при запуске системы.
2.
ПОСТАНОВКА ЗАДАЧИ
В соответствии с заданием курсового проекта, должна быть исследована
структура системного реестра и разработано программное обеспечение для
просмотра и изменения системного реестра.
Приложение должно обладать следующим функционалом:
) вывод всех веток реестра;
2) просмотр списка ключей для определенной директории реестра;
) добавление новых ключей со значениями разного типа;
) редактирование ключей;
) добавление новой папки (директории) в реестр;
) удаление определенной папки (директории) и ключа;
) вывод сведений о программе.
Приложение должно быть разработано для операционной системы Window 7 с помощью инструментального
средства Microsoft Visual Studio 2010, на основе интерфейса Windows Forms.
3.
ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
3.1
Интерфейс программы
Как известно, разрабатываемое приложение должно быть интуитивно понятным
для пользователей. Для этого, интерфейс программы должен быть спроектирован
наиболее простым и понятным способом. Для этого необходимо реализовать главное
меню, в котором будут реализованы операции добавления раздела и ключа,
изменение ключа, а также удаление раздела и ключа. Далее приведу примерное
изображение меню (см. рисунок 3.1.1):
Рисунок 3.1.1 — Примерное изображение основного меню
Операция создания нового ключа может создавать ключи как строчного типа,
так и DWORD типа. Для возможности выбора
определенного типа ключа было создано выпадающее меню для операции создания
ключа (см. рисунок 3.1.2):
Рисунок 3.1.2 — Примерное изображение выпадающего меню
Поскольку нам необходимо выводить все ветки реестра на форму, добавляем
элемент управления TreeView, в
котором будут отображаться все директории реестра. Для отображения имен и
значений ключей поместим на форму элемент DataGrid. В нем данные будут отображаться в
виде таблицы (см. рисунок 3.1.3):
Рисунок 3.1.3 — Примерное изображение таблицы
В итоге главное окно программы будет иметь следующий вид (см. рисунок
3.1.4):
Рисунок 3.1.4 — Главное окно программы
Для удобства использования программы все основные операции реализованы в
виде диалогов, ввиду их простоты и удобства, как создания, так и модифицирования.
Диалог добавления ключа должен иметь 2 элемента управления TextBox, в которые пользователь будет
вводить имя и значение ключа. Примерное изображение диалога добавления нового
ключа приведено на рисунке 3.1.5:
Рисунок 3.1.5 — Диалоговое окно добавления нового ключа
Также пользователь должен иметь возможность изменения имени и значения
определенного ключа. Для этого нужно будет выбрать необходимый ключ из таблицы
ключей и нажать пункт меню “Изменить”. В результате появится диалоговое окно
изменения ключа (см. рисунок 3.1.6):
Рисунок 3.1.6 — Примерное изображения диалога изменения ключа
После редактирования ключа, имя и значение в таблице должны обновиться
автоматически.
3.2
Структурная схема вызовов окон приложений
Данное приложение многооконное. Оно состоит из главного окна и 4
диалоговых. Каждый пункт меню главного окна вызывает свое собственное
диалоговое окно. Для конкретизации вызовов окон в приложении, приведу структурную
схему, изображённую на рисунке 3.2.1:
Рисунок 3.2.1 — Структурная схема вызовов окон
4.
РЕАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
4.1
Физическая структура приложения
Физическая структура данного приложения состоит из нескольких программных
модулей (см. рисунок 4.1.1):
Рисунок 4.1.1 — Изображение “Обозревателя решения”
Список основных модулей приложения и их описание:
1) Main.cs — главное окно приложения, содержит
код реализующий все обработчики событий и основные функции, а именно,
добавление ключей разного типа, создание и удаление разделов, изменение и
удаление ключей;
2) CreateDirForm.cs — диалоговое
окно добавления нового раздела, в коде которого хранится название нового
раздела, которое будет передано модулю Main.cs для создания и отображения нового
раздела;
) СreateStrRegForm.cs — диалоговое окно создания нового
строчного ключа, информация из которого будет передано в модуль Main.cs, где и будет произведено добавления нового ключа;
4) DwordRegForm.cs — окно создания
нового ключа со значением типа DWORD.
Принцип работы аналогичен с модулем добавления ключа со строчным значением;
5) EditRegForm.cs — диалог
редактирования имен и значений ключей. Исправленная информация будет передана в
модуль главного окна, где будут произведены изменения ключа.
4.2
Описание стандартных методов использованных при реализации приложения
Для реализации курсового проекта используется среда Microsoft Visio Studio 2010. Она имеет пользовательский интерфейс,
предоставляет удобные средства для написания программы. Необходимо отметить,
что данный программный продукт представляет собой довольно мощный инструмент
для разработки программ подобного типа.
Для того чтобы разобраться в реализации данного проекта приведу описание
используемых методов класса RegistyKey, предоставляемого программной платформой .NET Framework версии 4.0.
Для возвращения вложенного раздел с доступом только для чтения используем
метод OpenSubKey класса RegistryKey. Для использования этого класса
необходимо подключить пространство имен Microsoft.Win32.
Для создание нового вложенного раздела или открытия
существующего вложенного раздела, с доступом на чтение и запись вызываем метод CreateSubKey класса Registry.
Метод GetSubKeyNames класса RegistryKey возвращает массив строк, который
содержит все имена раздела.
Для установления значения пары “имя-значения” в разделе реестра используется метод SetValue класса RegistryKey.
Для удаления заданного значения из раздела используется метод
DeleteValue.
4.3
Описание основных процедур и функции
Основу грамотного функционирования приложения составляют процедуры и
функции, реализующие работу с реестром и отображающие результаты этой работы.
Основные функции, используемые при создании данного программного
обеспечения:
— private void FillNodes(RegistryKey reg, string[]
s, TreeNode tn) — процедура, выводящая на экран все директории реестра.
Блок-схема алгоритма работы данной процедуры приведен на листе 1 графической
части приложения Б;
— private RegistryKey FindReg(TreeNode tnC, RegistryKey rg, TreeNode tnS) — метод выполняющий поиск ключа. Данная функция
возвращает экземпляр класса RegistryKey. Блок-схема алгоритма работы данной функции приведен на листе 2
графической части приложения Б;
— private RegistryKey Findreg_by_path(TreeNode te) —
функция, выполняющая поиск ключа по пути;
private void FillGrid(string[] str, RegistryKey rg) — процедура,
которая заполняет таблицу именами и значениями ключей. Блок-схема алгоритма
работы данной процедуры приведен на листе 3 графической части приложения Б.
5.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Произведем тестирование разработанного программного обеспечения с целью
выявления ошибок и неполадок. Тестирование программы будет выполняется на
ноутбуке со следующей конфигурацией: Intel Core i7 2,2GHz, 4Gb DDR3, Windows Seven Ultimate.
Данное приложение разработано для операционных систем Windows XP/Vista/Seven. Для полного функционирования
данного программного обеспечения необходимо определенное программное окружение,
а именно, установленная программная платформа .NET Framework версии 4.0.
Для подтверждения работоспособности программы необходимо протестировать
использование все функции программы.
План тестирования:
1) создание нового раздела;
2) добавление новых ключей со значениями разного типа;
) изменение ключа;
) удаление раздела со всеми ключами.
На каждом этапе тестирования результаты программного обеспечения будут
сравниваться с результатами стандартной утилиты редактирования реестра Regedit, поставляемой с операционной
системой Windows Seven Ultimate.
5.1 Cоздание нового раздела
Создадим новый раздел “Тестирование” в ветке HKEY_CURRENT_USER и сравним с результатом работы
стандартной утилиты Regedit (см.
рисунок 5.1.1 и рисунок 5.1.2):
Рисунок 5.1.1 — Добавление нового раздела
Рисунок 5.1.2 — Вывод ветки HKEY_CURRENT_USER с помощью Regedit
Из рисунка 5.1.1 и рисунка 5.1.2 видно, что раздел создан успешно.
5.2 Добавление
новых ключей со значениями новых ключей
Далее создадим для раздела “Тестирование” ключ со строчным значением и со
значение DWORD типа (см. рисунок 5.2.1 и рисунок
5.2.2). Сверим с результатом утилиты Regedit (см. рисунок 5.2.3).
Рисунок 5.2.1 — Диалоговое окно создания нового ключа
Рисунок 5.2.2 — Создание новых ключей
Рисунок 5.2.3 — Результаты утилиты Regedit
Строчный ключ “Cтрока”
и ключ “DWORD” со значением типа DWORD созданы
успешно.
5.3
Изменение ключа
Изменим имя строчного ключа на “Строка(измененная)” для тестирования
операции изменения ключей (см. рисунок 5.3.1 и рисунок 5.3.2). И снова сравним
с результатом стандартной утилиты Regedit (см. рисунок 5.3.3).
Рисунок 5.3.1 — Диалоговое окго изменения ключа
Рисунок 5.3.2 — Значения ключей после изменения
Рисунок 5.3.3 — Результат работы стандартной утилиты Regedit
Название ключа изменилось с “Строка” на “Строка (измененная)” успешно.
5.4
Удаление раздела со всеми ключами
Удалим наш созданный раздел вместе со всеми ключами (см. рисунок 5.4.1 и
рисунок 5.4.2).
Рисунок 5.4.1 — Диалог подтверждения удаления
Рисунок 5.4.2 — Главное окно после удаления раздела “Тестирование”
Раздел “Тестирование” удален безвозвратно. Все ключи, входящие в этот
раздел также удалены.
5.5
Результаты тестирования
Результаты тестирования показали, что все функции программы работают
исправно. Сама программа работает стабильно, ошибки и сбой выявлены не были.
Данное программное обеспечение ничем не уступает стандартной утилите
редактирования реестра Regedit.
утилита
реестр windows интерфейс
ВЫВОДЫ
В ходе выполнения данной курсовой работы было разработано приложение,
демонстрирующее работу с системным реестром операционной системы Windows. Согласно результатам тестирования,
представленный программный продукт оказался устойчивым к возникновению
исключительных ситуаций.
Безусловно, спроектированное приложение демонстрирует не весь функционал
и потенциал системного реестра. Однако вполне способно найти себе применение
при конкретной модернизации. Например, может быть использовано пользователями
для удаления ненужной информации из системного реестра или для редактирования
её.
Также еще раз прекрасно себя показала программная платформа .NET Framework, используемая при создании данного
курсового проекта. На ней очень удобно создавать системные приложения, так как
она предоставляет большой инструментарий и легко понятную документацию для
работы с ним.
ПРИЛОЖЕНИЕ
А
ЛИСТИНГ ПРОГРАММЫ
Main.cs
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Microsoft.Win32;System.Security.AccessControl;
Курсач
{partial class Main : Form
{treen;[] reg = new RegistryKey[5];tempreg = null;isTreeClick
= false;rSec;dt;p, m;
public Main()
{[0] = Registry.CurrentUser;[1] = Registry.ClassesRoot;[2] =
Registry.LocalMachine;[3] = Registry.Users;[4] =
Registry.CurrentConfig;();.Nodes.Add(reg[0].Name);.Nodes.Add(reg[1].Name);.Nodes.Add(reg[2].Name);.Nodes.Add(reg[3].Name);.Nodes.Add(reg[4].Name);i
= 0;(TreeNode tn in treeView1.Nodes)
{[] str = reg[i].GetSubKeyNames();[] s;(int j = 0; j <
str.Length; j++).Nodes.Add(str[j]);
(TreeNode tnn in tn.Nodes)
{
{r = reg[i].OpenSubKey(tnn.Text);= r.GetSubKeyNames();
}(Exception) { continue; }
}++;
}.CollapseAll();= new
DataTable(«regtable»);.Columns.Add(«Имя»);.Columns.Add(«Значение»);.DataSource
= dt;.Columns[0].Width = 210;.Columns[1].Width = 350;
}
void FillNodes(RegistryKey reg, string[] s, TreeNode tn)
{[] ss;(s.Length != 0)
{(int k = 0; k < s.Length; k++).Nodes.Add(s[k]);(TreeNode
tt in tn.Nodes)
{
{rg = reg.OpenSubKey(tt.Text);= rg.GetSubKeyNames();
}(Exception) { continue; }
}
}
}RegistryKey Findreg_by_path(TreeNode te)
{s = te.FullPath;strtemp = null;rg = null;(s !=
«HKEY_CLASSES_ROOT» && s != «HKEY_CURRENT_USER»
&&!= «HKEY_LOCAL_MACHINE» && s !=
«HKEY_USERS» &&!= «HKEY_CURRENT_CONFIG»)
{i = 0;(s[i] != ‘\\’)
{+= s[i];++;
}(strtemp)
{«HKEY_CLASSES_ROOT»:= FindReg(treeView1.Nodes[1],
reg[1], te); break;»HKEY_CURRENT_USER»:= FindReg(treeView1.Nodes[0], reg[0],
te); break;»HKEY_LOCAL_MACHINE»:= FindReg(treeView1.Nodes[2], reg[2],
te); break;»HKEY_USERS»:= FindReg(treeView1.Nodes[3], reg[3], te);
break;»HKEY_CURRENT_CONFIG»:= FindReg(treeView1.Nodes[4], reg[4],
te); break;
}
}
{= s;(strtemp)
{«HKEY_CLASSES_ROOT»: return
Registry.ClassesRoot;»HKEY_CURRENT_USER»: return
Registry.CurrentUser;»HKEY_LOCAL_MACHINE»: return
Registry.LocalMachine;»HKEY_USERS»: return
Registry.Users;»HKEY_CURRENT_CONFIG»: { dt.Rows.Clear(); return
.CurrentConfig; }
}
}rg; }
RegistryKey FindReg(TreeNode tnC, RegistryKey rg, TreeNode
tnS)
{(tempreg != null) return tempreg;(TreeNode tn in tnC.Nodes)
{reg;{ reg = rg.OpenSubKey(tn.Text, true); }(Exception) {
continue; }(tn.FullPath == tnS.FullPath)
{ tempreg = reg; return tempreg; }if (tn.Nodes.Count != 0)
FindReg(tn, rg, tnS);
}tempreg;
{tempnd = e.Node; string[] str;regs;=
Findreg_by_path(tempnd);(regs!=null)
{(TreeNode tnn in tempnd.Nodes)
{
{.Nodes.Clear();treg = regs.OpenSubKey(tnn.Text);=
treg.GetSubKeyNames();(string ss in str)
{.Nodes.Add(ss);
}
}(Exception) { continue; }
}
} tempreg=null;
}
void treeView1_AfterSelect(object sender, TreeViewEventArgs
e)
{(e.Action == TreeViewAction.ByMouse)
{rg; treen = e.Node; string[] ses;.Rows.Clear();=
Findreg_by_path(treen);(rg != null)
{= rg.GetValueNames(); FillGrid(ses, rg);
}
} tempreg = null;
}
void FillGrid(string[] str, RegistryKey rg)
{dr = null;(int i = 0; i < str.Length; i++)
{= dt.NewRow(); dr[0] = str[i]; dr[1] =
rg.GetValue(str[i]);.Rows.Add(dr);
}.DataSource = dt;
}
void создатьРазделключToolStripMenuItem_Click(object sender,
e)
{AddNewDir = new
CreateDirForm();.ShowDialog();(!AddNewDir.Cancel)
{rpath = Findreg_by_path(treen);newKey =
AddNewDir.Name;.BeginUpdate();rg = rpath.CreateSubKey(newKey,
.ReadWriteSubTree);.Nodes.Add(newKey);.Refresh();.EndUpdate();
}
}
void удалитьToolStripMenuItem_Click_1(object sender,
EventArgs )
{(MessageBox.Show(«Вы действительно хотите удалить этот
(раздел)
ключ и все дополнительные ключи (разделы)»,
«Внимание», MessageBoxButtons.OKCancel,
MessageBoxIcon.Warning)
== DialogResult.OK)
{k_del = Findreg_by_path(treen);(isTreeClick)
{((k_del.Name != «HKEY_CURRENT_USER») ||
(k_del.Name !=
«HKEY_CLASSES_ROOT»)
|| (k_del.Name != «HKEY_LOCAL_MACHINE») ||
(k_del.Name !=
«HKEY_USERS») || (k_del.Name !=
«HKEY_CURRENT_CONFIG»))
{k_del2 = Findreg_by_path(treen.Parent);(k_del2.SubKeyCount
!= 0)_del2.DeleteSubKeyTree(treen.Text);_del.DeleteSubKeyTree(treen.Text);
}.SelectedNode.Remove();
}
{_del.DeleteValue((string)dataGridView1.CurrentRow.Cells[0].Value);.dataGridView1.CurrentRow.Cells[0].Value
= «»;.dataGridView1.CurrentRow.Cells[1].Value = «»;
}
}return;
}
void treeView1_Click(object sender, EventArgs e)
{= true;
}
void dataGridView1_Click(object sender, EventArgs e)
{= false;
}
void строковыйToolStripMenuItem_Click(object sender,
EventArgs )
{frm = new CreateStrRegForm();.ShowDialog();(!frm.Cancel)
{nm = frm.Name; string zn = frm.Znach;k_addStr = Findreg_by_path(treen);_addStr.SetValue(nm,
zn, RegistryValueKind.String);dr = dt.NewRow(); dr[0] = nm; dr[1] = zn;
dt.Rows.Add(dr);
}
}
void dWORDToolStripMenuItem_Click(object sender, EventArgs e)
{frm = new DwordRegForm();.ShowDialog();zn;(!frm.Cancel)
{= Convert.ToInt32(frm.Znach);nm = frm.Name;k_addQword =
Findreg_by_path(treen);_addQword.SetValue(nm, zn, RegistryValueKind.DWord);dr =
dt.NewRow(); dr[0] = nm; dr[1] = zn; dt.Rows.Add(dr);
}
}
void изменитьToolStripMenuItem_Click(object sender, EventArgs
)
{k_upd = Findreg_by_path(treen);frm = new EditRegForm();upd =
null;nname = null;.textBox1.Text =
(string)dataGridView1.CurrentRow.Cells[0].Value;.textBox2.Text =
(string)dataGridView1.CurrentRow.Cells[1].Value;.textBox2.Focus();
frm.textBox2.SelectAll();.ShowDialog();(!frm.Cancel)
{_upd.DeleteValue((string)dataGridView1.CurrentRow.Cells[0].Value);=
frm.Znach;= frm.Name;_upd.SetValue(nname, upd);.CurrentRow.Cells[0].Value =
nname;.CurrentRow.Cells[1].Value = upd;
}
}
void оПрограммеToolStripMenuItem1_Click(object sender, e)
{aboutForm = new About();.ShowDialog();
}
void выходToolStripMenuItem_Click(object sender, EventArgs e)
{.Close();
}
}
Обновлено: 09.10.2023
Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем семейства Microsoft Windows [2].
В реестре хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах [1].
Открытие реестра¶
Поскольку файлов в реестре несколько, его нельзя открыть, например, в текстовом редакторе и внести какие-либо коррективы. Для работы с ним требуется специальная программа – редактор реестра, который является встроенным компонентом операционной системы Windows и вызывается путем ввода команды Regedit [4].
Существует несколько способов открыть редактор реестра.
- Выбрать Пуск → Выполнить, либо нажать сочетание клавиш Win+R ( Win — клавиша, между Ctrl и Alt в нижнем ряду клавиатуры, обычно на ней изображен значок Microsoft Windows ;
- В открывшимся окне ввести команду regedit ;
- Нажать клавишу ОК .
- Открыть меню Пуск;
- Ввести в строке поиска regedit и запустить найденный файл, который отобразится в верхней части Пуска.
С другими способами можно ознакомиться в статье Три способа открыть редактор реестра Windows.
Структура реестра¶
Реестр имеет иерархическую структуру, которая напоминает файловую систему жесткого диска – с его каталогами, подкаталогами и файлами. Но называются элементы реестра по-другому: верхний уровень иерархии составляют разделы, каждый из которых может содержать вложенные подразделы, а также параметры. Именно в параметрах хранится основное содержимое реестра, разделы служат лишь для группировки схожих по назначению параметров [4].
Рис. 3 – Редактор реестра
Далее приведен краткий перечень и краткое описание стандартных разделов реестра. Максимальная длина имени раздела составляет 255 символов.
HKEY_CURRENT_USER
Данный раздел является корневым для данных конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU .
HKEY_USERS
Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER является подразделом раздела HKEY_USERS . Вместо полного имени раздела иногда используется аббревиатура HKU .
HKEY_LOCAL_MACHINE
Раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). Наиболее интересным является подраздел Software , который включает в себя настройки всех установленных в системе приложений. Вместо полного имени раздела иногда используется аббревиатура HKLM .
HKEY_CLASSES_ROOT
Является подразделом HKEY_LOCAL_MACHINE\Software . Хранящиеся здесь сведения обеспечивают выполнение необходимой программы при открытии файла с использованием проводника. Вместо полного имени раздела иногда используется аббревиатура HKCR . Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE , так и в HKEY_CURRENT_USER .
Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes , переопределяют принятые по умолчанию и относятся только к текущему пользователю.
Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT предоставляет эти объединенные данные программам, разработанным для более ранних версий Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes . Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes . Данные из разделов, добавленных в HKEY_CLASSES_ROOT , будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes . Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes , то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes , а не HKEY_LOCAL_MACHINE\Software\Classes .
HKEY_CURRENT_CONFIG
Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.
Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы. Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот. По умолчанию редактор реестра 64-разрядных версий Windows отображает 32-разрядные разделы в следующем узле: HKEY_LOCAL_MACHINE\Software\WOW6432Node
Файлы реестра на жестком диске¶
Основные файлы, отвечающие за формирование реестра хранятся в папке %SystemRoot%\System32\Config\ . Обычно это C:\Windows\System32\Config\ и в зависимости от версии ОС их состав может несколько различаться.
- C:\Documents and Settings\%Username%\(Ntuser.dat) ;
- C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Windows\ (UsrClass.dat) .
Еще есть резервные копии файлов реестра, созданные системой, хранятся они в
- C:\Windows\System32\config\RegBack – для Windows 7 и Server 2008;
- C:\Windows\repair – для XP и Server 2003.
По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.
Вспомогательные файлы для всех кустов за исключением HKEY_CURRENT_USER хранятся в системах Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista в папке %SystemRoot%\System32\Config .
Вспомогательные файлы для куста HKEY_CURRENT_USER хранятся в папке %SystemRoot%\Profiles\Имя_пользователя . Расширения имен файлов в этих папках указывают на тип содержащихся в них данных. Отсутствие расширения также иногда может указывать на тип содержащихся в файле данных.
Куст (дерево) реестра (англ. hive) — это группа разделов, подразделов и параметров реестра с набором вспомогательных файлов, содержащих резервные копии этих данных.
Таблица 1 — Соответствие кустов реестра и вспомогательных файлов ¶
Куст реестра | Вспомогательные файлы |
---|---|
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 , Ntuser.dat , Ntuser.dat.log |
HKEY_USERS\DEFAULT | Default , Default.log , Default.sav |
Например, кусту HKEY_LOCAL_MACHINE\Software соответствует на жестком диске файл C:\Windows\System32\config\SOFTWARE .
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой — мы готовы помочь.
Введение……………………………………………………………………………………………. 3
1. История системного реестра Windows . 4
2. Редактор реестра RegEdit.exe . 7
3. Структура системного реестра Windows . 9
4. Типы данных системного реестра Windows . 13
5. Расположение системного реестра Windows . 17
6. Структура reg -файлов в ОС семейства Windows . 22
Заключение……………………………………………………………………………………. 25
Библиографический список………………………………………………………………. 26
Согласно словарю Microsoft Computer Dictionary, реестр – это иерархически построенная, централизованная база данных в составе операционных систем Microsoft Windows 9x/NT/2000/XP/2003/Vista, содержащая сведения, которые используются операционной системой для работы с пользователями, программными продуктами и устройствами .
Системный реестр заменяет собой большинство текстовых ini-файлов, которые использовались в Windows 3.x, а также файлы конфигурации MS-DOS (например, Autoexec.bat и Config.sys).
В нем хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся:
· профили всех пользователей
· сведения об установленном программном обеспечении и типах файлов, которые могут быть созданы каждой программой
· информация о свойствах папок и значках приложений
· информация об установленном оборудовании и используемых портах.
Во время запуска операционной системы происходит до тысячи обращений к Реестру, а во время работы на ПК в течение одного сеанса работы – до 10 тысяч!
Отдельные компоненты Реестра хранятся в оперативной памяти ПК в течение всего сеанса работы.
Запись (считывание) информации в Реестр (из Реестра) происходит постоянно: например, если мы устанавливаем какую-нибудь программу, вся информация, необходимая для запуска и работы этой программы, записывается в Реестр. Если мы устанавливаем новое устройство, в Реестре будет отмечено, где находится его драйвер и т.д. Если же мы запускаем какую-либо программу или устройство, то из Реестра считывается вся необходимая для запуска программы (устройства) информация.
1.
История системного реестра
Windows
Первой операционной системой для персональных компьютеров от Microsoft была MS DOS. В этой операционной системе было два основных конфигурационных файла: config.sys и autoexec.bat. Первый содержал инструкции по загрузке драйверов и резидентных программ. В autoexec.bat указывались команды, которые выполнялись при загрузке DOS, например, устанавливались переменные окружения, вызывались оболочки вроде Norton Commander.
Кроме config.sys и autoexec.bat в MS DOS не было других конфигурационных файлов или реестра. Каждое приложение хранило свои настройки в отдельном файле, формат и местонахождение которого был известен только ему самому. У одних приложений конфигурационные файлы были текстовыми (их можно было редактировать вручную в текстовом редакторе), у других — двоичными (их можно было редактировать только с помощью самого приложения, которое «знало» формат файла).
DOS не устраивала пользователей своей однозадачностью и отсутствием дружественного интерфейса. Различные разработчики выпускали оболочки для DOS, облегчающие участь пользователя. Microsoft тоже не осталась в стороне, разработав оболочку Windows. Первые версии Windows вообще не заслуживали внимания. Более или менее удачной стала только третья версия Windows — Windows 3.0. Она все настройки хранила также в текстовом файле Win.ini – который содержал более 1000 строк. Для хранения настроек системы использовались INI-файлы, которые, однако, имели массу недостатков. Главным недостатком INI-файлов была, во-первых, плоская структура, в отличие от современного реестра Windows, имеющего иерархическую структуру. Во-вторых, INI-файлы были текстовыми, что затрудняло хранение в них двоичной информации. С другой стороны, это позволяло редактировать INI-файлы в любом текстовом редакторе, чего нельзя сделать с современным реестром. Нужно отметить также, что INI-файлы стали единым форматом для хранения настроек Windows-приложений. Ведь намного проще использовать уже известный формат и готовые API-функции для работы с ним, чем изобретать велосипед заново, придумывая собственный формат конфигурационных файлов. Некоторые программы до сих пор используют не реестр, а INI-файлы.
Технологический шаг в развитии реестра был сделан в Windows 3.1 (апрель 1992). Здесь впервые появился собственно реестр, как древовидная структура данных. Это был всего один файл, который назывался REG.DAT, хранился в каталоге C:\Windows\, имел только одну ветку HKEY_CLASSES_ROOT. Он служил для связи DDE ( Dynamic Data Exchange) , для хранения настроек механизма DDE ( Dynamic Data Exchange), а позднее OLE (Object Linking and Embedding) . Все остальные настройки системы по-прежнему хранились в INI-файлах.
Первый реестр имел ограничение на максимальный размер файла REG.DAT —64К. Если вдруг реестр превышал этот размер — то файл реестра (REG.DAT) приходилось удалять и собирать заново, либо из *.REG файлов, либо вводить данные вручную.
Поскольку реестр представлял собой двоичный файл, то тогда же появилась программа REGEDIT.EXE для его просмотра и редактирования.
Идеологический шаг был сделан в Windows NT 3.1 (июль 1993). Произошел отказ от файлов AUTOEXEC.BAT и CONFIG.SYS, а так же от INI-файлов, как от основных файлов конфигурации. Основой конфигурации системы стал реестр. Он имел 4 корневых раздела: HKEY _ LOCAL _ MACHINE , HKEY _ CURRENT _ USER , HKEY _ CLASSES _ ROOT и HKEY __ USERS .
Далее технология и идеология (назначение) реестра уже не менялись. Все последующие версии Windows использовали реестр как основную БД, содержащую все основные данные по конфигурации как самой ОС, так и прикладных программ. Версии реестра для разных версий операционных систем семейства Windows имеют определенные различия, связанные с
расположением и названием файлов реестра, и названием и назначением ключей.
Что такое реестр Windows?
Системный реестр, или реестр Windows – это база данных для хранения настроек операционной системы, установленных программ, параметров пользователя и оборудования, кроме того, в реестре хранится информация об устройствах компьютера (конфигурации).
То есть, это место, где хранится большинство настроек, вашего ПК.
Пример: вы изменили обои рабочего стола, информация об этом заносится в реестр Windows. При следующей загрузке операционной системы данные будут считаны из реестра, и на рабочем столе отобразится нужная картинка.
Системный реестр имеется во всех современных (и не очень) операционных системах семейства Windows: 10, 8, 7, XP.
Зачем пользователю знать о реестре?
Некоторые настройки можно изменить только с помощью редактирования реестра.
Эта программа находится в папке Windows, файл называется regedit.exe
Как открыть редактор реестра в Windows?
Подробно о том, как открыть редактор реестра в каждой версии Windows (10, 8, 7, XP), я описал в этой статье:
Самый быстрый способ запуска редактора реестра
Раскрою самый быстрый способ запуска редактора реестра, который актуален для всех версий Windows:
Для примера, еще два способа запуска редактора реестра можно увидеть в этом видео (на примере Windows 10):
Устройство реестра Windows
Когда вы откроете редактор реестра, вы увидите окно, очень похожее на проводник:
Окно редактора реестра в Windows 10
Параметры могут быть разных типов, на изображении ниже я привел пример всех возможных параметров для Windows 10 и 8 (для наглядности, имя параметра соответствует его типу):
Виды параметров реестра в Windows 10 и 8 (пример)
Изменяя значения параметров, как раз и производят изменения в настройках Windows и программ. Иногда приходится создавать новые параметры определенного типа, чтобы получить новую возможность в работе программы или операционной системы. Но это уже тема следующих уроков (первые примеры можно увидеть по ссылкам ниже).
Подробнее об устройстве реестра я могу написать отдельный IT-урок, если интересно – пишите в комментариях.
Примеры использования реестра для восстановления работы Windows
Естественно, я не просто так поднял тему системного реестра Windows. При решении проблем, часто приходится прибегать к редактированию настроек с помощью изменений параметров реестра.
И небольшое предупреждение:
Не торопитесь менять что-либо в реестре, если не знаете, на что настройка влияет. Перед изменениями сделайте резервную копию изменяемого подраздела реестра.
Заключение
Тема реестра достаточно обширная, с помощью него можно многое сделать, но сегодня итак много было новой информации, оставлю всё самое интересное на следующий раз.
Хотите продолжения? Пишите в комментариях!
Конечно же, жду ваших вопросов, предложений и отзывов.
Следующая заметка посвящена способам запуска редактора реестра во всех актуальных версиях Windows (начиная с Windows XP и заканчивая Windows 10).
Реестр Windows — это набор конфигураций, значений и свойств приложений Windows, а также операционной системы Windows, который организован и хранится в иерархическом порядке в едином репозитории.
Всякий раз, когда в системе Windows устанавливается новая программа, в реестр Windows делается запись с такими атрибутами, как размер, версия, расположение в хранилище и т. д.
Поскольку эта информация была сохранена в базе данных, не только операционная система знает об используемых ресурсах.
Другие приложения также могут извлечь выгоду из этой информации, поскольку они осведомлены о любых конфликтах, которые могут возникнуть, если определенные ресурсы или файлы будут сосуществовать.
Что такое реестр Windows и как он работает?
Реестр Windows — это действительно основа работы Windows.
Это единственная операционная система, которая использует такой подход центрального реестра.
Если бы мы визуализировали, каждая часть операционной системы должна взаимодействовать с реестром Windows прямо от последовательности загрузки до чего-то столь же простого, как переименование имени файла.
Проще говоря, это просто база данных, аналогичная базе данных каталога библиотечных карточек, где записи в реестре подобны стопке карточек, хранящейся в каталоге карточек.
Ключ реестра будет картой, а значение реестра будет важной информацией, записанной на этой карте.
Операционная система Windows использует реестр для хранения большого количества информации, которая используется для контроля и управления нашей системой и программным обеспечением.
Это может быть что угодно, от информации об оборудовании ПК до пользовательских настроек и типов файлов.
Практически любая конфигурация системы Windows включает редактирование реестра.
История реестра Windows
В начальных версиях Windows разработчикам приложений приходилось включать отдельное расширение файла .ini вместе с исполняемым файлом.
Этот файл .ini содержал все параметры, свойства и конфигурацию, необходимые для правильной работы данной исполняемой программы.
Однако это оказалось очень неэффективным из-за избыточности определенной информации, а также представляло угрозу безопасности исполняемой программы.
В результате возникла очевидная необходимость в новой реализации стандартизированных, централизованных и безопасных технологий.
Однако этот инструмент был очень ограничен, поскольку приложения могли хранить только определенную информацию о конфигурации исполняемого файла.
С годами Windows 95 и Windows NT продолжили развитие на этой основе, представив централизацию как основную функцию в новой версии реестра Windows.
Тем не менее, хранение информации в реестре Windows — вариант для разработчиков программного обеспечения.
Таким образом, если разработчик программного обеспечения должен был создать переносимое приложение, ему не требуется добавлять информацию в реестр, локальное хранилище с конфигурацией, свойствами и значениями может быть создано и успешно доставлено.
Актуальность реестра Windows по отношению к другим операционным системам
Windows — единственная операционная система, которая использует такой подход центрального реестра.
Если бы мы визуализировали, каждая часть операционной системы должна взаимодействовать с реестром Windows прямо от последовательности загрузки до переименования имени файла.
Все другие операционные системы, такие как iOS, Mac OS, Android и Linux, продолжают использовать текстовые файлы как способ настройки операционной системы и изменения поведения операционной системы.
В большинстве вариантов Linux файлы конфигурации сохраняются в формате .txt, это становится проблемой, когда нам приходится работать с текстовыми файлами, поскольку все файлы .txt считаются критическими системными файлами.
Поэтому, если мы попытаемся открыть текстовые файлы в этих операционных системах, мы не сможем их просмотреть.
Эти операционные системы пытаются скрыть это в качестве меры безопасности, поскольку все системные файлы, такие как конфигурации сетевой карты, брандмауэра, операционной системы, графического пользовательского интерфейса, интерфейса видеокарт и т. д., сохраняются в формате ASCII.
Чтобы обойти эту проблему, как macOS, так и iOS применили совершенно другой подход к расширению текстового файла, внедрив расширение .plist, которое содержит всю информацию о системе, а также информацию о конфигурации приложения, но все же преимущества наличия единого реестра намного перевешивают простое изменение расширения файла.
Каковы преимущества реестра Windows?
Поскольку каждая часть операционной системы постоянно взаимодействует с реестром Windows, она должна храниться в очень быстром хранилище.
Следовательно, эта база данных была разработана для чрезвычайно быстрого чтения и записи, а также для эффективного хранения.
Если бы мы открыли и проверили размер базы данных реестра, она обычно колебалась бы между 15-20 мегабайтами, что делает ее достаточно малой, чтобы всегда загружать ее в ОЗУ (оперативную память), которая, кстати, является самым быстрым хранилищем, доступным для операционных систем.
Поскольку реестр должен быть загружен в память постоянно, если размер реестра большой, он не оставит достаточно места для всех других приложений, чтобы они могли работать без сбоев или работать вообще.
Это может отрицательно сказаться на производительности операционной системы, поэтому реестр Windows разработан с целью обеспечения высокой эффективности.
Если несколько пользователей взаимодействуют с одним и тем же устройством, и существует ряд часто используемых ими приложений, повторная установка одних и тех же приложений дважды или несколько раз будет пустой тратой довольно дорогостоящего хранилища.
Реестр Windows выделяется в этих сценариях, когда конфигурация приложения совместно используется различными пользователями.
Это не только сокращает общий объем используемой памяти, но также дает пользователям доступ для внесения изменений в конфигурацию приложения через один порт взаимодействия.
Это также экономит время, поскольку пользователю не нужно вручную переходить к каждому файлу .ini локального хранилища.
Многопользовательские сценарии очень распространены в корпоративных установках, здесь настоятельно требуется доступ с правами пользователя.
Поскольку не вся информация или ресурсы могут быть доступны всем, необходимость доступа пользователей на основе конфиденциальности была легко реализована через централизованный реестр Windows.
Здесь сетевой администратор оставляет за собой право отказать или разрешить в зависимости от проделанной работы.
Это сделало единую базу данных универсальной, а также сделало ее надежной, поскольку обновления могут выполняться одновременно с удаленным доступом ко всем реестрам нескольких устройств в сети.
Как работает реестр Windows?
Прежде чем мы начнем пачкать руки, давайте изучим основные элементы реестра Windows.
Реестр Windows состоит из двух основных элементов, называемых ключом реестра, который является объектом-контейнером, или, проще говоря, они похожи на папку, в которой хранятся файлы различных типов, и значения реестра, которые не являются объектами-контейнерами, которые похожи на файлы, которые могут быть любого формата.
Как получить доступ к реестру Windows?
Microsoft включает бесплатную утилиту для редактирования реестра вместе с каждой версией своей операционной системы Windows.
Этот редактор является порталом для доступа к реестру Windows и помогает нам исследовать реестр и вносить в него изменения.
Реестр — это общий термин, используемый различными файлами баз данных, расположенными в каталоге установки Windows.
Безопасно ли редактировать редактор реестра?
Если вы не знаете, что делаете, играть с конфигурацией реестра опасно.
Каждый раз, когда вы редактируете реестр, убедитесь, что вы следуете правильным инструкциям и изменяете только то, что вам поручено изменить.
Если вы намеренно или случайно удалите что-то в реестре Windows, это может изменить конфигурацию вашей системы, что может либо привести к синему экрану смерти, либо Windows не загрузится.
Поэтому обычно рекомендуется сделать резервную копию реестра Windows, прежде чем вносить в него какие-либо изменения.
Вы также можете создать точку восстановления системы (которая автоматически создает резервную копию реестра), которую можно использовать, если вам когда-либо понадобится изменить настройки реестра до нормального состояния.
Но если вы делаете только то, что вам говорят, то в этом не должно быть никаких проблем.
Давайте исследуем структуру реестра Windows
Пользователь находится в недоступном хранилище, доступ к которому возможен только для операционной системы.
Эти ключи загружаются в ОЗУ на этапе загрузки системы и постоянно передаются в течение определенного интервала времени или при возникновении определенного события или событий системного уровня.
Определенная часть этих ключей реестра сохраняется на жестком диске.
Этот раздел реестра содержит разделы реестра, подразделы реестра и значения реестра.
В зависимости от уровня привилегий, предоставленных пользователю, он будет иметь доступ к определенным частям этих ключей.
Ключи, которые находятся на пике иерархии в реестре, начинающемся с HKEY, считаются ветвями.
В редакторе они расположены в левой части экрана, когда все ключи просматриваются без раскрытия.
Это ключи реестра, которые отображаются в виде папок.
Давайте исследуем структуру раздела реестра Windows и его подразделов:
Пример названия ключа:
Общие корневые ключи в реестре Windows
Каждый из следующих ключей представляет собой отдельную ветку, которая содержит больше ключей в пределах ключа верхнего уровня.
1. HKEY_CLASSES_ROOT
Эта ветка реестра Windows Registry, который состоит из информации об ассоциации расширений файлов, программного идентификатора (ProgID), данных идентификатора интерфейса (IID) и идентификатора класса (CLSID).
Операционная система запускает через него свой запрос, чтобы предпринять необходимые действия.
Тем не менее, это те самые ключи реестра, которые обеспечивают плавную работу Windows.
- HKEY_CLASSES_ROOT\.otf
- HKEY_CLASSES_ROOT\.htc
- HKEY_CLASSES_ROOT\.img
- HKEY_CLASSES_ROOT\.mhtml
- HKEY_CLASSES_ROOT\.jpg
- HKEY_CLASSES_ROOT\.dll
Таким образом, система открывает программу просмотра фотографий, отображающую запрошенное изображение.
В приведенном выше примере реестр вызывает ключи, хранящиеся в ключе HKEY_CLASSES_ROOT\.jpg.
Поэтому, когда раздел реестра существует в двух местах, он создает конфликты.
2. HKEY_LOCAL_MACHINE
Это одна из нескольких веток реестра, в котором хранятся все параметры, относящиеся к локальному компьютеру.
Это глобальный ключ, в котором хранимая информация не может быть изменена ни одним пользователем или программой.
Из-за глобального характера этого подраздела вся информация, хранящаяся в этом хранилище, имеет форму виртуального контейнера, непрерывно работающего в ОЗУ.
Этот раздел реестра дополнительно разделен на 7 подразделов:
1. SAM (диспетчер учетных записей безопасности) — это файл ключа реестра, в котором хранятся пароли пользователей в защищенном формате (в хеш-значениях LM и NTLM).
Хеш-функция — это форма шифрования, используемая для защиты информации учетной записи пользователя.
Каждый раз, когда пользователь входит в систему, Windows использует серию хеш-алгоритмов для вычисления хеш-значения для введенного пароля.
Если хэш введенного пароля совпадает с хешем пароля внутри файла реестра SAM, пользователям будет разрешен доступ к своей учетной записи.
Это также файл, на который нацелены большинство хакеров при проведении атаки.
2. Security (недоступна, кроме администратора) — этот раздел реестра является локальным для учетной записи администратора, который вошел в текущую систему.
Если система управляется какой-либо организацией, пользователи не могут получить доступ к этому файлу, если административный доступ не был явно предоставлен пользователю.
Если бы мы открыли этот файл без прав администратора, он был бы пустым.
Теперь, если наша система подключена к административной сети, этот ключ по умолчанию будет соответствовать профилю безопасности локальной системы, установленному и активно управляемому организацией.
Этот ключ связан с SAM, поэтому после успешной аутентификации, в зависимости от уровня привилегий пользователя, применяются различные локальные и групповые политики.
3. System (критический процесс загрузки и другие функции ядра) – этот подраздел содержит важную информацию, относящуюся ко всей системе, такую как имя компьютера, установленные в настоящее время аппаратные устройства, файловая система и какие автоматические действия можно предпринять в определенном случае, скажем, синий экран смерти из-за перегрева процессора, существует логическая процедура, которую компьютер автоматически начнет выполнять в таком случае.
Этот файл доступен только пользователям с достаточными административными привилегиями.
Когда система загружается, здесь все журналы динамически сохраняются и читаются.
Различные системные параметры, такие как альтернативные конфигурации, известные как контрольные наборы.
4. Software — здесь хранятся все конфигурации стороннего программного обеспечения, такие как драйверы plug and play.
Этот подраздел содержит настройки программного обеспечения и Windows, связанные с уже существующим профилем оборудования, которые могут быть изменены различными приложениями и установщиками системы.
5. Hardware — подраздел, который создается динамически во время загрузки системы.
6. Components — общесистемную информацию о конфигурации компонентов конкретного устройства можно найти здесь.
3. HKEY_CURRENT_CONFIG
Основная причина существования этого подраздела — хранение видео, а также сетевых настроек.
Это может быть вся информация, относящаяся к видеокарте, такая как разрешение, частота обновления, соотношение сторон и т. д., а также сеть.
Это также ветка реестра, часть реестра Windows, в котором хранится информация об используемом в настоящее время профиле оборудования.
4. HKEY_CURRENT_USER
Часть ветки реестра, которая содержит настройки хранилища, а также информацию о конфигурации Windows и программного обеспечения, относящуюся к текущему авторизованному пользователю.
Это не похоже на большинство других веток реестра, которые являются глобальными, то есть в них хранится одна и та же информация для всех пользователей Windows.
Изменения, внесенные в любую из областей, вступят в силу немедленно.
5. HKEY_USERS
Это также один из многих веток реестра, которые есть в реестре Windows.
Их учетная запись имеет определенные ключи реестра и соответствующие значения реестра, хранящиеся под текущим SID пользователя.
Что касается криминалистической информации, каждый SID хранит огромное количество данных о каждом пользователе, поскольку он ведет журнал всех событий и действий, предпринимаемых под учетной записью пользователя.
Это включает в себя имя пользователя, количество раз, когда пользователь входил в систему на компьютере, дату и время последнего входа в систему, дату и время последнего изменения пароля, количество неудачных попыток входа в систему и так далее.
Кроме того, он также содержит информацию реестра о том, когда Windows загружается и находится в приглашении для входа в систему.
Типы данных, которые мы можем ожидать найти в реестре Windows
Все вышеупомянутые ключи и подразделы будут иметь конфигурации, значения и свойства, сохраненные в любом из следующих типов данных, обычно это комбинация следующих типов данных, которая составляет весь наш реестр Windows.
- Строковые значения, такие как Unicode, который является отраслевым стандартом вычислительной техники для согласованного кодирования, представления и обработки текста, выраженного в большинстве мировых систем письма;
- Двоичные данные;
- Беззнаковые целые числа;
- Символические ссылки;
- Многострочные значения;
- Список ресурсов (оборудование Plug and Play);
- Дескриптор ресурса (оборудование Plug and Play);
- 64-битные целые числа.
Вывод
Реестр Windows стал не чем иным, как революцией, которая не только свела к минимуму угрозу безопасности, связанную с использованием текстовых файлов в качестве расширения файла для сохранения конфигурации системы и приложения, но также сократила количество конфигурационных или ini-файлов, которые разработчики приложений должны были поставлять вместе со своим программным продуктом.
Преимущества наличия централизованного хранилища для хранения часто используемых данных как системой, так и программным обеспечением, работающим в системе, очень очевидны.
Простота использования, а также доступ к различным настройкам и настройкам в одном центральном месте также сделали Windows предпочтительной платформой для настольных приложений различными разработчиками программного обеспечения.
Это очень очевидно, если сравнить огромный объем доступных настольных программных приложений Windows с macOS от Apple.
Подводя итог, мы обсудили, как работает реестр Windows, его файловую структуру и значение различных конфигураций разделов реестра, а также как использовать редактор реестра в полной мере.
Читайте также:
- Проектная деятельность младших школьников как фактор успешности воспитания и обучения доклад
- Особенности организации труда в инновационной сфере доклад
- Волонтерство в медицине доклад
- Каменный уголь ростовской области доклад
- Доклад о третьей планете
В данной статье рассмотрены общие сведения о реестре операционной системы Windows.
Реестр Windows (Windows Registry, системный реестр) — это иерархическая (древовидная) база данных, содержащая записи, определяющие параметры и настройки операционных систем Microsoft Windows.
Реестр в том виде, как он выглядит при просмотре редактором реестра, формируется из данных, источниками которых являются файлы реестра и информация об оборудовании, собираемая в процессе загрузки. В описании файлов реестра на английском языке используется термин Hive. В документации от Microsoft этот термин переводится как Куст.
Содержание
- Основные файлы, отвечающие за формирование реестра
- Структура реестра
- Основные типы данных, применяемые в реестре
- Взаимодействие реестра с операционной системой
Основные файлы, отвечающие за формирование реестра
Файлы реестра создаются в процессе установки операционной системы и хранятся в папке:
%SystemRoot%\\system32\\config (обычно C:\\windows\\system32\\config).
Для операционных систем Windows это файлы с именами:
- system
- software
- sam
- security
- default
- components
- bcd-template
В операционных системах Windows Vista, Windows 7, Windows8, Windows 8.1, Windows 10, файлы реестра располагаются в каталоге \\Windows\\system32\\config и имеют такие же имена, однако в этих операционных системах добавился новый раздел реестра для хранения данных конфигурации загрузки (Boot Configuration Data) с именем BCD00000000.
Файл с данными этого раздела имеет имя bcd и находится в скрытой папке Boot активного раздела (раздела, с которого выполняется загрузка системы).
Обычно, при стандартной установке Windows, создается активный раздел небольшого размера (от 100 до 500 мегабайт в зависимости от операционной системы), который скрыт от пользователя и содержит только служебные данные для загрузки системы – загрузочные записи, менеджер загрузки bootmgr, хранилище конфигурации загрузки BCD, файлы локализации и программы тестирования памяти
Расположение куста bcd зависит от того, как сконфигурирован загрузчик системы при ее установке, и может находиться на том же разделе, где и каталог Windows.
Место расположения файлов реестра в любой версии Windows можно просмотреть с помощью редактора реестра, в разделе:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\hivelist
В этом разделе хранится информация о всех кустах, включая пользовательские профили, со ссылками на их расположение в файловой системе Windows.
Структура реестра
Реестр Windows имеет древовидную структуру и состоит из 5 основных разделов реестра:
HKEY_LOCAL_MACHINE (HKLM) — самый большой раздел реестра. В нем сосредоточены все основные настройки операционной системы, а также аппаратного и программного обеспечения компьютера. Информация, содержащаяся в этом разделе, применяется ко всем пользователям, регистрирующимся в системе.
HKEY_ CLASSES_ ROOT (HKCR) — содержит ассоциации между приложениями и типами файлов (по расширениям файлов). Кроме того, в этом разделе находится информация о зарегистрированных типах файлов и объектах COM и ActiveX. Кроме HKEY_ CLASSES_ ROOT эти сведения хранятся также в разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER.
Раздел HKEY_LOCAL_MACHINE\\Software\\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\\Software\\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников.
HKEY_USERS (HKU) — содержит настройки среды для каждого из загруженных пользовательских профилей, а также для профиля по умолчанию. В HKEY_USERS находится вложенный раздел \\Default, а также другие подразделы, определяемые идентификатором безопасности (Security ID, SID) каждого пользователя.
HKEY_CURRENT USER (HKCU) — cодержит настройки среды для пользователя, на данный момент зарегистрировавшегося в системе (переменные окружения, настройки рабочего стола, параметры сети, приложений и подключенных устройств).
Этот раздел дублирует информацию в HKEY_USERS\\user SID, где user SID — идентификатор безопасности пользователя, зарегистрировавшегося в системе на текущий момент (узнать SID текущего пользователя можно, набрав в командной строке whoami /user).
HKEY_CURRENT_ CONFIG (HKCC) — cодержит настройки для текущего аппаратного профиля. Текущий аппаратный профиль включает в себя наборы изменений, внесенных в стандартную конфигурацию устройств, заданную в подразделах Software и System корневого раздела HKEY LOCAL_MACHINE.
В HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, информация этого раздела находится в HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\HardwareProfiles\\Current.
Данные в реестре хранятся в виде параметров, расположенных в ключах реестра. Каждый параметр характеризуется именем, типом данных и значением.
Основные типы данных, применяемые в реестре
REG_DWORD — 32-х разрядное число. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать эти данные в двоичном, шестнадцатеричном и десятичном формате.
REG_SZ — Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных.
REG_EXPAND_SZ — Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения, например, используется для записи переменных окружения.
REG_MULTI_SZ — Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL.
REG_BINARY — Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате.
REG_RESOURCE_LIST — Список аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\\HARDWARE.
Также иногда можно встретить такие типы данных реестра:
- REG_RESOURCE_ REQUIREMENTS_LIST — Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\\HARDWARE.
- REG_FULL_RESOURCE_ DESCRIPTOR — Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\\HARDWARE.
- REG_LINK — Символическая ссылка Unicode. Этот тип данных интересен тем, что позволяет одному элементу реестра ссылаться на другой ключ или параметр.
- REG_QWORD — 64-х разрядное число.
- REG_DWORD_ LITTLE_ENDIAN — 32-разрядное число в формате «остроконечников» (little-endian), эквивалент REG_DWORD.
- REG_DWORD_BIG_ ENDIAN — 32-разрядное число в формате «тупоконечников» (big-endian).
- REG_QWORD_LITTLE_ ENDIAN — 64-разрядное число в формате «остроконечников». Эквивалент REG_QWORD.
- REG_NONE — Параметр не имеет определенного типа данных.
Взаимодействие реестра с операционной системой
При запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. Обычно распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы Ntoskrnl.exe.
При старте системы ядро системы извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (напр. номер версии).
В процессе загрузки системы драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер устройства сообщает об используемых им системных ресурсах, включая аппаратные прерывания (IRQ) и каналы доступа к памяти (DMA), чтобы система могла включить эти данные в реестр.
Кстати, реестр позволяет создавать несколько аппаратных профилей. Аппаратный профиль (hardware profile) представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. По умолчанию системой создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере.
При входе пользователя в систему загружаются пользовательские профили (user profiles). Вся информация, относящаяся к конкретному имени пользователя и связанными с ним правами хранится в реестре. Пользовательский профиль определяет индивидуальные параметры настройки системы (разрешение дисплея, параметры сетевых соединений, подключенные устройства и многое другое). Информация о пользовательских профилях также хранится в реестре.
При установке приложений. Каждый раз при запуске программы установки происходит добавление в реестр новых конфигурационных данных. Начиная свою работу, все программы установки должны считывать информацию из реестра, чтобы определить, присутствуют ли в системе необходимые им компоненты. Кроме того, системный реестр позволяет приложениям совместно использовать конфигурационную информацию, что предоставляет им больше возможностей для взаимодействия. Приложение должно активно и правильно использовать реестр, а также иметь возможность корректного удаления, не затрагивая при этом компонентов, которые могут использоваться другими программами (библиотеки, программные модули и т. п.). Эта информация тоже хранится в реестре.
При администрировании системы. Когда пользователь вносит изменения в конфигурацию системы с помощью средств администрирования системы (например при помощиПанели управления или оснастки MMC), все изменения сразу отражаются в системном реестре. По сути средства администрирования представляют собой наиболее удобные и безопасные средства модификации реестра. Кстати, к средствам администрирования можно отнести и редактор реестра (regedit.exe), ведь все изменения в систему можно вносить непосредственно правкой реестра.
В процессе загрузки и функционирования операционной системы выполняется постоянное обращение к данным реестра, как для чтения, так и для записи. Файлы реестра постоянно изменяются, поскольку не только система, но и отдельные приложения могут использовать реестр для хранения собственных данных, параметров и настроек. Другими словами, обращение к реестру — это одна из наиболее распространенных операций. Даже если пользователь не работает за компьютером, обращения к реестру все равно выполняются системными службами, драйверами и приложениями.
Нарушение целостности файлов реестра (нарушение структуры данных) или неверное значение отдельных критических параметров может привести к краху системы . Поэтому, прежде чем экспериментировать с реестром, позаботьтесь о возможности его сохранения и восстановления.
-
Назначение реестра
-
Структура реестра
-
Хранение данных
реестра -
Администрирование
и поддержка реестра. Резервное копирование
и восстановление реестра
Назначение
реестра
Системный
реестр Windows — тайна за семью печатями
для обычного пользователя. Эта тема
традиционно считается невероятно
сложной для понимания и доступной лишь
избранным. Пока одни избранные, вроде
Нео, гнут ложки взглядом, другие мастерски
ныряют в дебри системного реестра и
вытворяют там удивительные вещи. Бытует
мнение, что с помощью системного реестра
операционную систему Windows можно заставить
делать практически все, чего только не
возжелает ее хозяин. Простым пользователям
остается лишь вздыхать, читая очередную
инструкцию, как с помощью системного
реестра изменить тот или иной параметр,
повлиять на работу программы или повысить
скорость доступа в Интернет.
Для
того чтобы получить базовое представление
о системном реестре, не нужно быть
программистом или системным администратором.
Более того, в системном реестре нет
ничего таинственного, требующего
поклонения по ночам со свечами перед
зеркалом. Реестр — это просто реляционная
база данных, в которой сохраняется вся
необходимая для работы компьютера
информация о настройках операционной
системы, а также используемом совместно
с Windows программном обеспечении и
оборудовании. Как видите, это простое
объяснение сразу снимает покров
таинственности с понятия «реестр».
Зачем
обычному домашнему пользователю знать,
что такое системный реестр и уметь им
управлять? Системный реестр можно
представить в виде невероятно
функционального пульта управления, с
помощью которого можно решать самые
разнообразные задачи. Понимание основных
концепций, связанных с реестром, позволяет
научиться манипулировать системными
параметрами, оптимизировать работу как
операционной системы и ее служб, так и
любых программ.
Программа
оптимизации системного реестра:
Основы
системного реестра
Все
расположенные в системном реестре
данные предлагаются в стандартизированной
форме и ясно структурированы по
предложенной разработчиками Windows системе
иерархий. В этом контексте базовое
функциональное предназначение реестра
Windows XP можно определить так: в ходе работы
ОС как ее основным компонентам, так и
прикладным программам время от времени
нужно получать информацию об установленном
на компьютере оборудовании и его
параметрах, свойствах и ограничениях,
о содержимом и расположении других
программ или библиотек.
В
подобной ситуации наилучшим методом
организации доступа к таким сведениям
становится их запись в общей унифицированной
базе данных, в которой искать необходимые
данные могут как программы, так и сам
пользователь, желающий, скажем, изменить
конфигурационные параметры Windows. Именно
такую базу данных и представляет собой
системный реестр.
При
инсталляции или удалении любых устройств,
программ или компонентов системы данные
о проводимых изменениях фиксируются в
системном реестре и считывается оттуда
при каждой загрузке ОС.
Некоторые
компоненты реестра содержатся в памяти
в течение всего сеанса работы с Windows;
при выгрузке ОС сведения о произведенных
пользователем или программах операциях,
так или иначе влияющих на конфигурацию
системы, также записываются реестр. В
результате, напрашивается простой, но
очевидный вывод: именно от того, какие
свойства указаны в реестре Windows, влияет
на возможности операционной системы,
ее работоспособность и функционирование
всего компьютера в целом.
Само
собой, неправильная модификация
расположенных в реестре данных может
негативно повлиять на работоспособность
Windows, вплоть до приведения ОС в полностью
нерабочую форму. Стоит лишь допустить
ошибку в записи значения какого-либо
ключа или параметра, и вы вообще не
можете загрузить операционную систему.
Не удивительно, что разработчики Windows
XP заметно ограничили доступ к реестру.
В результате, с целью безопасности,
право на редактирование реестра имеют
только пользователи Windows ХР, работающие
в системе с учетной записью администратора
системы.
Теперь
вкратце перечислим некоторые возможности,
которые откроются перед нами, пытливыми
умами, желающими реестр непокорный
оседлать.
Изменение
реестра Windows ХР позволяет решать такие
задачи:
-
решать проблемы,
возникающие в процессе работы
разнообразных программ и эффективно
настраивать режимы их работы; -
устранять
неисправности в работе оборудования,
связанные с некорректным применением
разнообразными устройствами ресурсов
операционной системы или драйверов; -
настраивать
параметры и ограничения рабочей среды
Windows, менять базовые характеристики и
параметры операционной системы; -
настраивать
быстродействие ПК; -
перераспределять
ресурсы ОС так, как это нужно администратору
компьютера; -
управлять
конфигурацией компонентов Windows и
системных служб, что позволяет
оптимизировать работу ОС в зависимости
от предназначения компьютера и решаемых
пользователем задач.
Данные
в реестре Windows XP хранится в бинарной,
т.е. в двоичной форме. Это дает возможность
не только записывать в реестр большие
объемы различных данных, но и существенно
повышвает скорость работы с ними. На
реальности это означает, что работа с
реестром Windows ХР требует использование
специализированных программ, в то время
как в более старых версиях Windows любой
пользователь мог менять содержимое
реестра с помощью обычного редактора
Блокнот.
Итак,
подытожим. В Windows ХР представлен некоторый
набор специализированных системных
объектов, которые предназначены для
управления реестром Windows и дают возможность
изменять его конфигурацию с использованием
различных параметров. Кроме того, следует
учитывать такой факт, что максимальный
размер реестра в Windows XP, фактически,
ничем не ограничен, поэтому при разрастании
его объема все более актуальным становится
тема удаления ненужных данных из реестра
и его дефрагментации.
Структура
системного реестра Windows
Реестр
Windows XP отличается многоуровневой
архитектурой, включающей в себя четыре
нисходящих логических компонента. К
первому компоненту, расположенному в
самом верху иерархии реестра, относятся
так называемые ветви реестра. Эти ветви
обозначаются с использованием англоязычной
аббревиатуры HKEY_. После символа
подчеркивания идет название самой
ветви. Всего в
реестре Windows XP есть
пять основных
ветвей: HKEY_CLASSES_ROOT,
HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS и
HKEY_CURRENT_CONFIG.
К
второму компоненту в системе иерархии
реестра относятся разделы, или ключи
реестра (keys). В Windows XP не существует
универсального стандарта для обозначения
ключей реестра, поэтому имена для них
назначались разработчиками согласно
типам данных, которые расположены в
ключе. Работать с ключами можно в
программе Редактор реестра (RegEdit), где
они отображаются в виде подпапок ветвей
HKEY_, как показано рисунке ниже.
Строго
говоря, ограничений, которые соотносят
с ключами конкретный тип данных, попросту
не существует. Поэтому ключи в архитектуре
реестра используются лишь для того,
чтобы упростить доступ к информации и
предоставляют собой, фактически, просто
средством для упорядочивания больших
массивов данных реестра.
По
своему функциональному предназначению
ключи реестра разделяются на две
следующие категории.
-
Указываются
системой. Имена ключей выбираются ОС,
их изменение может сделать Windows XP
полностью неработоспособной. -
Указываются
пользователем. Имена ключей может
изменять администратор компьютера, и
такие модификации не станут причиной
каких-либо фатальных проблем.
Ступенькой
ниже в структурной иерархии реестра
расположены подразделы реестра (subkeys).
Подразделы также прямо не связаны с
какими-либо типами данных и не используются
в рамках каких-либо соглашений, которые
ограничивают присвоение им названий.
Наравне с именами ключей, названия
подразделов определяются как ОС, так и
пользователем, причем в первом случае
их модификация может стать причиной
проблем в работе Windows, а во втором — нет.
Финальная
ступень в архитектуре системного реестра
называется параметром (values). Это компонент
реестра, содержащий непосредственно
сами данные, которые обуславливают
работу ОС и всего компьютера. Параметры,
фактически, являются цепочкой «имя
параметра — значение параметра» и
различаются по типу содержащейся в
качестве их значений информации.
Теперь
попробуем посмотреть на архитектуру
реестра под другим углом, и сравним ее
с файловой системой компьютера. В этой
аналогии ветви будут выполнять ту же
роль, что и корневые папки разделов
жесткого диска, ключи и подразделы
станут папками и подпапками, а параметры
— непосредственно файлами, которые
находятся в своих папках. При этом любой
из подобных файлов может иметь название
(имя параметра) и расположенную в нем
информацию (значение параметра).
Разобравшись
с реестром, перейдем к обзору типы
данных, которые хранятся в параметрах
реестра Windows.
Типы
данных системного реестра Windows
Для
классификации значений, расположенных
в параметрах, используются типы данных,
связанные с этим значением. Существует
ровным счетом 11 типов данных системного
реестра, перечисленных далее.
-
REG_NONE. Тип данных
«Неизвестный». Зашифрованные данные. -
REGSZ. Тип данных
«Строковый». Текст. -
REG_EXPAND_SZ. Тип данных
«Строковый». Текст и переменные. -
REG_BINARY. Тип данных
«Двоичный». Двоичные данные. -
REG_DWORD. Тип данных
«Числовой». Число. -
REG_DWORD_BIN_ENDIAN.
Тип данных «Числовой». Число с обратным
порядком байтов. -
REG_LINK. Тип данных
«Строковый». Путь к файлу. -
REG_MULTI_SZ. Тип данных
«Многостроковый». Массив строк. -
REG_RESOURCE_LIST. Тип
данных «Строковый». Список
ресурсов устройств. -
REG_FULL_RESOURCE_DESCRIPTOR.
Тип данных
«Строковый». Идентификатор
ресурса устройства. -
REG_RESOURCE_REQUIREMENTS_LIST.
Тип данных
«Строковый». Идентификатор
ресурса устройства.
Любой
пользователь может свободно редактировать
все значения параметров реестра, причем
не важно, к какому типу данных, из
указанных ранее, они относятся. В
программе Редактор реестра представлен
набор встроенных мастеров, которые дают
возможность менять разнообразные типы
данных. В частности, для настройки
значений числовых параметров используется
мастер DWORD, двоичных — BINARY, строковых —
STRING и многостроковых — MULTISTRING.
Теперь
перейдем к рассмотрению пяти базовых
ветвей системного реестра Windows XP, и
расскажем об их функциональном
предназначении.
-
HKEY_LOCAL_MACHINE (HKLM). В
этой ветви представлены данные, связанные
с операционной системе и оборудованием.
К ним относятся, например, тип шины
компьютера, общий объем доступной
оперативной памяти, список загруженных
в текущий момент времени драйверов
устройств, а также информация об
особенностях загрузки Windows. Это самая
объемная ветвь системного реестра
Windows XP, которая применяется для тонкой
настройки оборудования компьютера.
При этом данные, расположенные в этой
ветви, относятся сразу ко всем профилям
пользователей, зарегистрированных в
системе. -
HKEY_CURRENT_USER (HKCU). В
этой ветви находятся сведения о
пользователе, текущий сеанс работы
которого обслуживается реестром. В
подразделах этой ветви записаны данные
о переменных окружения, группах программ
пользователя, настройках рабочего
стола и экрана, сетевых соединениях,
принтерах и дополнительной конфигурации
программ (в Windows XP переменные окружения
применяются в сценариях, записях реестра
и других программах лишь в роли
подстановочных параметров). Эта
информация передаются из подраздела
Security ID (SID) ветви HKEY_USERS для текущего
пользователя. Другими словами, в данной
ветви предоставлена вся информация,
относящаяся к профилю активного
пользователя Windows. -
HKEY_LOCAL_MACHINE (HKLM). В
данной ветви находятся данные об
операционной системе и оборудовании,
к примеру, тип шины компьютера, объем
доступной оперативной памяти, список
загруженных в текущий момент времени
драйверов устройств, а также информация,
связанная с загрузкой Windows. Эта ветвь
содержит наибольший объем информации
в системном реестре Windows XP и зачастую
применяется для тонкой настройки
оборудования компьютера. Данные в этой
ветви относятся к профилям всех
зарегистрированных в системе
пользователей. -
HKEY_USERS (HKU). В этой
ветви расположены подразделы с данными
о всех профилях пользователей компьютера.
Один из ее подразделов всегда связан
с подразделом HKEY_CURRENT_USER (через параметр
Security ID (SID) пользователя)). В другом
подразделе, а именно, подразделе,
HKEY_USERS\DEFAULT, представлены данные о
параметрах системы в настоящий момент
времени, которые были актуальны до
начала сеанса работы пользователя,
зарегистрированного в системе. -
HKEY_CURRENT_CONFIG (HKCC). В
данной ветви представлены подразделы
со сведениями обо всех профилях
оборудования, активного в текущем
рабочем сеансе. Профили оборудования
дают возможность выбирать драйверы
поддерживаемых устройств для выбираемого
сеанса работы (что позволяет, к примеру,
не задействовать активацию порта
док-станции переносного компьютера в
тот период, когда он не подключен к
станции). Данные сведения передаются
из подразделов
HKEY_LOCAL_MACHlNE\SYSTEM\CurrentControlSet.
Хранение данных
реестра
В
Windows NT/2000 элементы реестра хранятся в
виде атомарной структуры. Реестр
подразделяется на составные части,
которые разработчики этой операционной
системы назвали кустами, или ульями
(hives) по аналогии с ячеистой структурой
пчелиного улья. Куст представляет собой
дискретную совокупность разделов,
вложенных разделов и параметров, берущую
начало в вершине иерархии реестра.
Отличие кустов от других групп разделов
состоит в том, что они являются постоянными
компонентами реестра. Кусты не создаются
динамически при загрузке операционной
системы и не удаляются при ее остановке.
Таким образом, раздел HKEY_LOCAL_MACHINE Hardware,
который строится динамически
распознавателем аппаратных средств
при запуске Windows NT/2000, кустом не является.
Данные кустов реестра хранятся в файлах,
находящихся в каталогах
%SystemRoot%System32Conue и %SystemRoot%Proules\Jsername (Windows NT
4.0) и %SystemRoot%System32Cohue и %SystemDrive%Documents and
SettingsUsername (Windows 2000).
Каждый
куст реестра Windows NT/2000 ассоциирован с
набором стандартных файлов), В табл.
3.7.1 перечислены стандартные кусты
реестра Windows NT/2000 и поддерживающие их
файлы.
Таблица
3.7.1. Стандартные файлы, обеспечивающие
поддержку кустов реестра Windows NT
Все
файлы кустов реестра, за исключением
HKEY_CURRENT_USER,
находятся в подкаталоге
%SystemRoot%System32Conug.
Поддержку
куста 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
andSettings %Usemame%.
Файлы
Ntuser и Userdiff были впервые введены в Windows
NT 4.0:
-
файл Ntuser.dat, в
котором хранится пользовательский
профиль, заменил собой файлы usemamexxx и
adminxxx из предыдущих версий Windows NT; -
файл Ntuser.dat из
каталога %SystemRoot%ProulesDefa.utJser заменил собой
файл Userdef из предыдущих версий Windows NT.
Этот профиль используется для построения
куста HKEY_CURRENT_USER, когда новый пользователь
впервые регистрируется в системе; -
файлы Userdiff, которые
находятся только в каталоге %SystemRoot%
System32Config, не ассоциируются ни с одним
кустом. Они служат для обновления
существующих профилей пользователей,
использовавшихся в предыдущих версиях
Windows NT, таким образом, чтобы эти профили
могли применяться в Windows NT 4.6 и последующих
версиях (Windows 2000).
С
кустами ассоциируются файлы четырех
типов. Все эти типы файлов (с соответствующими
расширениями имен файлов) перечислены
в табл. 3.7.2.
Таблица
3.7.2. Типы файлов, ассоциированных с
кустами реестра Windows NT 4.0/Windows 2000
Администрирование
и поддержка реестра. Резервное копирование
и восстановление реестра
Непосредственное
редактирование реестра, даже в тех
случаях, когда оно необходимо, при
неумелом выполнении может привести к
большим неприятностям. Поэтому, если
вы чувствуете себя неуверенно или просто
не можете позволить себе затратить
значительное время для проведения
восстановительных работ, не ставьте
смелых экспериментов над реестром своей
операционной системы (будь то Windows NT 4.0
или Windows 2000). Вполне возможно, что
единственная ошибка приведет к
необходимости переустановки операционной
системы.
Предупреждение
Для
выполнения задач по конфигурированию
системы, по мере возможности, рекомендуется
использовать административные утилиты,
так как их применение всегда предпочтительнее
непосредственного редактирования
реестра. Этот метод намного безопаснее,
поскольку административные средства
не позволяют сохранять в реестре
некорректные значения. Если в процессе
редактирования реестра с помощью одного
из редакторов реестра будет допущена
ошибка,
редактор сохранит некорректное значение,
а вы не получите даже предупреждения,
так как редакторы реестра не распознают
и не исправляют такие ошибки.
Реестр
Windows представляет собой один из жизненно
важных компонентов операционной системы,
необходимый, в том числе, и при ее
загрузке. Именно поэтому при подготовке
процедур восстановления системы после
сбоев нельзя недооценивать важность
роли резервного копирования и
восстановления системного реестра. Эту
процедуру можно выполнить следующими
способами: Резервное копирование и
восстановление реестра осуществляются,
в том числе, и при выполнении рассмотренных
ранее процедур резервного копирования
и восстановления системных данных
(System State data).
Резервное
копирование реестра может выполняться
при изготовлении диска аварийного
восстановления (ERD). Для этого при создании
ERD необходимо установить флажок
Архивировать реестр в папку восстановления
(Also backup the registry to the repair directory). Резервное
копирование реестра будет произведено
в папку %SystemRoot%\Kpair. Процедура аварийного
восстановления будет использовать
информацию из этой папки, поэтому никогда
не следует ни удалять, ни модифицировать
ее содержимое.
Резервное
копирование и восстановление реестра
Windows может быть выполнено с помощью
утилиты Reg, включенной в состав программных
продуктов Windows Resource Kit.
Наконец,
резервное копирование и восстановление
реестра можно выполнять путем
экспорта/импорта реестра с помощью
команд Импорт файла реестра (Import Registry
File) и Экспорт файла реестра (Export Registry
File) программы Regedit или даже вручную.
Процедуры
резервного копирования и восстановления
системных конфигурационных данных
(System State data), а также процедуры изготовления
и использования диска аварийного
восстановления (ERD), были подробно
рассмотрены в главе 8. Однако в ряде
случаев вам могут весьма пригодиться
альтернативные методы резервного
копирования и восстановления реестра,
которые и будет рассмотрены в последующих
нескольких разделах.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем семейства Microsoft Windows [2].
В реестре хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах [1].
Открытие реестра¶
Поскольку файлов в реестре несколько, его нельзя открыть, например, в текстовом редакторе и внести какие-либо коррективы. Для работы с ним требуется специальная программа – редактор реестра, который является встроенным компонентом операционной системы Windows и вызывается путем ввода команды Regedit
[4].
Существует несколько способов открыть редактор реестра.
Способ №1 – Открытие через утилиту «Выполнить»:
- Выбрать Пуск → Выполнить, либо нажать сочетание клавиш
Win+R
(Win
— клавиша, междуCtrl
иAlt
в нижнем ряду клавиатуры, обычно на ней изображен значок Microsoft Windows ; - В открывшимся окне ввести команду
regedit
; - Нажать клавишу
ОК
.
Рис. 1 – Открытие через утилиту «Выполнить»
Способ №2 – Открытие через поиск по меню «Пуск»:
- Открыть меню Пуск;
- Ввести в строке поиска
regedit
и запустить найденный файл, который отобразится в верхней части Пуска.
Рис. 2 – Открытие через поиск по меню «Пуск»
С другими способами можно ознакомиться в статье Три способа открыть редактор реестра Windows.
Структура реестра¶
Реестр имеет иерархическую структуру, которая напоминает файловую систему жесткого диска – с его каталогами, подкаталогами и файлами. Но называются элементы реестра по-другому: верхний уровень иерархии составляют разделы, каждый из которых может содержать вложенные подразделы, а также параметры. Именно в параметрах хранится основное содержимое реестра, разделы служат лишь для группировки схожих по назначению параметров [4].
Рис. 3 – Редактор реестра
Далее приведен краткий перечень и краткое описание стандартных разделов реестра. Максимальная длина имени раздела составляет 255 символов.
HKEY_CURRENT_USER
Данный раздел является корневым для данных конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU
.
HKEY_USERS
Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER
является подразделом раздела HKEY_USERS
. Вместо полного имени раздела иногда используется аббревиатура HKU
.
HKEY_LOCAL_MACHINE
Раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). Наиболее интересным является подраздел Software
, который включает в себя настройки всех установленных в системе приложений. Вместо полного имени раздела иногда используется аббревиатура HKLM
.
HKEY_CLASSES_ROOT
Является подразделом HKEY_LOCAL_MACHINE\Software
. Хранящиеся здесь сведения обеспечивают выполнение необходимой программы при открытии файла с использованием проводника. Вместо полного имени раздела иногда используется аббревиатура HKCR
. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE
, так и в HKEY_CURRENT_USER
.
Раздел HKEY_LOCAL_MACHINE\Software\Classes
содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes
, переопределяют принятые по умолчанию и относятся только к текущему пользователю.
Раздел HKEY_CLASSES_ROOT
включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT
предоставляет эти объединенные данные программам, разработанным для более ранних версий Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes
. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes
. Данные из разделов, добавленных в HKEY_CLASSES_ROOT
, будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes
. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT
и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes
, то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes
, а не HKEY_LOCAL_MACHINE\Software\Classes
.
HKEY_CURRENT_CONFIG
Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.
Примечание
Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы. Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот. По умолчанию редактор реестра 64-разрядных версий Windows отображает 32-разрядные разделы в следующем узле: HKEY_LOCAL_MACHINE\Software\WOW6432Node
Файлы реестра на жестком диске¶
Основные файлы, отвечающие за формирование реестра хранятся в папке %SystemRoot%\System32\Config\
. Обычно это C:\Windows\System32\Config\
и в зависимости от версии ОС их состав может несколько различаться.
Файл, хранящий личные настройки пользователя, «скрыт» в папке соответствующей учетной записи, например, в C:\Documents and Settings\Dmitry
. Также файлы, отвечающие за пользовательские настройки, могут храниться в:
C:\Documents and Settings\%Username%\(Ntuser.dat)
;C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Windows\ (UsrClass.dat)
.
Еще есть резервные копии файлов реестра, созданные системой, хранятся они в
C:\Windows\System32\config\RegBack
– для Windows 7 и Server 2008;C:\Windows\repair
– для XP и Server 2003.
Примечание
По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.
Вспомогательные файлы для всех кустов за исключением HKEY_CURRENT_USER
хранятся в системах Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista в папке %SystemRoot%\System32\Config
.
Вспомогательные файлы для куста HKEY_CURRENT_USER
хранятся в папке %SystemRoot%\Profiles\Имя_пользователя
. Расширения имен файлов в этих папках указывают на тип содержащихся в них данных. Отсутствие расширения также иногда может указывать на тип содержащихся в файле данных.
Примечание
Куст (дерево) реестра (англ. hive) — это группа разделов, подразделов и параметров реестра с набором вспомогательных файлов, содержащих резервные копии этих данных.
Куст реестра | Вспомогательные файлы |
---|---|
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 , Ntuser.dat , Ntuser.dat.log |
HKEY_USERS\DEFAULT |
Default , Default.log , Default.sav |
Примечание
Например, кусту HKEY_LOCAL_MACHINE\Software
соответствует на жестком диске файл C:\Windows\System32\config\SOFTWARE
.
Рис. 4 – Файлы реестра на жестком диске