Работа с реестром Windows


Общие сведения о реестре Windows
Особенности реестра Windows Vista и более поздних ОС семейства Windows
Сохранение и восстановление реестра
Мониторинг реестра
Автозапуск программ.
Драйверы и службы.
Драйверы и службы для безопасного режима.
Пароли приложений в реестре.
Ассоциации расширений файлов и приложений.
Ограничение доступа пользователя к ресурсам системы.
Некоторые практические примеры и советы



Общие сведения о реестре Windows


    Реестр Windows (системный реестр) - это иерархическая (древовидная) база данных, содержащая записи, определяющие параметры и настройки операционных систем Microsoft Windows. Реестр в том виде, как он выглядит при просмотре редактором реестра, формируется из данных, источниками которых являются файлы реестра и информация об оборудовании, собираемая в процессе загрузки. В описании файлов реестра на английском языке используется термин "Hive". В некоторых работах его переводят на русский язык как "Улей". В документации от Microsoft этот термин переводится как "Куст".

Файлы реестра создаются в процессе установки операционной системы и хранятся в папке %SystemRoot%\system32\config (обычно C:\windows\system32\config). Для операционных систем Windows это файлы с именами

default
sam
security
software
system
.
В операционных системах Windows Vista/Windows 7/8/10, файлы реестра располагаются также в каталоге \Windows\system32\config и имеют такие же имена, однако в этих ОС добавился новый раздел реестра для хранения данных конфигурации загрузки (Boot Configuration Data) с именем BCD00000000 . Файл с данными этого раздела имеет имя bcd и находится в скрытой папке Boot активного раздела ( раздела, с которого выполняется загрузка системы). Обычно, при стандартной установке Windows 7, создается активный раздел небольшого размера ( около 100 мегабайт), который скрыт от пользователя и содержит только служебные данные для загрузки системы – загрузочные записи, менеджер загрузки bootmgr, хранилище конфигурации загрузки BCD, файлы локализации и программы тестирования памяти . Расположение куста bcd зависит от того, как сконфигурирован загрузчик системы при ее установке, и может находиться на том же разделе, где и каталог Windows.

Место расположения файлов реестра в любой версии Windows можно просмотреть с помощью редактора реестра. В разделе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist хранится информация о всех кустах, включая пользовательские профили, со ссылками на их расположение в файловой системе Windows.


    В процессе загрузки система получает монопольный доступ к файлам реестра и, поэтому, их невозможно открыть для просмотра, скопировать, удалить или переименовать обычным образом. Для работы с содержимым системного реестра используется специальное программное обеспечение - редакторы реестра (REGEDIT.EXE, REGEDT32.EXE), являющиеся стандартными компонентами операционной системы. Для запуска редактора реестра можно использовать меню кнопки "Пуск"- "Выполнить" - regedit.exe

Редактор реестра Windows

    После старта редактора, в левой части основного окна вы видите список корневых разделов (root keys) реестра. Каждый корневой раздел может включать в себя вложенные разделы (subkeys) и параметры (value entries) или ключи реестра.
Основное назначение корневых разделов:
HKEY_CLASSES_ROOT ( Общепринятое сокращенное обозначение HKCR) - Ассоциации между приложениями и расширениями файлов и информацию о зарегистрированных объектах COM и ActiveX.
HKEY_CURRENT_USER (HKCU)- Настройки для текущего пользователя (рабочий стол, личные папки, настройки приложений). Этот раздел представляет собой ссылку на раздел HKEY_USERS\Идентификатор пользователя (SID) в виде S-1-5-21-854245398-1035525444-...
SID - это уникальный номер, идентифицирующий учетную запись пользователя, группы или компьютера. Он присваивается учетной записи при создании каждого нового пользователя системы. Внутренние процессы Windows обращаются к учетным записям по их кодам SID, а не по именам пользователей или групп. Если удалить, а затем снова создать учетную запись с тем же самым именем пользователя, то предоставленные прежней учетной записи права и разрешения не сохранятся для новой учетной записи, так как их коды безопасности будут разными. Аббревиатура SID образована от Security ID.

Идентификатор SID представляет собой числовое значение переменной длины, формируемое из номера версии структуры SID, 48-битного кода агента идентификатора и переменного количества 32-битных кодов субагентов и/или относительных идентификаторов (Relative IDentifiers, RID). Код агента идентификатора определяет агент, выдавший SID, и обычно таким агентом является локальная операционная система или домен под управлением Windows. Коды субагентов идентифицируют попечителей, уполномоченных агентом, который выдал SID, а RID - дополнительный код для создания уникальных SID на основе общего базового SID.
Для идентификатора S-1-5-21-854245398-1035525444: 1000, номер версии равен 1, код агента идентификатора - 5, а далее следуют коды четырех субагентов. В Windows NT и старше, при установке системы, создается один фиксированный (код 21) и три генерируемых случайным образом (числа после "S-1-5-21") кода субагентов. Также в процессе установки создаются некоторые (одинаковые для всех систем) учетные записи, как например, учетная запись администратора, которая всегда имеет RID равный 500

Для просмотра соответствия SID и имени пользователя можно воспользоваться утилитой PsGetSID.exe из пакета PSTools

HKEY_LOCAL_MACHINE (HKLM) - в данном разделе реестра хранятся глобальные аппаратные и программные настройки системы - записи для системных служб, драйверов, наборов управляющих параметров, общие настройки программного обеспечения, применимые ко всем пользователям. Это самая большая и самая важная часть реестра. Здесь сосредоточены основные параметры операционной системы, оборудования, программного обеспечения.

HKEY_USERS( HKU) - индивидуальные настройки среды для каждого пользователя системы (пользовательские профили) и профиль по умолчанию для вновь создаваемых пользователей.

HKEY_CURRENT_CONFIG (HKCC) - конфигурация для текущего аппаратного профиля. Обычно профиль один единственный, но имеется возможность создания нескольких с использованием "Панель управления" - "Система" - "Оборудование"- "Профили оборудования". На самом деле HKCC не является полноценным разделом реестра, а всего лишь ссылкой на подраздел из HKLM
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\CurrentControlSet\Hardware Profiles\Current

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

REG_BINARY - двоичный параметр. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.

REG_DWORD - двойное слово. Данные представлены в виде значения, длина которого составляет 4 байта (32-разрядное целое). Этот тип данных используется для хранения параметров драйверов устройств и служб. Значение отображается в окне редактора реестра в двоичном, шестнадцатеричном или десятичном формате. Эквивалентами типа DWORD являются DWORD_LITTLE_ENDIAN (самый младший байт хранится в памяти в первом числе) и REG_DWORD_BIG_ENDIAN (самый младший байт хранится в памяти в последнем числе).

REG_QWORD - Данные, представленные в виде 64-разрядного целого. Начиная с Windows 2000, такие данные отображаются в окне редактора реестра в виде двоичного параметра.

REG_SZ - строковый параметр.

REG_EXPAND_SZ - Расширяемая строка данных. Многострочный параметр. Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.

REG_RESOURCE_LIST - Двоичный параметр. Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются драйвером устройства или управляемым им физическим устройством. Обнаруженные данные система сохраняет в разделе \ResourceMap. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате.

REG_RESOURCE_REQUIREMENTS_LIST - двоичный параметр. Последовательность вложенных массивов. Служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Часть этого списка система записывает в раздел \ResourceMap. Данные определяются системой. В окне редактора реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате.

REG_FULL_RESOURCE_DESCRIPTOR - двоичный параметр. Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются физическим устройством. Обнаруженные данные система сохраняет в разделе \HardwareDescription. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате.

REG_NONE - Данные, не имеющие определенного типа. Такие данные записываются в реестр системой или приложением. В окне редактора реестра отображаются в виде двоичного параметра в шестнадцатеричном формате.

REG_LINK - Символическая ссылка в формате Юникод.

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

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

    При просмотре данных реестра в среде Windows XP, 2 подраздела с именами SAM и SECURITY, не отображаются, и доступ к ним разрешен только для локальной системной учетной записью (Local System Account), под которой обычно выполняются системные службы (system services). Обычно, учетные записи пользователей и даже администраторов, таких прав не имеют, и редактор реестра, запущенный от их имени, не отображает содержимое разделов SAM и SECURITY. Для доступа к ним нужно, чтобы regedit был запущен от имени учетной записи с правами Local System, для чего можно воспользоваться утилитой PSExec
psexec.exe -i -s regedit.exe

Можно также воспользоваться стандартными средствами операционной системы, например, планировщиком заданий. С помощью команды at создаем задание на запуск regedit.exe в интерактивном режиме через 2-3 минуты от текущего времени (например- в 16час 14 мин.)

at 16:14 /interactive regedit.exe

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

В Windows 7 разделы реестра SAM и SECURITY отображаются , однако не отображается их содержимое, для просмотра которого можно воспользоваться аналогичным приемом.

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

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



Особенности реестра Windows Vista и последующих версий ОС семейства Windows


    Главным отличием реестра операционных систем Windows Vista / Windows 7 / Windows Server 2008 и более поздних выпусков - появление нового раздела с данными конфигурации загрузки системы HKEY_LOCAL_MACHINE\BCD00000000 .


Хранилище конфигурации загрузки BCD как раздел реестра


Этот раздел содержит объекты и элементы конфигурации, используемые новым диспетчером загрузки BOOTMGR пришедшим на смену традиционному загрузчику NTLDR. Раздел HKEY_LOCAL_MACHINE\BCD00000000 является системным хранилищем данных конфигурации загрузки ( BCD - Boot Configuration Data ) и физически, представляет собой файл реестра c именем bcd, находящийся в каталоге \BOOT активного раздела ( раздела диска с загрузочной записью и файлом диспетчера BOOTMGR) . При стандартной установке Windows 7 на новый жесткий диск, в качестве активного раздела создается небольшой ( размером около 100Мб) раздел, который содержит файлы и каталоги, необходимые для работы диспетчера загрузки. Обычно, этот раздел скрыт от пользователя, поскольку ему не присваивается буква логического диска и к его содержимому невозможно получить доступ стандартными средствами, такими, как например "Проводник" Windows (Explorer) . При просмотре с использованием Диспетчера логических дисков, данный раздел отображается под названием "Зарезервировано системой" и имеет признак "Активный".


Активный раздел Windows 7


Загрузочный сектор данного раздела (Partition Boot Sector или PBR) выполняет загрузку файла диспетчера bootmgr, который должен находиться в его корне. В свою очередь, диспетчер загрузки bootmgr для своих целей использует системное хранилище конфигурации, которое должно находиться в папке с именем BOOT .

Подразделы и ключи раздела HKLM\BCD00000000 имеют определенные имена, типы данных, и связи, которые обрабатываются диспетчером загрузки BOOTMGR и задают весь ход процесса дальнейшей загрузки - вид меню выбора загружаемых систем, таймаут выбора, систему, загружаемую по умолчанию, используемые устройства и приложения загрузки, и другие параметры. Иерархическая структура данных хранилища конфигурации загрузки не предназначена для редактирования с использованием редактора реестра и по умолчанию подраздел HKLM\BCD00000000 имеет разрешение только на чтение. Разрешение можно изменить с использованием контекстного меню, вызываемого правой кнопкой мыши, однако нужно учитывать то, что неквалифицированное изменение отдельных параметров данной ветви реестра может нарушить конфигурацию и системная загрузка станет невозможной. Тем не менее, экспорт данных ветви реестра HKLM\BCD00000000 иногда полезен, как дополнительная возможность анализа конфигурации загрузки в удобном для просмотра виде, а импорт - как восстановление ранее сохраненных данных BCD.

Для работы с данными конфигурации загрузки используется специальная утилита командной строки BCDEDIT.EXE , позволяющая сохранять конфигурацию, восстанавливать из ранее сохраненной копии, просматривать содержимое хранилища, редактировать отдельные объекты конфигурации и их элементы . Новый механизм загрузки операционных систем семейства Windows довольно сложен для понимания и не имеет прямого отношения к работе с реестром, поэтому привожу ссылки на дополнительные материалы:

BOOTMGR - новый диспетчер загрузки Windows Vista / Windows 7

BCDEDIT - редактор данных конфигурации загрузки BCD.



Сохранение и восстановление реестра


1. Использование точек восстановления (Restore Points)

    В операционных системах Windows, начиная с Windows XP, существует механизм ,с помощью которого, при возникновении проблем, можно восстановить предыдущее состояние компьютера без потери личных файлов (документов Microsoft Word, рисунков, Избранного, Рабочего стола) с использованием точек восстановления (Restore Points), которые при стандартных настройках, создаются системой автоматически во время простоя компьютера или во время существенных системных событий, таких, как установка нового приложения или драйвера. Кроме того, имеется возможность в любое время создать точку восстановления принудительно, с помощью "Панель управления" – “Система” – “Дополнительные параметры” – “Защита системы” – “Создать”

Точки восстановления представляют собой набор файлов операционной системы и реестра, скомпонованный по определенным правилам и сохраняемый в виде подкаталога в скрытой системной папке System Volume Information. Сохраненные в точке восстановления данные позволяют, практически гарантировано, вернуть операционную систему к состоянию на момент их создания. При изучении реестра (и отсутствии практического опыта работы с ним) принудительное создание точки восстановления перед началом работы позволит восстановить работоспособность Windows даже в случае краха системы. Стандартное средство восстановления системы работает только в среде самой Windows, однако существуют способы, которые позволяют вернуть систему к жизни даже при возникновении "синего экрана смерти" по причине неудачного редактирования реестра. Об этом чуть позже.

    Для восстановления системы используется точками восстановления используется приложение "Восстановление системы" - \windows\system32\restore\rstrui.exe для Windows XP и \windows\system32\rstrui.exe

Rstrui.exe - Восстановление системы

Можно также воспользоваться меню "Панель управления" – “Система” – “Дополнительные параметры” – “Защита системы” – “Восстановление”

    Данные точек восстановления хранятся в каталоге System Volume Information системного диска. Это скрытый системный каталог, доступ к которому разрешен только локальной системной учетной записи (Local System), или, другими словами, не пользователям, а "Службе восстановления системы". Поэтому, если вы хотите получить доступ к его содержимому, вам придется добавить права вашей учетной записи с использованием вкладки "Безопасность" в свойствах каталога "System Volume Information".

В случае Windows XP в папке System Volume Information есть подкаталог с именем, начинающемся с _restore... и внутри него - подкаталоги RP0, RP1...: - это и есть данные контрольных точек восстановления (Restore Point - RPn) для Windows XP. Внутри папок RPn имеется каталог с именем snapshot , содержащий копии файлов реестра на момент создания контрольной точки. При выполнении операции восстановления системы восстанавливаются основные системные файлы и файлы реестра. Соответственно, например, если крах системы вызван установкой нового драйвера, то после отката на точку восстановления, даже при наличии в каталоге Windows исполняемого файла драйвера, записи в реестре, обеспечивающие его загрузку, исчезнут, и система вернется в рабочее состояние. Подобным же образом можно избавиться от вирусного заражения, когда выполняется откат системы на тот момент, когда в реестре еще не было записей, обеспечивающих запуск вредоносного ПО.

Структура данных точек восстановления для Windows 7 отличается от той, что используется в Windows XP. Данные точек восстановления хранятся в сжатом файле с именем, представленным уникальным глобальным идентификатором, например:

{3808876b-c176-4e48-b7ae-04046e6cc752

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

    Откат системы на точку восстановления является простым и эффективным способом восстановления работоспособности без потери пользовательских данных не только в случаях неудачного редактирования реестра, установки некорректно работающего системного программного обеспечения, но и, например, при вирусном заражении компьютера, когда имеется точка восстановления на момент времени, когда вируса еще не было в системе. Именно поэтому многие вредоносные программы пытаются уничтожить данные точек восстановления и отключить средства восстановления системы. В подавляющем большинстве случаев, запуск внедрившегося вируса обеспечивается определенными записями в реестре, а после отката эти записи исчезнут, и вирус не сможет получить управление, и тем самым, будет нейтрализован даже без использования антивирусного программного обеспечения. Как видно, механизм точек восстановления довольно эффективен, но воспользоваться им можно только в среде самой Windows - для выполнения отката неработоспособной системы, стандартно, нужно в ней же и загрузиться. А если система повреждена настолько, что загрузка невозможна, задача становится невыполнимой. Тем не менее, выход из данной ситуации ( и даже не один) - есть. Можно, например, воспользоваться Winternals ERD СOMMANDER (ERDC), - инструментом на базе специальной версии Windows PE, загружаемой с компакт диска или другого внешнего носителя. ERD Commander умеет работать с точками восстановления Windows, подключенной к нему при загрузке, и позволяет легко выполнить откат на ее работоспособное состояние через меню "Start - System Tools - System Restore"

Использование точек восстановления системы в ERD Commander

С помощью System Restore Wizard восстановление выполняется так же, как это можно было бы выполнить в среде рухнувшей системы.

Если же ERDC нет под рукой, или полный откат системы не нужен, можно воспользоваться ручным восстановлением отдельных файлов реестра, копии которых можно взять из данных точки восстановления для Windows XP, или из автоматически создаваемых копий файлов реестра в Windows 7. Для этого достаточно получить доступ к файловой системе жесткого диска с поврежденной Windows. Можно загрузиться в другой системе (Windows PE, Live CD, даже DOS с поддержкой файловых систем FAT32 / NTFS), получить доступ к данным системного диска проблемной Windows и просто заменить испорченный файл (ы) раздела реестра на файл (ы) из каталога точки восстановления .

Восстановление файлов реестра для Windows XP


В папке, где хранятся данные точек восстановления, System Volume Information на системном диске, находим подкаталог с именем, начинающемся с _restore... и внутри него - подкаталоги RP0, RP1: - это и есть искомые контрольные точки (Restore Point - RPx). Внутри папки RPx открываем каталог SNAPSHOT, содержащий копии файлов реестра, на момент создания контрольной точки.

REGISTRY_MACHINE_SYSTEM - это  копия файла реестра SYSTEM


Файл REGISTRY_MACHINE_SYSTEM - это и есть копия файла SYSTEM, он же - раздел реестра HKEY_LOCAL_MACHINE\SYSTEM . Остается лишь перетащить этот файл в каталог \WINDOWS\SYSTEM32\CONFIG\ и переименовать его. Запорченный файл system можно, на всякий случай, переименовать в system.bad или удалить.

Обычно, для восстановления работоспособности поврежденной операционной системы, достаточно копирования только файла SYSTEM, поскольку именно в нем хранятся наиболее важные параметры, необходимые для загрузки и функционирования ОС. Копирование файла SOFTWARE влияет на изменение состава установленного программного обеспечения для всех пользователей. При необходимости восстановления настроек пользователя нужно взять соответствующий ему файл _REGISTRY_USER_NTUSER_S-1-5-21: и скопировать его в каталог профиля (для Windows XP - обычно это ":\Documents and Settings\Имя пользователя") под именем ntuser.dat

Если при таком способе восстановления реестра будет использоваться ERD Commander, в режиме работы с выбранной Windows, то могут возникнуть проблемы с занятостью файлов. Чтобы этого не случилось, лучше в процессе загрузки не подключаться к проблемной операционной системе и выбрать None:

None - не будет выполняться подключение к какой-либо системе


Восстановление файлов реестра для Windows 7 / 8


Для восстановления работоспособности Windows 7 и Windows 8, удобнее всего воспользоваться средством Microsoft Diagnostic and Recovery Tools ( MS DaRT ), являющимся развитием ERD Commander для данных ОС. Иногда его неофициально продолжают называть ERD Commander 7 ( 8 ). Средство аварийного восстановления DaRT, версии старше 5.0, также как ERDC, представляет собой загружаемый с CD/DVD или съемного диска вариант операционной системы Windows PE, снабженный набором инструментов для диагностики и восстановления операционных систем Windows Vista и более поздних. Для 32-разрядных и 64-разрядных ОС используются свои загрузочные диски. Наборы инструментов и их функциональные возможности, практически не отличаются от использовавшихся в ERD Commander, однако немного изменился их внешний вид и добавилась официальная поддержка русского языка. Описание работы с ERDC и MS DaRT 7.0 / 8.0 приводится в отдельной статье. В тех случаях, когда невозможно выполнить загрузку Windows, и запустить средство восстановления системы, инструменты MS DaRT позволяют выполнить ее откат на работоспособное состояние, практически так же, как и в случае с применением классического ERD Commander . Однако, способ с частичной или полной заменой файлов реестра из данных точек восстановления применить не получится, поскольку возникает проблема извлечения их них отдельных кустов реестра, и существует более простая методика, основанная на использовании автоматически создаваемых копий файлов реестра, создаваемых периодически специально созданной при установке системы, задачи “Планировщика заданий”. Задача RegIdleBackup создается в библиотеке планировщика заданий и выполняется скрытно, вне зависимости от регистрации пользователя, по умолчанию, для Windows 7 Professional один раз в 10 дней. Параметры задачи и сведения о ее выполнении можно посмотреть с помощью оснастки “Панель управления”- “Администрирование” - “Планировщик заданий” Открыть дерево “Библиотека планировщика” – Microsoft – Windows – Registry .

Задание на архивирование файлов реестра в планировщике


Хотя задано время выполнения 00:00, в параметрах задачи установлен режим немедленного запуска, если просрочен плановый запуск. Таким образом, задача будет выполнена, даже если компьютер на момент планового запуска был выключен, и в случае успешного завершения, каталоге \windows\system32\config\RegBack будет создана резервная копия файлов реестра default, sam, security, software и system. Следовательно, в тех случаях, когда восстановление системы стандартными средствами невозможно ( например, нет данных точек восстановления ), можно воспользоваться ручным копированием файлов реестра из каталога windows\system32\config\RegBack в каталог windows\system32\config так же, как и для случая описанного выше.

2. Использование утилиты для работы с реестром из командной строки REG.EXE

    В ОС Windows 2000 утилита REG.EXE входила в состав пакета Support tools, в Windows XP , windows 7 /8 - входит в стандартный набор программ, устанавливаемых в процессе инсталляции системы. На практике, можно для Windows 2000 использовать REG.EXE из комплекта Windows XP - просто скопируйте ее в каталог \winnt\system32). Запускается из командной строки. При запуске без параметров выдает краткую справку по использованию:

Программа редактирования системного реестра из командной строки, версия 3.0
(C) Корпорация Майкрософт, 1981-2001. Все права защищены

REG <Операция> [Список параметров]

<Операция> == [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]

Код возврата: (за исключением REG COMPARE)
0 - Успешно
1 - С ошибкой

Для получения справки по определенной операции введите:
REG /?

Примеры:

REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?



Для резервного копирования реестра используется REG.EXE SAVE, для восстановления - REG.EXE RESTORE

Для получения справки

REG.EXE SAVE /?
REG SAVE <раздел> <имя Файла>

<раздел> Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел
<КОРЕНЬ> Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ].
<подраздел> Полный путь к разделу реестра в выбранном корневом разделе.
<имя Файла> Имя сохраняемого файла на диске. Если путь не указан, файл
создается вызывающим процессом в текущей папке.

Примеры:
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
Сохраняет раздел MyApp в файле AppBkUp.hiv в текущей папке

    Синтаксис REG SAVE и REG RESTORE одинаков и вполне понятен из справки. Есть, правда некоторые моменты. В версии утилиты из ОС Windows 2000 нельзя было указывать путь в имени файла для сохранения раздела реестра и сохранение выполнялось только в текущий каталог. Справка самой утилиты и примеры ее использования для сохранения (REG SAVE) вполне можно использовать для сохранения любых разделов реестра, в т.ч. HKLM\software, HKLM\system и т.п. однако, если вы попробуете восстановить, например, HKLM\system, то получите сообщение об ошибке доступа, по причине занятости данного раздела реестра, а поскольку он занят всегда, восстановление с помощью REG RESTORE выполнить не удастся.

Для сохранения куста SYSTEM:
REG SAVE HKLM\SYSTEM system.hiv
Для сохранения куста SOFTWARE:
REG SAVE HKLM\SOFTWARE software.hiv
Для сохранения куста DEFAULT:
reg save HKU\.Default default.hiv

Если файл существует, то REG.EXE выдаст ошибку и завершится. В Windows 7, при наличии существующего файла, выдается стандартный запрос на разрешение его перезаписи.

    Сохраненные файлы можно использовать для восстановления реестра с использованием ручного копированием в папку %SystemRoot%\system32\config.




3. Ручное копирование файлов реестра.

    Этот способ возможен, если имеется копия файлов реестра, созданная на момент работоспособного состояния. Как уже упоминалось выше, если загрузиться в другой ОС с возможностью доступа к файловой системе проблемной Windows, то с файлами из папки реестра можно делать все, что угодно. В случае повреждения файла system, можно воспользоваться, например, сохраненным с помощью команды REG SAVE файлом system.hiv, скопировав его в папку реестра и переименовав в system. Для Windows 7 – скопировать файл system из папки \windows\system32\config\RegBack в папку \windows\system32\config

4. Использование режима экспорта-импорта реестра.

Данный способ не является в полном смысле слова способом полного восстановления реестра и более подходит для случаев, когда нужно сохранить и затем восстановить определенную его часть. Редактор реестра позволяет делать экспорт как всего реестра, так и отдельных разделов в файл с расширением reg Импорт полученного при экспорте reg-файла, позволяет восстановить реестр. Щелкаете на "Реестр"--> "Экспорт (Импорт) файла реестра". Импорт также можно выполнить двойным щелчком по ярлыку reg-файла.

Вполне понятно, что наличие резервных копий реестра делает систему почти "не убиваемой", однако, нередко случается так, что при возникновении необходимости восстановления реестра актуальной копии просто нет. Например, вирус отключил систему восстановления и удалил контрольные точки, а резервное копирование вручную просто не выполнялось. И если в Windows 7 существует задание планировщика для копирования файлов реестра, созданное при установке системы, то в Windows XP, такого задания нет, и, при нарушении целостности реестра, шансов на восстановление становится меньше. Что бы исключить подобную ситуацию, было бы неплохо, позаботиться об автоматическом резервирования файлов реестра без участия человека. Например, с помощью командного файла, выполняемого планировщиком или в процессе регистрации пользователя.

Для создания полной копии реестра Windows XP в командной строке удобно использовать бесплатную консольную утилиту regsaver.exe Скачать, 380кб

Сайт программы.

Утилита сохраняет файлы реестра в каталог, указываемый в качестве параметра командной строки:
regsaver.exe D:\regbackup
После выполнения программы в каталоге D:\regbackup будет создан подкаталог с уникальным именем, состоящим из года, месяца, числа и времени создания резервной копии файлов реестра ("yyyymmddhhmmss"). После выполнения резервирования программа может выключить компьютер или перевести его в спящий режим:

regsaver.exe D:\regbackup /off /ask - Выключить компьютер. Ключ /ask требует подтверждения пользователя на выполнение выключения питания.
regsaver.exe D:\regbackup /standby - Перевести в спящий режим без подтверждения (нет /ask)
regsaver.exe D:\regbackup /hibernate /ask - Перевести в режим Hibernate

Вместо стандартного выключения компьютера можно использовать резервное копирование реестра с выключением по его завершению.

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

Я неоднократно использовал regsaver в сценариях регистрации пользователей при входе в домен для периодического ( например, 1 раз в неделю) копирования файлов реестра, и наличие резервной копии нередко выручало в критической ситуации. Для периодического создания резервных копий файлов реестра можно воспользоваться запуском утилиты от имени администратора с сохранением полномочий.

runas /savecred administrator "regsaver.exe D:\regbackup"

Параметр /savecred используется для запоминания полномочий (credentials) пользователя с именем administrator при выполнении от его имени задания regsaver.exe D:\regbackup. При первом запуске runas, будет выдан запрос на ввод пароля указанного пользователя, который будет запомнен и не будет запрашиваться при последующих запусках.

Утилита regsaver выполняется без ошибок в среде Windows 7, однако, копии файлов реестра будут не полными, и использовать их в полной мере невозможно, да и нет необходимости, поскольку автоматическое резервирование файлов реестра выполняется заданием RegIdleBackup, автоматически выполняемым “Планировщиком заданий” Windows

6. Восстановление реестра, при отсутствии резервных копий в Windows XP.

    Иметь актуальные резервные копии реестра - это практически, всегда выход из ситуации когда работа Windows завершается критической ошибкой или, например, при загрузке системы, вы видите сообщение о нарушении целостности куста реестра SYSTEM:

Windows XP could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

Если есть резервная копия, выполняем за 5-10 минут восстановление файла SYSTEM, как описывалось выше, и система продолжает работать, как ни в чем не бывало. Я, конечно, не рассматриваю здесь случай, когда некондиционность файла реестра вызвана сбоями оборудования компьютера.

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

Возможно, поможет восстановить систему:

  • - использование резервных файлов реестра, автоматически созданных каким-либо программным обеспечением. Откройте папку \Windows\system32\config и проверьте, нет ли в ней файла system.bak (возможно другое расширение, отличное от .alt и .log). Поврежденный файл system переименуйте или сохраните в каком-либо ином месте). Найденный файл- копию system. . . переименуйте в system и попробуйте загрузиться.

  • - в Windows XP возможно использование, сохраненного после начальной установки, файла (файлов) из каталога \WINDOWS\REPAIR. Такой вариант, не самый оптимальный, на крайний случай. После завершения установки Windows, копии файлов реестра сохраняются в упомянутом каталоге и файл system будет соответствовать состоянию ОС сразу после завершения установки.

  • - использование функции восстановления редактора реестра Windows XP при загрузке поврежденного куста.

    Редактор реестра позволяет открывать файлы не только "своего" реестра, но и файлы, являющиеся реестром другой операционной системы. И имеется возможность восстановления поврежденного куста при загрузке в редакторе реестра. Для этого

    - Загрузитесь в другой операционной системе Windows с возможностью загрузки проблемного куста реестра .
    - Запустите редактор реестра.
    - В левой части дерева реестра выберите один из разделов:
    HKEY_USERS или HKEY_LOCAL_MACHINE.
    - В меню Реестр (Registry) (В других версиях редактора реестра этот пункт меню может называться "Файл") выберите команду "Загрузить куст(Load Hive)".
    - Найдите испорченный куст ( в нашем случае - system).
    - Нажмите кнопку Открыть.
    - В поле Раздел введите имя, которое будет присвоено загружаемому кусту. Например BadSystem.
    После нажатия OK появится сообщение:

    Восстановление загрузкой куста в regedit


    В левом окне редактора реестра выберите подключенный куст (BadSystem) и выполните команду "Выгрузить куст". Поврежденный system будет восстановлен. При чем, редактор реестра Windows XP вполне успешно восстановит реестр и более старой ОС Windows 2000. Даже если содержимое восстановленного таким образом файла будет не совсем актуальным, система, с большой долей вероятности, останется работоспособной. Возможно, придется переустановить некоторые программные продукты, или обновить драйверы.






    Мониторинг реестра. Как определить, какие программы обращаются к реестру.

        Одной из лучших программ для мониторинга реестра, является утилита Process Monitor, которую можно загрузить с сайта Microsoft, по ссылке на странице программы:

    Страница Process Monitor на Microsoft Sysinternals

    Программа Process Monitor является усовершенствованным инструментом отслеживания активности приложений и системных служб , который в режиме реального времени отображает активность файловой системы, реестра, сети, процессов и потоков. В этой программе сочетаются возможности двух ранее выпущенных программ от Sysinternals: Filemon и Regmon, а также огромный ряд улучшений, включая расширенную фильтрацию, всеобъемлющие свойства событий, такие как ID сессий и имена пользователей, достоверную информацию о процессах, полноценный стек потока со встроенной поддержкой всех операций, одновременную запись информации в файл и многие другие возможности. Эти уникальные возможности делают программу Process Monitor ключевым инструментом для устранения неполадок и избавления от вредоносных программ. Недостатком программы можно считать вероятность зависания при большом количестве отслеживаемых событий.

    Методике использования утилиты Process Monitor для анализа активности процессов в Windows посвящена отдельная статья:

    Подробное описание утилиты Process Monitor .

    Не смотря на появление Process Monitor , в среде Windows XP удобнее использовать хотя и устаревшую, но по прежнему эффективную, утилиту Regmon, поддержка которой прекращена автором. Фактически, Regmon, является частью утилиты Process Monitor, и выполняет только мониторинг обращений к реестру. Параметры программы, панель инструментов, принципы фильтрации и выделения отслеживаемых событий, а также результатов мониторинга в обеих программах практически одинаковы.

    Информация выдается в удобном виде, который можно настроить под свои нужды - исключить из результатов мониторинга данные о работе с реестром неинтересных вам приложений, подчеркнуть выбранным цветом то, что считаете особо важным, включить в результаты мониторинга только выбранные процессы. Программа позволяет быстро и легко выполнить запуск редактора реестра с переходом к указанному разделу или параметру. Имеется возможность выполнять мониторинг в процессе загрузки операционной системы с записью результатов в специальный журнал %SystemRoot\Regmon.log.
        После старта RegMon, можно определить критерии фильтрации результатов мониторинга реестра:

    Настройка фильтра для мониторинга реестра


    По умолчанию протоколируются все события обращения к реестру. Фильтр задается значениями полей:

    Include - Если * - выполнять мониторинг для всех процессов. Имена процессов разделяются символом ";". Например - FAR.EXE;Winlogon.exe - будут фиксироваться обращения к реестру только для процессов far.exe и winlogon.exe.
    Exclude - какие процессы исключить из результатов мониторинга.
    Highlight - какие процессы выделить выбранным цветом (по умолчанию - красным).

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

    - Include process - включить данный процесс в мониторинг
    - Exclude process - исключить данный процесс из мониторинга.

    После старта Regmon с фильтрами по умолчанию, вы увидите большое количество записей об обращении к реестру и, используя Include/Exclude process, можете настроить вывод результатов только нужного вам процесса (процессов).

    Registry Monitor - Sysinternals


    Назначение колонок:

    # - номер по порядку
    Time - Время. Формат времени можно изменить с помощью вкладки Options
    Process - имя процесса: идентификатор процесса (PID)
    Request - тип запроса. OpenKey - открытие ключа (подраздела) реестра, CloseKey - закрытие, CreateKey - создание, QueryKey - проверка наличия ключа и получение количества вложенных ключей (подразделов, subkeys), EnumerateKey - получить список имен подразделов указанного раздела, QueryValue - прочитать значение параметра, SetValue - записать значение.
    Path - путь в реестре.
    Result - результат выполнения операции. SUCCESS - успешно, NOT FOUND - ключ (параметр) не найден. ACCESS DENIED - доступ запрещен (недостаточно прав). Иногда бывает BUFFER OVERFLOW - переполнение буфера - результат операции не помещается в буфере программы.
    Other - дополнительная информация, результат выполненного запроса.

        Программа очень проста в использовании. После старта, лучше выбрать фильтр по умолчанию, т.е. фиксировать все обращения к реестру, а затем, в основном окне программы, выбрать ненужный процесс и с помощью правой кнопки мыши вызвать контекстное меню - Exclude process - информация об обращении к реестру данного процесса выводиться не будет. И таким же образом отфильтровать другие, не интересующие вас процессы. Небольшим недостатком программы является ограниченное количество возможных фильтров.

        При работе с программой можно использовать меню File, Edit, Options или сочетание клавиш:

    CTRL-S - сохранить результаты
    CTRL-P - свойства выбранного процесса
    CTRL-E - включить/выключить мониторинг
    CTRL-F - поиск по контексту
    CTRL-C - копировать выбранную строку в буфер обмена
    CTRL-T - изменить формат времени
    CTRL-X - очистить окно результатов мониторинга
    CTRL-J - запустить редактор реестра и открыть ветвь, указанную в колонке Path. Это же действие выполняется при двойном щелчке левой кнопки мыши. Очень полезная возможность, позволяет значительно экономить время.
    CTRL-A - включить/выключить автоматическую прокрутку
    CTRL-H - позволяет задать число строк результатов мониторинга

        Еще одна очень полезная возможность - получить журнал обращений к реестру в процессе загрузки операционной системы.
    Для этого выбираете меню Options-Log Boot. Программа выдаст сообщение, что Regmon сконфигурирован для записи обращений к реестру в файл журнала в ходе следующей перезагрузки ОС:

    Regmon - мониторинг в процессе загрузки


        После перезагрузки ОС, в корневом каталоге системы (C:\Windows) будет находиться файл Regmon.log с журналом результатов мониторинга. Режим записи в журнал будет продолжаться до запуска Regmon.exe вошедшим в систему пользователем и выполняется только для одной перезагрузки системы. Конечно же, содержимое журнала не будет полностью отображать абсолютно все обращения к реестру. Поскольку Regmon в режиме Log Boot инсталлируется в системе и, после перезагрузки, запускается в качестве драйвера, все обращения к реестру, произошедшие до его старта, в журнале не зафиксируются. Однако большая часть все же туда попадет, и вы увидите, что таких обращений будет несколько сотен тысяч.

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

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

    Скачать отсюда RegMon.exe v7.04, 700кб






    Автозапуск программ.

    В операционных системах семейства Windows предусмотрена возможность автоматического запуска программ для создания определенной пользовательской среды. Простейшим способом автоматического запуска является размещение ярлыков приложений или файлов сценариев в специальной папке Автозагрузка. Автоматический запуск по ссылкам в данной папке возможен как для отдельного пользователя, так и для всех пользователей, регистрирующихся в системе. Кроме папки "Автозагрузка", для запуска программ могут использоваться и разделы реестра:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
    Последние 2 раздела (...Once) отличаются тем, что программы, прописанные в них запускаются только 1 раз и после выполнения параметры ключа удаляются.

    Записи в HKLM относятся ко всем пользователям компьютера. Для текущего пользователя запуск определяется ключами в разделе HKU:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    Пример раздела HKLM\...\RUN:

    Реестр - автозапуск программ


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

    Для просмотра и отключения автоматически запускаемых программ можно воспользоваться системной утилитой настройки системы от Microsoft - msconfig.exe

        Кроме программ, запускающихся при регистрации пользователя в системе, запускается еще огромное количество других, не всегда очевидных, - это и системные службы (сервисы), различные драйверы, программы оболочки (Shell) и т.п. Кроме полезных ( а иногда и бесполезных) программ могут выполняться, используя автоматический запуск и внедрившиеся в систему вирусы. Более подробно о вирусах здесь. Точек возможного автоматического запуска исполняемых модулей огромное множество, и для их поиска в реестре удобнее использовать специальные программы - мониторы автозапуска, наиболее популярной из которых, является Autoruns.exe , обладающей более широким спектром возможностей, чем служебная программа MSConfig, входящая в состав Windows.

    Autoruns


    Инсталляция не требуется. Просто скачайте Autoruns, разархивируйте его и запустите файл Autoruns.exe (в пакет включена утилита autorunsc.exe - консольная версия). Программа покажет, какие приложения настроены на автоматический запуск, а также представит полный список разделов реестра и каталогов файловой системы, которые могут использоваться для задания автоматического запуска. Элементы, которые показывает программа Autoruns, принадлежат к нескольким категориям: объекты, автоматически запускаемые при входе в систему, дополнительные компоненты проводника, дополнительные компоненты обозревателя Internet Explorer (включая объекты модулей поддержки обозревателя (Browser Helper Objects или сокращенно - BHO), библиотеки DLL инициализации приложений, подмены элементов, объекты, исполняемые на ранних стадиях загрузки, библиотеки DLL уведомлений Winlogon, службы Windows и многоуровневые поставщики услуг Winsock.
    Чтобы просмотреть автоматически запускаемые объекты требуемой категории, достаточно выбрать нужную вкладку.

        Поскольку Autoruns разрабатывалась тем же автором, что и рассмотренная выше утилита Regmon.exe, у них много общего. Для поиска записей в реестре, относящихся к выбранному объекту достаточно использовать пункт "Jump to" контекстного меню, вызываемого правой кнопкой мыши. Произойдет запуск редактора реестра и откроется ключ, обеспечивающий его запуск.

    Cтраница с подробным описанием и практическими примерами использования утилиты Autoruns



    Драйверы и службы.

    Информация о драйверах и системных службах (сервисах) находится в разделе
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
    Каждому драйверу или сервису соответствует свой раздел. Например, "atapi" - для драйвера стандартного IDE контроллера жестких дисков, "DNScache" - для службы "DNS клиент". Назначение основных ключей:
    DisplayName - выводимое имя - то что вы видите в качестве осмысленного названия при использовании, например, элементов панели управления.

    ErrorControl - режим обработки ошибок.
    0 - игнорировать (Ignore) при ошибке загрузки или инициализации драйвера не выдается сообщение об ошибке и система продолжает работу.
    1 - нормальный (Normal) режим обработки ошибки. Работа системы продолжается после вывода сообщения об ошибке. Параметры ErrorControl для большинства драйверов устройств и системных служб равна 1.
    2 - особый (Severe) режим. Используется для обеспечения загрузки последней удачной конфигурации (LastKnownGood).
    3 - критическая (Critical) ошибка. Процесс загрузки останавливается, и выводится сообщение о сбое.

    Group - название группы, к которой относится драйвер, например - "Видеоадаптеры"

    ImagePath путь и имя исполняемого драйвера. Файлы драйверов обычно имеют расширение .sys и располагаются в папке \Windows\System32\DRIVERS\. Файлы сервисов - обычно .exe и располагаются в \Windows\System32\.

    Start управление загрузкой и инициализацией. Определяет, на каком этапе загрузки системы производится загрузка и инициализация данного драйвера или службы. Значения Start:
    0 - BOOT - драйвер загружается загрузчиком системы.
    1 - SYSTEM - драйвер загружается в процессе инициализации ядра.
    2 - AUTO - служба запускается автоматически при загрузке системы.
    3 - MANUAL - служба запускается вручную.
    4 - DISABLE - драйвер или сервис отключен.
    Загрузка драйверов и запуск служб с параметрами Start от 0 до 2 выполняются до регистрации пользователя в системе. Для отключения драйвера или службы достаточно установить значение параметра Start равным 4. Отключение драйверов и служб через редактирование этого ключа реестра - довольно опасная операция. Если вы случайно или по незнанию отключите драйвер или сервис, без запуска которых невозможна загрузка или функционирование операционной системы, то получите ее аварийное завершение (чаще всего - синий экран смерти Blue Screen Of Death или сокращенно - BSOD).

    Во многих случаях, раздел драйвера содержит параметр типа DWORD с именем Tag. Основное его назначение - определение порядка загрузки драйвера или службы внутри группы. Сначала загружаются драйверы и службы в соответствии со значением параметра Start, затем - в соответствии с номером группы, определяемым разделом реестра
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList
    и затем - по номерам тегов отдельных драйверов или служб внутри группы. Если поле тега отсутствует, то загрузка драйвера выполняется только после того, как будут загружены драйверы с установленными значениями Tag.

    Неверный порядок загрузки драйверов и служб может быть вызван ошибками их установки, недоработками разработчиков и, в редких случаях, - приводить к проблемам функционирования системы (захват ресурсов, необходимых другим драйверам, загрузка раньше другого драйвера, который необходим для работы, и т.п.). Чем меньше значение Tag, тем выше приоритет загрузки драйвера в группе.
    Для получения информации о порядке загрузки драйверов, можно воспользоваться специальной утилитой от Sysinternals LoadOrder

    Определение 
порядка загрузки драйверов с помощью LoadOrder


    Информация, выдаваемая программой не полностью отсортирована в соответствии с реальным порядком загрузки драйверов и служб, но собрана в компактном виде и значение поля Tag присутствует. Иногда этой информации вполне достаточно для анализа ситуации, связанной с проблемой функционирования конкретного устройства. При нажатии кнопки Copy выходные данные LoadOrder копируются в буфер обмена, после чего их можно сохранить в текстовый файл. Текст можно открыть в Excel, что позволит сортировать, фильтровать и отбирать результаты.
    Из приведенного снимка экрана видно, что в самом начале загрузки Windows, загружаются драйверы группы Boot Bus Extender. Первым, в соответствии со значением Tag = 1, будет загружен Драйвер Microsoft ACPI, затем - Драйвер шины PCI, затем - Драйвер шины PnP ISA/EISA и т.д.

    Утилита LoadOrd входит в стандартный пакет утилит Sysinternals Suite, не требует установки и работает во всех версиях Windows.



    Драйверы и службы для безопасного режима.

    При загрузке операционной системы для инициализации драйверов и служб используется набор управляющих параметров из раздела текущей конфигурации
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
    Практически, этот раздел определяет набор драйверов, которые известны системе, их параметры, системные службы и дополнительные наборы, которые используются в различных вариантах загрузки ОС. Для загрузки системы в безопасном режиме (Safe Mode) используется минимально необходимая конфигурация драйверов и системных служб, перечень которых задается разделом:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot
    Там имеются подразделы:
    Minimal - список драйверов и служб, запускаемых в безопасном режиме (Safe Mode)
    Network - то же, но с поддержкой сети.

    Кроме раздела HKLM\SYSTEM\CurrentControlSet, в реестре присутствуют и
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002
    По своей структуре они идентичны HKLM\SYSTEM\CurrentControlSet, и предназначены для дополнительной возможности восстановления работоспособности системы с использованием загрузки последней удачной конфигурации системы (Last Known Good Configuration). Возможные варианты загрузки управляющих наборов определяются содержимым раздела :
    HKEY_LOCAL_MACHINE\SYSTEM\Select

    Загрузка последней удачной конфигурации


    Current - управляющий набор, который был использован для текущей загрузки.
    Default - управляющий набор, который будет использоваться при следующей загрузке.
    LastKnownGood - управляющий набор, который будет использоваться, если будет выбран режим загрузки последней удачной конфигурации (Last Known Good Configuration).
    Failed - сбойный управляющий набор, который будет создан, если будет выбран режим загрузки последней удачной конфигурации (Last Known Good Configuration).
        После успешной загрузки и входа пользователя в систему, данные из CurrentControlSet и ControlSet001 копируются в ControlSet002. При изменении конфигурации, данные записываются в CurrentControlSet и ControlSet001. Если изменение настроек привело к краху системы, имеется возможность ее восстановления при использовании варианта последней успешной загрузки, берущей данные из ControlSet002. После удачной загрузки в этом режиме, появится новый подраздел с управляющим набором, ControlSet003, - на тот случай, если вам снова понадобится использовать Last Known Good Configuration. При каждом использовании загрузки последней удачной конфигурации значение ControlSet00x будет увеличиваться, поэтому в реестре некоторых ОС имеются разделы ControlSet003, ControlSet004 и т.д.

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

    Пароли приложений в реестре Windows.

        Единого места хранения паролей для прикладных программ в реестре Windows не предусмотрено, однако, имеется несколько разделов, которые стандартно используются популярными приложениями.

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

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

    В качестве места хранения паролей обозревателя Internet Explorer (до версии 7.0) для доступа к сайтам, паролей для почтовых учетных записей и паролей FTP-доступа используется Защищенное хранилище ( Protected Storage ). Информация запоминается в специальном разделе реестра

    HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider

    Новые версии Internet Explorer (7.0 и старше) хранят пароли и информацию для автозаполнения форм в двух разных местах - в защищенном хранилище, определяемом разделом реестра

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 и в специальном файле (credentials ) в каталоге пользователя Windows XP

    Documents and Settings\имя пользователя\Application Data\Microsoft\Credentials

    Для Windows 7 используются скрытые папки Credentials в каталогах профилей пользователя, например "C:\Users\Имя пользователя\Local Settings\Microsoft\Credentials\"

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

    HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts

    Но информация о паролях также зашифрована.

    Учетные записи для dialup (VPN) - подключений и данные об учетных записях некоторых других типов можно найти в разделе

    HKEY_LOCAL_MACHINE\Security\Policy\Secrets

    Для доступа к разделу нужны права локальной системной учетной записи. Информацию о паролях в открытом виде найти не удастся.

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

    Ассоциации расширений файлов и приложений.

        Как я уже упоминал выше, корневой раздел реестра HKEY_CLASSES_ROOT ( сокращенное обозначение HKCR) - используется для ассоциации между приложениями и расширениями файлов. Другими словами, содержимое данного раздела, определяет, какие приложения, и каким образом, обрабатывают файлы с определенными расширениями. Например, при установленном пакете Microsoft Office, файлы с расширением .doc отображаются в проводнике с иконкой ассоциированного с данным типом файлов приложения Microsoft Word, а двойной щелчок на ярлыке такого файла вызовет его открытие для редактирования в Word'е.
    Для просмотра и изменения ассоциаций файлов и приложений можно воспользоваться меню
    Панель управления - Свойства папки - Типы файлов
    При создании ассоциаций выполняется запись определенных данных в раздел HKCR, что позволяет сопоставить определенному типу файла нужное для его обработки приложение и соответствующую ему иконку. В качестве примера я взял записи в HKCR, относящиеся к файлам с расширением .3gp
    Отрываем раздел HKEY_CLASSES_ROOT\.3gp

    Ассоциации для файлов .3gp


    Первый строковый параметр (Параметр по умолчанию) определяет имя раздела в HKCR, данные которого, описывают приложение, сопоставленное расширению файла .3gp. Остальные параметры не обязательны, и описывают тип содержимого для файлов .3gp.
    В данном случае, раздел реестра для ассоциации приложения с типом файлов .3gp - HKEY_CLASSES_ROOT\mplayerc.3gp

    Ассоциации для файлов .3gp


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

    DefaultIcon - параметр по умолчанию указывает на файл, содержащий иконку, сопоставленную файлам с данным расширением. В данном примере для открытия файлов с расширением .3gp используется приложение Media Player Classic , набор иконок которого хранится в библиотеке mpciconlib.dll в каталоге программы. Значение строкового параметра
    "C:\Program Files\K-Lite Codec Pack\Media Player Classic\mpciconlib.dll",28
    Где 28 - порядковый номер иконки. Одно и то же приложение может быть ассоциировано с несколькими типами файлов, и иметь несколько разных вариантов отображаемых иконок.

    Shell - раздел определяет набор возможных действий над файлом данного типа.

    Подраздел Open раздела Shell определяет действие при открытии файла .3gp
    Подраздел Command раздела Open задает команду, выполняемую при открытии файлов .3gp. В данном случае:
    "C:\Program Files\K-Lite Codec Pack\Media Player Classic\mplayerc.exe" "%1"
    Т.о. при открытии файла с расширением .3gp, например, двойным щелчком мышки, будет запущен проигрыватель Media Player Classic, и в качестве входного параметра ему будет передано имя проигрываемого файла ("%1" в строке команды).

    В ветви HKEY_CLASSES_ROOT есть раздел с именем "*". Параметры, задаваемые в данном разделе определяют действия, выполняемые по отношению ко всем расширениям файлов, в том числе и не зарегитрированным. Действия по отношению к папкам определяются содержимым раздела HKEY_CLASSES_ROOT\Folder.


    Ограничение доступа пользователя к ресурсам.


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

    Скрываем логические диски

    Открываем раздел:
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    и добавляем в него параметр NoDrives типа DWORD. Значение параметра определяет скрываемые диски A-Z. Наличие "1" начиная с младшего бита двойного слова означает отсутствие логического диска в "Мой компьютер"
    00000001 - нет диска A, 00000002 - нет диска B, 00000004 - нет диска C, 0000000F - нет дисков A-F
    Добавлю, что скрытые таким образом диски не видны только для Explorerа и в других программах могут быть доступны (в FAR например).

    Изменяем меню кнопки "ПУСК"

    NoRun =dword:00000001 нет кнопки "Выполнить"
    NoLogOff=hex:01 00 00 00 ( не dword а hex) нет "Завершение сеанса <Имя>"
    NoFind =dword:00000001 - нет пункта "Найти"
    NoFavoritesMenu =dword:00000001 нет "Избранное"
    NoRecentDocsMenu=dword:00000001 нет "Документы"
    NoSetFolders =dword:00000001 нет "Панели управления" в подменю "Настройка"
    NoSetTaskbar=dword:00000001 нет "Панель задач" там же
    NoPrinters =dword:00000001 нет "Принтеры" в Панели управления
    NoAddPrinter=dword:00000001 нет "Добавить принтер"
    NoDeletePrinter=dword:00000001 нет "Удалить принтер"
    NoDesktop=dword:00000001 Пустой рабочий стол
    NoNetHood=dword:00000001 нет "Сетевое окружение"
    NoInternetIcon=dword:00000001 нет значка "Интернет" на Рабочем столе Windows
    NoTrayContextMenu =hex:01,00,00,00 -Отключить меню, вызываемое правой кнопкой мыши на панели задач
    NoViewContextMenu =hex:01,00,00,00 - Отключить меню, вызываемое правой кнопкой мыши на Рабочем столе: Чтобы включить обратно, надо 01 заменить на 00.
    NoFileMenu=hex:01,00,00,00 скрыть " File " в верхней строке меню Проводника
    ClearRecentDocsOnExit=hex:01,00,00,00 не сохранять список последних открываемых документов по выходу из системы.



    Параметры, изменяющие системные настройки среды пользователей Windows XP хранятся в разделе
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\System

    NoSecCPL =dword:00000001 отключает доступ к значку "Пароли" в Панели управления
    NoAdminPage=dword:00000001 скрывает вкладку "Удаленное управление"
    NoProfilePage =dword:00000001 скрывает вкладку "Профили пользователей"
    NoPwdPage"=dword:00000001 скрывает вкладку "Смена паролей"
    NoDispCPL=dword:00000001 отключает доступ к значку "Экран" в Панели управления
    NoDispAppearancePage=dword:00000001 скрывает "Оформление" в окне свойств экрана
    NoDispBackgroundPage=dword:00000001 скрывает "Фон" в окне свойств экрана
    NoDispScrSavPage скрывает "Заставка" в окне свойств экрана
    NoDispSettingsPage=dword:00000001 скрывает "Настройка" в окне свойств экрана
    NoConfigPage=dword:00000001 скрывает "Профили оборудования" в окне свойств системы
    NoDevMgrPage=dword:00000001 скрывает вкладку "Устройства" в окне свойств системы
    NoFileSysPage=dword:00000001 скрывает кнопку "Файловая система..." на вкладке "Быстродействие" в окне свойств системы
    NoVirtMemPage=dword:00000001 скрывает кнопку "Виртуальная память..." на вкладке "Быстродействие" в окне свойств системы
    DisableRegistryTools=dword:00000001 запрет Regedit.exe или Regedt32.exe

        Некоторые из перечисленных запретов на действия пользователя используют не только системные администраторы, но и внедрившиеся в систему вирусы. Обычно выполняется запись в реестр данных, блокирующих возможность поиска и удаления внедрившегося вредоносного программного обеспечения и, в качестве завершающего аккорда - запрет на запуск редактора реестра (DisableRegistryTools). Как следствие, даже обладая правами администратора, пользователь не имеет возможности что-либо сделать со своим собственным реестром. Попытка запуска редактора завершается подобным сообщением:

    DisableRegistryTools


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

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

    Практические примеры и советы

    Настройка автозапуска сменных носителей.

    Тип дисков, с которых необходимо разрешить или запретить автозапуск определяется значением ключа NoDriveTypeAutoRun в разделе
    HKEY_CURRENT_USER-Software-Microsoft-Windows-CurrentVersion-Policies-Explorer
    NoDriveTypeAutoRun - это маска запрета автозапуска - шестнадцатеричное число, биты которого, установленные в единицу, означают запрет, а в ноль - разрешение автозапуска:

    Типам дисков соответствуют биты маски (начиная со старшего разряда)

    7 разряд - неопределенный (зарезервированный) тип (Unspecified Reserved Type)
    6 разряд - виртуальный диск в оперативной памяти (DRIVE_RAMDISK)
    5 разряд - CD/DVD диск (DRIVE_CDROM)
    4 разряд - сетевой диск (DRIVE_REMOTE)
    3 разряд - несъемный жесткий диск (DRIVE_FIXED)
    2 разряд - съемный диск (DRIVE_REMOVABLE)
    1 разряд - диск без каталога в корне диска (DRIVE_NO_ROOT_DIR)
    0 разряд - диск не распознан (DRIVE_UNKNOWN)

    Значение маски NoDriveTypeAutoRun по умолчанию - 0x95, т.е. 10010101 в двоичном виде. Таким образом, запрещен автозапуск с устройств, тип которых задан 7,4,2,0 разрядами - с дисков неопределенного типа, сетевых, съемных и нераспознанных. Разрешен автозапуск с дисков, тип которых определяется 6,5,3,1 разрядами, т.е. для ramdisk, CD/DVD, несменных жестких дисков, и дисков без каталога в корне. Для разрешения автозапуска с любых дисков все биты маски NoDriveTypeAutoRun нужно установить в ноль (0x0), для разрешения - в единицу (0xFF). для разрешения автозапуска только с CD/DVD носителей NoDriveTypeAutoRun должен быть равен 0x20.
    С появлением вирусов, распространяющихся через съемные USB диски (флешки), автозапуск программ с внешних носителей стал серьезной угрозой безопасности компьютера и практически, как способ запуска программ, не используется. Обновления безопасности Майкрософт полностью блокируют данную возможность не только для маски NoDriveTypeAutoRun, но и настройками запрета обработки самого файла autorun.inf, в котором содержится информация о запускаемом приложении. Например, следующим образом

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
    @="@SYS:DoesNotExist"

    Для полного исключения автозапуска программ с любых носителей можно выполнить импорт в реестр reg-файла следующего содержания:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
    "AutoRun"=dword:00000000
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
    "NoDriveTypeAutoRun"=dword:000000ff
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
    @="@SYS:DoesNotExist"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files]
    "*.*"=""

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

    Обычно это может быть вызвано тем, приложение было удалено вручную, а не деинсталлировано, или же деинсталлятор некорректно выполнил удаление записей приложения в реестре системы. Исправить ситуацию можно отредактировав раздел:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

    Постоянно приходится указывать путь на дистрибутив Windows

    Найдите раздел
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup
    и в параметре SourcePath укажите путь на ваш дистрибутив - например, строковое значение D:\i386 .

    Проблемы с русским шрифтом на некоторых программах

    Обычно, это характерно для нелокализованных ОС. Даже если вы установили русифицированные шрифты и в региональных установках указали Россию, проблемы с кириллическими шрифтами все же, могут возникнуть при использовании некоторых приложений. Для исправления ситуации перейдите в раздел
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\FontSubstitutes
    и измените (добавьте) следующие параметры:
    System,0 на значение System,204
    Courier,0 на значение Courier,204
    Arial,0 на значение Arial,204
    Courier New,0 на значение Courier New,204
    Times New Roman,0 на значение Times New Roman,204
    Скорее всего, эти параметры там уже есть, но вместо 204 стоит 238.

    Снятие пароля с заставки (ScreenSaver'а)

    Параметры рабочего стола текущего пользователя задаются значениями ключей раздела реестра
    HKEY_CURRENT_USER\Control Panel\Desktop
    Ключи данного раздела реестра определяют не только внешний вид рабочего стола, но и некоторые другие параметры поведения системы, например, при выключении и перезагрузке. Так, ключ WaitToKillAppTimeout определяет время ожидания принудительного завершения приложения в миллисекундах( стандартное значение - 20000 или 20 секунд).
    Использование экранной заставки определяется значением параметра ScreenSaveActive
    1 - заставка используется
    0 - заставка не используется

    Параметр ScreenSaveTimeOut определяет время ожидания в секундах для активации заставки.
    Параметр SCRNSAVE.EXE указывает на файл с расширением .scr используемый для формирования заставки.
    Для снятия пароля с заставки для рабочего стола нужно установить значение ключа ScreenSaverIsSecure равным нулю.

    Очистка имени пользователя в окне регистрации при входе в систему

    Раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
    DontDisplayLastUserName=dword:00000001

    Запрет /разрешение запуска редактора реестра и диспетчера задач.

    Для запрета запуска редактора реестра любым пользователем используется раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system
    DisableRegistryTools =dword:00000001 запрещено запускать
    DisableRegistryTools =dword:00000000 разрешено запускать
    DisableTaskMgr - =dword:00000001 запрещено запускать
    DisableTaskMgr - =dword:00000000 разрешено запускать
    Для ограничения запуска редактора реестра и диспетчера задач текущего пользователя аналогичные значения устанавливаются в разделе
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

    Изменение языка по умолчанию в окне входа в систему

    Выбор языка ввода определяется разделом реестра

    HKEY_USERS\.DEFAULT\Keyboard Layout\Preload.
    В разделе имеется два строковых параметра - "1" и "2".
    Если значения равны:
    1=00000409
    2=00000419
    то раскладка в окне входа в систему станет английской.
    Если значения параметрам присвоить наоборот ("1"=00000419, "2"= 00000409) - то раскладка станет русской.

    Информация о версии Service Pack

    При установке Service Pack проверяется ключ реестра

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\CSDVersion.
    Значение REG_DWORD = 0x00000100 указывает на Service Pack 1 ( Windows 7 )
    Значение REG_DWORD = 0x00000400 указывает на SP4 ( Windows XP )
    Если номер версии устанавливаемого обновления ниже, то установка не выполняется. Если вам нужно все же установить более раннюю версию, можно подправить это значение, например на REG_DWORD = 0x00000300 для Service Pack 3

    В реестре также имеется ключ
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion \CSDVersion
    где хранится текстовое значение для версии Service Pack
    "CSDVersion"="Service Pack 1"











    В начало страницы | На главную страницу сайта