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


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



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


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

Файлы реестра создаются в процессе установки операционной системы и хранятся в папке %SystemRoot%\system32\config (обычно C:\windows\system32\config). Для операционных систем Windows 2000/XP это файлы с именами
default
sam
security
software
system
.     В процессе загрузки система получает монопольный доступ к файлам реестра и, поэтому, их невозможно открыть для просмотра, скопировать, удалить или переименовать обычным образом. Для работы с содержимым системного реестра используется специальное программное обеспечение - редакторы реестра (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

    Возможности конкретного пользователя при работе с данными реестра определяются правами его учетной записи. Далее по тексту, предполагается, если это не оговорено особо, что пользователь имеет права администратора системы.
    Вообще-то, в корневом разделе HKLM есть еще 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 Vista и последующих версий ОС семейства Windows


    Главным отличием реестра операционных систем Windows Vista / 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 XP и старше, существует механизм ,с помощью которого, при возникновении проблем, можно восстановить предыдущее состояние компьютера без потери личных файлов (документы Microsoft Word, рисунки, Избранное, рабочий стол) с использованием точек восстановления (Restore Points), которые при стандартных настройках, создаются системой автоматически во время простоя компьютера или во время существенных системных событий, таких, как установка нового приложения или драйвера. Кроме того, имеется возможность в любое время создать точку восстановления принудительно, с помощью приложения "Восстановление системы", через меню Пуск - Программы- Стандартные - Служебные - Восстановление системы.

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

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

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

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

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

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

    В папке, где хранятся данные точек восстановления, 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 2000/XP - обычно это ":\Documents and Settings\Имя пользователя") под именем ntuser.dat

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

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



2. Использование утилиты резервного копирования/восстановления NTBACKUP.EXE

    В Windows 2000 механизма точек восстановления нет. Однако, как и в Windows XP, имеется утилита архивации, а точнее - резервного копирования и восстановления NTBACKUP.EXE, позволяющая выполнить практически то же, что делается при создании точек восстановления (и даже немного больше). NTBACKUP позволяет создать архив состояния системы из 2-х частей, - загрузочной дискеты, позволяющей выполнить начальную загрузку средств восстановления и архив данных для восстановления в виде обычного файла с расширением .bkf, который может храниться на жестком диске или сменном носителе. Для получения копии состояния системы жмем "Пуск" - "Выполнить"- ntbackup.exe

NTBakup.exe

Запускаем "Мастер архивации", и указываем ему, что нужно архивировать состояние системы.

Мастер архивации

и где хранить данные архива

Где хранить архив

    После завершения работы мастера будет создан архив состояния системы (D:\ntbackup.bkf) С помощью "Мастера восстановления" можно вернуть состояние системы на момент создания архива в любой момент времени.

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

    В ОС Windows 2000 утилита REG.EXE входила в состав пакета Support tools, в Windows XP - входит в стандартный набор программ, устанавливаемых в процессе инсталляции системы. На практике, можно для 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 выдаст ошибку и завершится.

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

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

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

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

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

6. Использование специальных утилит для работы с реестром сторонних производителей.

    Существует немало программ сторонних производителей для работы с реестром, позволяющих не только сохранять и восстанавливать данные реестра, но и выполнять массу других полезных операций, таких, как диагностика и удаление ошибочных или ненужных данных, оптимизация, дефрагментация и т.п. Большинство из них платные - jv16 Power Tools, Registry Mechanic, Super Utilities Pro, Reg Organizer и другие.

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

Из бесплатных редакторов реестра, я бы выделил RegWorks Евгения Лоскутова. Скачать, менее 1 МБ.
Кроме стандартных операций поиска, просмотра и редактирования системного реестра, в программе реализованы дополнительные возможности сохранения и восстановления, хранение истории изменений, и мониторинг обращений к реестру других программ с возможностью фильтрации протоколируемых событий. Кроме всего прочего, в программе имеется встроенный справочник с подробным описанием наиболее важных разделов и параметров.

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

Для создания полной копии реестра в командной строке рекомендую использовать бесплатную консольную утилиту 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 раз в неделю) копирования файлов реестра, и наличие резервной копии нередко выручало в критической ситуации. При чем, утилита Regsaver прекрасно работает с любой версией Windows (от Windows 2000 до Windows 7). Для периодического создания резервных копий файлов реестра можно воспользоваться запуском утилиты от имени администратора с сохранением полномочий.

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

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

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

    Иметь актуальные резервные копии реестра - это практически, всегда выход из ситуации когда работа 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\REPAIR. Такой вариант, не самый оптимальный, на крайний случай. После завершения установки Windows, копии файлов реестра сохраняются в упомянутом каталоге и файл system будет соответствовать этому состоянию ОС.

  • - использование функции восстановления редактора реестра Windows XP при загрузке поврежденного куста.
    Редактор реестра позволяет открывать файлы не только "своего" реестра, но и файлы, являющиеся реестром другой операционной системы. В Windows 2000 для загрузки файла (куста) реестра сохраненного на диске использовался редактор regedt32.exe, в Windows XP функции regedt32.exe и regedit.exe совмещены. И, дополнительно, появилась возможность восстановления поврежденного куста при загрузке в редакторе реестра. Для этого

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

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

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





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

        Одной из лучших программ для мониторинга реестра, с моей точки зрения, является RegMon Марка Руссиновича - маленькая и функциональная утилита, не требующая инсталляции и работающая в операционных системах Windows NT, 2000, XP, 2003, Windows 95, 98, Me и 64-разрядных версиях Windows для архитектуры x64. Скачать RegMon.exe v7.04, 700кб

    В настоящее время, после появления Windows Vista/ Windows 7, утилита Regmon заменена утилитой Process Monitor. Работе с данными программными средствами мониторинга реестра посвящены отдельные статьи, ссылки на которые, имеются на главной странице сайта.
        Не смотря на появление Process Monitor , утилита Regmon по прежнему популярна в среде системных администраторов и опытных пользователей Windows.
    Regmon позволяет в реальном масштабе времени отслеживать, какие приложения обращаются к реестру, в какие разделы, какую информацию они читают или пишут. Информация выдается в удобном виде, который можно настроить под свои нужды - исключить из результатов мониторинга данные о работе с реестром неинтересных вам приложений, подчеркнуть выбранным цветом то, что считаете особо важным, включить в результаты мониторинга только выбранные процессы. Программа позволяет быстро и легко выполнить запуск редактора реестра с переходом к указанному разделу или параметру. Имеется возможность выполнять мониторинг в процессе загрузки операционной системы с записью результатов в специальный журнал %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 и ее использования для мониторинга реестра.

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

    В случае Windows 2000/XPдля отслеживания обращений к реестру, удобнее использовать Regmon.

    Здесь отдельная статья с описанием утилиты Process Monitor и примеры работы с ней.





    Уход за реестром.

        Мониторинг реестра наглядно демонстрирует интенсивное использование его данных прикладным и системным программным обеспечением. Установка и удаление программ, замена устройств, обновление прикладного ПО и т.п. - все это приводит к добавлению, удалению или изменению разделов и ключей реестра. Рано или поздно, в реестре появляются некондиционные или бесполезные данные, растет его размер и увеличивается фрагментация. В некоторой степени падает быстродействие системы и снижается ее надежность. Чтобы этого не происходило, желательно периодически выполнять процедуры устранения ошибок и дефрагментации данных реестра. Практически все утилиты для работы с реестром сторонних производителей умеют выполнять не только копирование и восстановление, но и операции по уходу за реестром. Классическим примером подобной программы можно считать когда-то очень популярную утилиту Ontrack Fix-It Utility 2000, используемую многими системными администраторами до сих пор. На протяжении нескольких лет было выпущено множество новых версий Fix-It, появлялись новые утилиты других производителей, но по надежности, простоте и удобству данная программа оставалась наиболее удачной.
    Сайт компании-производителя Ontrack Data International Ink.
    Данную версию Fix-it на сайте производителя вы не найдете - она давным-давно не поддерживается, и из нее вырос новый (платный) пакет Fix-It Utilities Pro . Скачать Ontrack Fix-It Utility 2000 можно по этой ссылке (16Mb)

    Ontrack Fix-It Utility 2000

    Для сохранения и восстановления реестра используется раздел "Disk and Files" - "SystemSaver". В этом режиме файлы реестра сохраняются в скрытую системную папку Fix-It на системном диске с расширением .mxr По умолчанию сохраняется до 3-х наборов файлов, но можно установить до 9 в подменю Properties подпрограммы System Saver.

    Для обслуживания и оптимизации реестра используются - "System Registry" - "RegistryFixer" и "RegistryDefrag".



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

    Кроме папки "Автозагрузка" для запуска программ используются разделы реестра:
    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 и т.д.


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

    При загрузке операционной системы для инициализации драйверов и служб используется набор управляющих параметров из раздела текущей конфигурации
    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 ) в каталоге пользователя

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

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

    HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts

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

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

    HKEY_LOCAL_MACHINE\Security\Policy\Secrets

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

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

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

        Как я уже упоминал выше, корневой раздел реестра 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 не сохранять список последних открываемых документов по выходу из системы.



    Следующие параметры относятся к разделу реестра
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
    Network

    NoNetSetup=dword:00000001 отключает доступ к значку "Сеть" в Панели управления
    NoFileSharingControl=dword:00000001 скрывает диалоговое окно управления совместным использованием файлов и принтеров, не позволяя пользователям управлять созданием новых совместных файлов или принтеров
    NoNetSetupIDPage=dword:00000001 скрывает вкладку "Идентификация"
    NoNetSetupSecurityPage=dword:00000001 скрывает вкладку "Управление доступом"
    NoEntireNetwork=dword:00000001 скрывает элемент "Вся сеть" в Сетевом окружении
    NoWorkgroupContents=dword:00000001 скрывает всё содержимое Рабочей группы в "Сетевом окружении"

    Следующие параметры относятся к ограничениям для всех пользователей, поскольку используется раздел HKEY_LOCAL_MACHINE, а не HKEY_CURRENT_USER. Для редактирования данных нужно обладать правами администратора системы. Для того, чтобы изменения в реестре вступили в силу, необходимо перезагрузиться
    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

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

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


        Все вышеперечисленные ограничения могут касаться либо конкретного пользователя, либо всех пользователей системы, точнее их учетных записей. Однако в каждой ОС Windows есть еще одна учетная запись, права которой, в некоторой степени, даже выше прав локального администратора - локальная системная учетная запись (Local System Account) от имени которой запускаются системные службы (сервисы) еще до входа пользователя в систему. Если программу (тот же regedit.exe) запустить с правами Local System, то никакие ограничения, связанные с учетными записями любых реальных пользователей действовать не будут. Как запустить редактор реестра с правами локальной системной учетной записи, используя утилиту PSExec или планировщик заданий Windows, я уже рассказывал в начале статьи. Добавлю только одно, чтобы редактор реестра запустился с правами Local System, нужно, чтобы на момент его запуска не было запущено ни одного другого regedit.exe, работающего под какой-либо пользовательской учетной записью.

  • запускаем редактор реестра с правами Local System

  • Вносим нужные исправления в реестр - DisableRegistryTools устанавливаем в 0 или удаляем его вообще. После чего пользуемся редактором реестра как обычно, снимая ограничения на запуск менеджера задач, блокировку антивирусных программ, и прочего, что там еще натворил вирус.

    Кстати, данным способом можно воспользоваться не только для запуска regedit.exe, но и других программ - проводника (Explorer.exe) например
    psexec -s -i C:\WINDOWS\EXPLORER.EXE
    что позволит получить доступ к каталогам и файлам, недоступным реальному пользователю, как, например, скрытая системная папка System Volume Information. Если нет возможности использовать PSEXEC, то можно воспользоваться службой планировщика Windows, создав задание на запуск regedit.exe в интерактивном режиме через 2-3 минуты от текущего времени (например- в 16 час 14 мин.)

    at 16:14 /interactive regedit.exe



        Второй вариант - использование утилиты командной строки REG.EXE :
    REG.EXE DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools
    Для разблокировки менеджера задач:
    REG.EXE DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr

        В большинстве случаев, проблема решается с использованием редактора реестра стороннего производителя, как например, упоминаемая выше утилита RegWorks.


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

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

    Тип дисков, с которых необходимо разрешить или запретить автозапуск определяется значением ключа 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 = 0x00000400 указывает на SP4
    Если номер версии устанавливаемого обновления ниже, то установка не выполняется. Если вам нужно все же установить более раннюю версию, можно подправить это значение, например на REG_DWORD = 0x00000300 для Service Pack 3

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












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