Экспорт файлов реестра
Вы можете экспортировать разделы реестра и все значения, содержащиеся под ними, щёлкнув правой кнопкой мыши раздел и выбрав «Экспортировать». Это действительно важно, если вы собираетесь вносить изменения в свою систему.

После того, как вы получили экспортированный файл реестра, вы можете дважды щёлкнуть по нему, чтобы ввести информацию обратно в реестр, или вы можете выбрать «Изменить», чтобы просмотреть содержимое в Блокноте.

Формат файла для реестра довольно прост — слева имена значений, а справа фактические значения.
HKEY_USERS
Сохраняет все настройки для всех пользователей системы. Для доступа к своим настройкам, вы обычно используете HKCU, но если вам нужно проверить настройки для другого пользователя на вашем компьютере, вы можете использовать этот раздел.

Он содержит пользовательскую информацию о конфигурации для всех в настоящее время активных пользователей на компьютере. Это означает, что пользователи, вошедшие в систему в данный момент (вы) и любые другие пользователи, которые также вошли в систему, но находятся в состоянии «переключение пользователей».
Вот пример того, что вы можете найти под этим ульем:
- HKEY_USERS\.DEFAULT
- HKEY_USERS\S-1-5-18
- HKEY_USERS\S-1-5-19
- HKEY_USERS\S-1-5-20
- HKEY_USERS\S-1-5-21-1461214404-118510055-3688602372-1001
- HKEY_USERS\S-1-5-21-1461214404-118510055-3688602372-1001_Classes
Идентификаторы безопасности, которые вы видите здесь, безусловно, будут отличаться от списка, который мы включили выше.
Хотя у вас, скорее всего, будут .DEFAULT, S-1-5-18, S-1-5-19 и S-1-5-20, которые соответствуют встроенным системным учётным записям, ваши ключи S-1-5-21-xxx будут уникальными для вашего компьютера, поскольку они соответствуют «реальным» учётным записям пользователей в Windows.
Например, если ваш SID следующий:
S-1-5-21-0123456789-012345678-0123456789-1004
HKEY_USERS\S-1-5-21-0123456789-012345678-0123456789-1004
Редактировать можно в любом месте, поскольку они являются одним и тем же.
Как найти идентификатор безопасности пользователя (SID) в Windows
Типы данных в реестре Windows
Windows поддерживает в реестре следующие типы данных:
- REG_BINARY. Двоичные данные. Редактор реестра отображает двоичные данные в шестнадцатеричном виде, и вы должны вводить двоичные данные, используя шестнадцатеричную нотацию. Примером значения типа REG_BINARY является последовательность 0x02 0xFE 0хА9 0x38 0x92 0x38 0хАВ 0xD9.
- REG_DWORD. Значения длиной в два слова (32 бита). Многие значения являются значениями типа REG_DWORD и используются как логические флаги (0 или 1, истина или ложь, да или нет). Также в значениях типа REG_DWORD можно встретить время в миллисекундах (1000 равно 1 секунде). 32-битные беззнаковые числа имеют диапазон от 0 до 4,294,967,295, а 32-битные знаковые числа имеют диапазон от -2,147,483,648 до 2,147,483,647. Вы можете просматривать и редактировать эти значения в десятичной или шестнадцатеричной форме. Примерами REG_DWORD являются значения 0xFE020001 и 0x10010001.
- REG_DWORD_BIG_ENDIAN. Значения длиной в два слова, расположенные в памяти в прямом порядке (первым хранится старший байт). Порядок байтов в этом случае является обратным по отношению к порядку, используемому для значений типа REG_DWORD. Например, число 0x01020304 хранится в памяти как 0x01 0x02 0x03 0x04. На Intel-совместимых архитектурах вы не часто будете сталкивать с этим типом значений.
- REG_DWORD_UTTLE_ENDIAN. Значения длиной в два слова, расположенные в памяти в обратном порядке (первым хранится младший байт). Этот тип является тем же, что и REGDWORD, и из-за того, что Intel-совместимые архитектуры хранят числа в памяти в этом формате, это наиболее общий числовой формат в Windows XP. Например, число 0x01020304 хранится в памяти как 0x04 0x03 0x02 0x01. Редактор реестра не предоставляет возможности создавать значения типа REG_DWORD_LITTLE_ENDIAN потому, что этот тип идентичен REGDWORD.
- REG_EXPAND_SZ. Текст переменной длины. Значение этого типа может включать переменные среды окружения, а программа, использующая эти значения, берет эти переменные из реестра и преобразует перед тем, как использовать их. Например, значение типа REG_EXPAND_SZ, содержащее %USERPROFILE%\Favorites, может быть переведено в C:\Documents and Settings\Jerry\Favorites перед тем, как быть использованным программой. API (Application Programming Interface – интерфейс программирования приложений) для работы с реестром полагается на то, что вызывающая программа сама преобразует переменные окружения в строки типа REG_EXPAND_SZ, таким образом, эти значения бесполезны, если программа не делает этого. Чтобы узнать, как использовать эти типы значений для решения некоторых интересных проблем, обратитесь к гл. 10 «Использование профилей пользователей».
- REG_FULL_RESOURCE_DESCRIPTOR. Список ресурсов устройства или драйвера устройства. Этот тип данных важен для Plug and Play, но не имеет большого значения в вашей работе с реестром. Редактор реестра не предоставляет способа создавать значения этого типа, но он позволяет вам просматривать их. В качестве примера этого типа данных смотрите HKLM\HARDWARE\DESCRIPTION\Description.
- REG_LINK. Ссылка. Вы не можете создавать значения типа REGLINK.
- REG_MULTI_SZ. Двоичные значения, содержащие список строк. Редактор реестра отображает по одной строке текста в строке и позволяет вам редактировать эти списки. В реестре каждая строка отделена от другой при помощи символа null (0x00), а весь список заканчивается двумя символами null.
- REG_NONE. Значения без определенного типа.
- REG_QWORD. Значения длиной в четыре слова (64 бита). Этот тип похож на REG_DWORD, но содержит 64 бита вместо 32. Единственная версия Windows XP, которая поддерживает этот тип — это Windows XP 64-Bit Edition (64-разрядная версия). Вы можете просматривать и редактировать эти значения в десятичной или шестнадца-теричной форме. Примером REG_QWORD является значение 0xFE02000110010001.
- REG_QWORD_BIG_ENDIAN. Значения длиной в четыре слова, расположенные в памяти в прямом порядке (первым хранится старший байт). Порядок байтов в этом случае является обратным по отношению к порядку, используемому для значений типа REG_QWORD. За дополнительной информацией об этом типе обратитесь к описанию типа REG_DWORD_BIG_ENDIAN.
- REG_QWORD_LITTLE_ENDIAN. Значения длиной в четыре слова, расположенные в памяти в обратном порядке (первым хранится младший байт). Этот тип является тем же самым, что и тип REGQWORD. REG_RESOURCE_LIST. Список значений типа REG_FULL_RESO- URCE_DESCRIPTION. Редактор реестра позволяет вам просматривать, но не редактировать значения этого типа.
- REG_RESOURCE_REQUIREMENTS_LIST. Список ресурсов, используемых устройством. Редактор реестра позволяет вам просматривать, но не редактировать значения этого типа.
- REG_SZ. Текст постоянной длины. Значения типа REG_SZ, вместе со значениями типа REG_DWORD, являются наиболее используемыми типами данных в реестре. Примерами значений типа REG_SZ являются «Microsoft Windows». Каждая строка заканчивается символом null. Программы не преобразуют переменные окружения, содержащиеся в значениях типа REG_SZ.
HKEY_CLASSES_ROOT (HKCR)
Раздел HKEY_CLASSES_ROOT (HKCR) – сопоставляет расширения файлов и идентификаторы классов OLE. Фактически он указывает на HKLM\Software\Classes. Система использует эти соответствия чтобы определить, какие приложения или компоненты нужно использовать при открытии или создании тех или иных типов файлов или объектов данных.
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT, часто сокращённо HKCR, представляет собой куст реестра в реестре Windows и содержит информацию об ассоциации расширения файла, а также данные программного идентификатора (ProgID), идентификатора класса (CLSID) и идентификатора интерфейса (IID). Этот ключ на самом деле просто ссылка на HKLM\Software\Classes.

Проще говоря, куст реестра HKEY_CLASSES_ROOT содержит необходимую информацию, чтобы Windows знала, что делать, когда вы просите её сделать что-то, например, просмотреть содержимое диска или открыть файл определённого типа и т. д.
Вы также можете использовать этот раздел, если хотите настроить контекстное меню для определённого типа файла.
Подразделы реестра в HKEY_CLASSES_ROOT
Список ключей реестра в кусте HKEY_CLASSES_ROOT очень длинный и столь же запутанный. Мы не можем объяснить каждый из тысяч ключей, которые вы можете увидеть там, но мы можем разбить его на несколько управляемых частей, которые, надеюсь, немного прояснят эту часть реестра.
Вот некоторые из многих ключей ассоциации расширений файлов, которые вы найдёте в кусте HKEY_CLASSES_ROOT, большинство из которых начинаются с точки:
- HKEY_CLASSES_ROOT\.avi
- HKEY_CLASSES_ROOT\.bmp
- HKEY_CLASSES_ROOT\.exe
- HKEY_CLASSES_ROOT\.html
- HKEY_CLASSES_ROOT\.pdf
- HKEY_CLASSES_ROOT\AudioCD
- HKEY_CLASSES_ROOT\dllfile
Например, на вашем компьютере, когда вы открываете файл с именем draft.rtf, этот файл может открываться с помощью программы WordPad. Данные реестра, которые отвечают за это, хранятся в ключе HKEY_CLASSES_ROOT\.rtf, который определяет WordPad как программу, которая должна открывать файл RTF.
HKCR и CLSID, ProgID и IID
Остальные ключи в HKEY_CLASSES_ROOT — это ключи ProgID, CLSID и IID. Вот несколько примеров каждого из них:
Ключи ProgID расположены в корне HKEY_CLASSES_ROOT вместе с описанными выше ассоциациями расширений файлов:
- HKEY_CLASSES_ROOT\FaxServer.FaxServer
- HKEY_CLASSES_ROOT\JPEGFilter.CoJPEGFilter
- HKEY_CLASSES_ROOT\WindowsMail.Envelope
Все ключи CLSID находятся в подразделе CLSID:
- HKEY_CLASSES_ROOT\CLSID\{00000106-0000-0010-8000-00AA006D2EA4}
- HKEY_CLASSES_ROOT\CLSID\{06C792F8-6212-4F39-BF70-E8C0AC965C23}
- HKEY_CLASSES_ROOT\CLSID\{FA10746C-9B63-4b6c-BC49-FC300EA5F256}
Все ключи IID расположены в подразделе Интерфейс:
- HKEY_CLASSES_ROOT\Interface\{0000000d-0000-0000-C000-000000000046}
- HKEY_CLASSES_ROOT\Interface\{00000089-0000-0010-8000-00AA006D2EA4}
- HKEY_CLASSES_ROOT\Interface\{00000129-0000-0000-C000-000000000046}
Подробнее о HKEY_CLASSES_ROOT
Хотя вы можете редактировать и полностью удалять любой подраздел внутри куста HKEY_CLASSES_ROOT, сама корневая папка, как и все кусты в реестре, не может быть переименована или удалена.
HKEY_CLASSES_ROOT — это глобальный куст, что означает, что он может содержать информацию, которая применяется ко всем пользователям на компьютере и доступна для просмотра каждому пользователю. Это отличается от некоторых ульев, в которых есть информация, которая относится только к пользователю, выполнившему вход в систему.
Это, конечно, означает, что когда новый ключ реестра создаётся в кусте HKEY_CLASSES_ROOT, тот же самый ключ появится в HKEY_LOCAL_MACHINE\Software\Classes, а когда один из них будет удалён, тот же ключ будет удалён из другого места.
HKEY_CURRENT_CONFIG
Хранит всю информацию о текущей конфигурации оборудования. Он используется не очень часто, и это просто ссылка на HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current.

HKEY_CURRENT_CONFIG, иногда сокращенно HKCC, представляет собой куст реестра, который является частью реестра Windows. Сам он не хранит никакой информации, а вместо этого действует как указатель или ярлык для раздела реестра, в котором хранится информация об используемом в данный момент профиле оборудования.
HKEY_CURRENT_CONFIG — это ярлык для улья HKEY_LOCAL_MACHINE. В частности, в раздел реестра \SYSTEM\CurrentControlSet\Hardware Profiles\Current\ этого куста. Именно там информация действительно хранится — HKEY_CURRENT_CONFIG просто предоставляет быстрый способ добраться туда.
Следовательно, HKEY_CURRENT_CONFIG действительно существует просто для удобства. Легче получить доступ к данным в другом разделе реестра — просмотреть и изменить его, просто перейдя в HKEY_CURRENT_CONFIG. Поскольку они содержат одинаковую информацию и всегда связаны друг с другом, вы можете вносить изменения в любом месте, чтобы получить одинаковые результаты.
Подразделы реестра в HKEY_CURRENT_CONFIG
Два ключа реестра, которые вы найдёте в кусте HKEY_CURRENT_CONFIG:
- HKEY_CURRENT_CONFIG\Software
- HKEY_CURRENT_CONFIG\System
Подробнее о HKEY_CURRENT_CONFIG
Как мы уже говорили выше, HKEY_CURRENT_CONFIG реплицирует всё, что находится в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\. Это означает, что если вы измените что-либо в первом разделе реестра, это будет отражено во втором, и наоборот.
Например, если вы добавляете, редактируете, удаляете или переименовываете что-либо в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\, а затем выйдите из редактора реестра и повторно откройте его (или обновите его с помощью клавиши F5), вы увидите что изменение произошло немедленно в ключе the HKEY_CURRENT_CONFIG\Software\.
Вы можете заметить, что внутри HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\ есть несколько ключей реестра. Это потому, что этот раздел реестра используется для хранения всех профилей оборудования для всего компьютера. Причина, по которой вы видите только один профиль оборудования в ключе HKEY_CURRENT_CONFIG, заключается в том, что он указывает только на один из этих профилей оборудования, в частности, на тот, который относится к пользователю, который в данный момент вошёл в систему.
В некоторых версиях Windows вы можете создать дополнительные профили оборудования, щёлкнув ссылку «Система» на панели управления. Щёлкните или коснитесь вкладки «Оборудование», а затем «Профили оборудования».
Специфика добавления отсутствующего ключа в реестр
Посредством REG файла имеется возможность не только корректировать существующие в системе ключи, изменив значение параметра, но и добавить в реестр отсутствующий компонент. Такая потребность выливается из особенностей функционирования системы: некоторые ключи, даже при их отсутствии в конкретной ветке, изначально являются неотъемлемой частью ОС, что гарантирует их функционирование, будто параметру присвоено по умолчанию определённое значение.
Естественно, изменить «несуществующий параметр» при возникновении такой необходимости невозможно, потому, с целью дальнейшего управления конкретным ключом его необходимо инсталлировать в реестр, прописав в той ветке, где он должен располагаться.
Регламент процедуры добавления ключа в определённую ветку реестра, используя REG файл, рассмотрим на примере отключения процесса перезагрузки ПК, запрограммированного и автоматически выполняемого системой, при появлении «экрана смерти»:
- Как и в предыдущем случае, первая строка файла – стандартный идентификатор или «приветствие» для «РЕГ» документа.
- Второй строчкой будет выступать название создаваемого ключа, в конкретной ситуации это будет фраза «; Отключить автоматический запуск при BSOD» с обязательным проставлением точки с запятой перед аннотацией.
- В третьей строке конкретизируется место, куда необходимо добавить ключ, прописанное в квадратных скобках. В конкретном случае стоит прописать следующий путь: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/CrashControl.

- Завершающий этап – задать необходимый параметр для конкретного значения, что в описываемой ситуации предопределяется следующей установкой: «AutoReboot»=dword:00000000, и сохранить файл в соответствующем требованиям формате REG.

Загрузка кустов реестра
Теперь вы можете открыть их на другом компьютере и осмотреться, используя опцию Загрузить куст.
Иерархическая структура реестра
Структура реестра похожа на структуру хранилища файлов.
Возможно, вам будет проще использовать терминологию реестра, обратившись к древовидным форматам или хранилищам файлов. Аналогия с файлами особенно уместна, потому что раньше Windows настраивалась из файлов .INI. В частности, сами ключи используют соглашения об именах файлов. Это удобная функция, поскольку Windows может управлять объектами реестра так же, как файловыми объектами. У кустов реестра есть символические ссылки, которые похожи на сопоставления виртуальных путей в файловой системе. Подразделы реестра также имеют владельцев и разрешения, как каталоги и папки.
Таблица «Терминология реестра»
Обратите внимание, что ключ может содержать подразделы или значения. Подраздел может иметь другой подраздел, поэтому ключ и подраздел обычно взаимозаменяемы так же, как каталог и подкаталог или папка и подпапка. Ключ без значения может хранить данные в так называемом значении по умолчанию.
Комплексное изменение пунктов реестра одним файлом
Иногда необходимо изменить не один, а несколько ключей. С этой целью можно прописать файлы, в количестве, равном численности изменений, но облегчить задачу может создание одного файла, вмещающего команды для всех параметров, требующих корректировки.
При создании комплексного файла для корректировки нескольких веток реестра стоит придерживаться следующих несложных правил:
- Приветствие пишется только один раз, в самом начале документа.
- Каждую установку должен возглавлять «; комментарий», что впоследствии облегчит пользователю работу с документом.
- Стараться в одном шаблоне комплектовать исключительно взаимосвязанные параметры. Разноплановые ветки также можно изменять одним файлом, но при необходимости вернуть всё обратно или откорректировать выборочно внесённые изменения, особенно, спустя некоторое время, объединение однотипных установок в один файл под конкретным названием облегчит задачу поиска нужного объекта «РЕГ».
Чтобы добавить в реестр изменения, касающиеся нескольких ключей, достаточно создать комплексный файл с расширением REG следующим образом:
- Прописать приветствие.
- Задать команду для конкретного ключа или параметра согласно регламенту, с учётом синтаксиса для конкретной манипуляции.
- С новой строчки писать комментарий и установку для следующего ключа, нуждающегося в корректировке.
Все прописанные в файле установки при корректном их составлении будут выполнены синхронно.
HKEY_CURRENT_USER (HKCU)
Раздел HKEY_CURRENT_USER (HKCU) указывает на профиль текущего пользователя (вошедшего в данный момент в систему) внутри HKU. Microsoft требует, чтобы приложения хранили все предпочтения пользователей в подразделах под HKCU. Например, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Paint содержит личные настройки пользователей программы Paint.
Типы данных в реестре
В реестре могут храниться данные семи типов:
- REG_BINARY хранит произвольные двоичные данные в «сыром» виде, без переформатирования и синтаксического разбора. Эти данные можно просматривать в двоичном или шестнадцатеричном виде при помощи редактора реестра.
- REG_DWORD хранит параметры, представленные восьмибайтными (длинные) целыми числами. Этот тип данных обычно применяется, когда параметр обозначает счетчик или интервал. Еще одно его применение в качестве флага (0 – флаг снят, 1 – установлен).
- REG_SZ представляет собой обычную строку в кодировке Unicode любой длины. Наиболее часто в этом типе данных хранится информация, которая будет читаться пользователем, пути доступа, названия устройств и т.п.
- REG_EXPAND_SZ – вид REG_SZ, используемый приложениями для хранения конструкций вида %SystemRoot%\System32, например. При чтении этой строки Windows заменяет %SystemRoot% на имя папки, куда она установлена.
- REG_MULTI_SZ представляет собой набор произвольного количества параметров типа REG_SZ. В этом типе данных хранится, например, список IP адресов, назначенных сетевому интерфейсу.
- REG_FULL_RESOURCE_DESCRIPTOR применяется для кодирования информации о системных ресурсах, необходимых для какого-либо из устройств.
- REG_NONE служит как семафор, т.е. параметр существует, но не содержит ни какого значения. Некоторые приложения проверяют наличие этого параметра и, исходя из результата проверки, выполняют или не выполняют действие.
При добавлении параметров в реестр нужно обязательно использовать тот тип данных, который указан в источнике, откуда взята информация о необходимости добавить параметр. Если тип данных не будет соответствовать тому, который ожидает найти приложение в указанном месте, то последствия могут быть непредсказуемыми.
Где реестр хранится на диске?
Файлы реестра хранятся в нескольких местах.
Вы можете найти большинство из них в папке C:\Windows\System32\config.

Видите эти файлы SAM, SECURITY, SOFTWARE и SYSTEM? Они соответствуют тем же ключам в папке HKEY_LOCAL_MACHINE.
В следующей таблице перечислены все каталоги Windows, в которых можно найти файлы данных реестра. Эти файлы фактически являются снимками большинства, но не всех кустов реестра. В таблице 3 приведены основные расположения файлов. Если вы посмотрите на свой диск, вы увидите, что в каждом из этих каталогов есть дополнительные подкаталоги.
Есть несколько типов файлов реестра
1 Начиная с Vista, Transactional Registry (TxR) выполняет обновления транзакций, которыми управляет Transaction Manager (TM) режима ядра Windows. Это обеспечивает атомарные транзакции, при которых все обновления выполняются вместе или не выполняются вовсе. Диспетчер транзакций использует общую файловую систему ведения журнала и хранит файлы реестра в папке %SystemRoot%\System32\Config\ (например, C:\Windows\System32\Config\) и во вложенной папке Txr, а также в других папках реестра.
Иерархия реестра

Для редактирования реестра мы используем встроенный редактор реестра или regedit. Он отображает древовидную структуру навигации. Самым верхним является ваш компьютер, за которым следует список папок и подпапок. Эти папки называются KEYS, и в компьютере есть пять фиксированных наборов папок.
- HKEY_CLASSES_ROOT: содержит информацию об ассоциации расширений файлов, которая помогает компьютеру понять, что делать с задачей при запросе.
- HKEY_CURRENT_USER: содержит информацию о конфигурации для Windows и программное обеспечение для текущего пользователя.
- HKEY_LOCAL_MACHINE: хранит конфигурацию для программного обеспечения, установленного на компьютере, а также для ОС Windows
- HKEY_USERS: здесь вы можете найти пользовательскую конфигурацию для всех пользователей на этом компьютере.
- HKEY_CURRENT_CONFIG: это указатель на HKEY_LOCAL_MACHINE
Это мастер-ключи, поскольку вы не можете создать НОВЫЙ КЛЮЧ в разделе «Компьютер», но вы можете сгенерировать новые ключи под любым из этих мастер-ключей.

Создать ключ реестра легко. Щелкните правой кнопкой мыши любую папку или пробел и выберите «Создать». Вы можете создать ключ, строковое значение, двоичное значение, значение DWORD (32-разрядное), значение QWORD (64-разрядное), многостроковое значение или расширяемое строковое значение. Этот метод полезен, когда вы планируете внести незначительные изменения, чтобы исправить проблему на вашем компьютере. Это может быть связано с приложением или на уровне ОС.

- Чтобы отредактировать существующее значение, дважды щелкните его, чтобы запустить редактор.

- Чтобы удалить ключ, щелкните его правой кнопкой мыши и выберите «Удалить».
- У вас также есть возможность переименовать, экспортировать, копировать и установить разрешения.
Щелкните правой кнопкой мыши по любому из существующих ключей и экспортируйте его. Откройте этот файл в блокноте, и он поможет вам понять, как вы можете редактировать ключ и его значения. Это полезно, когда вы хотите выполнить массовое редактирование с резервным копированием на месте.

Обратите внимание на объявление версии, за которым следует пустая строка, затем путь, за которым следует остаток в кавычках, и снова пустая строка. После завершения редактирования вы можете щелкнуть правой кнопкой мыши и выбрать объединить файл в куст реестра.
Если вы нашли редактор реестра по умолчанию сложным, вы можете использовать такие инструменты, как RegCool, Registry Manager Lite. Они предлагают такие функции, как Отмена, Повторить, управление разрешениями, окно с вкладками, импорт, экспорт, избранное и так далее.
Если вы разработчик приложения, вам следует использовать программирование для управления настройками приложения в реестре. Вот пример, и он будет варьироваться в зависимости от языка, который вы используете для разработки приложения.
RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\services\eventlog\MyApplication\MyService"); key.Close();
Теперь, когда вы знаете, как это сделать, мы также рекомендуем вам прочитать, что означает каждый из них. Это важно и поможет вам убедиться, что внесенные вами изменения верны.
Утилита REG
Утилита REG — это встроенная программа Windows, которая позволяет выполнять различные действия с реестром, в том числе сохранять в файл кусты реестра или их части, добавлять, удалять значения, делать запрос к реестру, копировать и прочее.
Рассмотрим возможности REG более подробно.
Общий вид команды:
REG <операция> [Список параметров]
Среди операций могут быть:
- QUERY
- ADD
- DELETE
- COPY
- SAVE
- LOAD
- UNLOAD
- RESTORE
- COMPARE
- EXPORT
- IMPORT
- FLAGS
REG SAVE — сохранение куста реестра в файл
REG SAVE <имя_раздела> <имя_файла> [/y] [/reg:32 | /reg:64]
имя_раздела КОРЕНЬ\<подраздел> КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ] подраздел Полное имя подраздела реестра в одном из выбранных корневых файлов. имя_файла Имя диска, на который сохраняется файл. Если путь не указан, то файл создается в текущей папке вызывающего процесса. /y Выполнение замены существующего файла без запроса подтверждения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Пример. Сохранение куста MyApp в файл AppBkUp.hiv текущей папки:
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
REG QUER — отображение значения параметра реестра
REG QUERY имя_раздела [/v [имя_параметра] | /ve] [/s] [/f данные [/k] [/d] [/c] [/e]] [/t тип] [/z] [/se разделитель] [/reg:32 | /reg:64]
имя_раздела [\\компьютер\]полное_имя_раздела компьютер — имя удаленного компьютера, по умолчанию используется текущий компьютер. На удаленных компьютерах доступны только разделы HKLM и HKU полное_имя_раздела — путь в форме корневой_раздел\подраздел корневой раздел — [ HKLM | HKCU | HKCR | HKU | HKCC ] подраздел — полное имя раздела реестра в указанном корневом_разделе /v Запросы требуемых параметров в указанном разделе реестра. Если не указано, запрашиваются все параметры раздела. Аргумент этого параметра может быть необязательным, только если задан параметр /f. Это указывает на поиск только в именах параметров реестра. /ve Запросы параметра по умолчанию или с пустым именем (по умолчанию). /s Запрос всех вложенных подразделов и их параметров (аналогично команде dir /s). /se Указание разделителя (длиной в 1 знак) в строке данных для REG_MULTI_SZ. По умолчанию в качестве разделителя используется "\0". /f Данные или шаблон для поиска. Если строка содержит пробелы, заключайте ее в кавычки. Значение по умолчанию: "*". /k Указывает на поиск только в именах разделов. /d Указывает на поиск только в данных. /c Указывает на учет регистра знаков при поиске. По умолчанию при поиске регистр знаков не учитывается. /e Указывает на возврат только точных совпадений. По умолчанию возвращаются все совпадения. /t Указывает тип данных параметра реестра. Допустимые типы: REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE По умолчанию будут использоваться все типы. /z Подробности: отображение числового кода типа имени значения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Отображение значения параметра реестра Version:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version
Отображение всех подразделов и их параметров в разделе реестра Setup удаленного компьютера ABC:
REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
Отображение всех подразделов и параметров со знаком “#” в качестве разделителя для всех параметров типа REG_MULTI_SZ:
REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
Отображение раздела, параметра и данных с учетом реестра букв для точных совпадений с “SYSTEM” типа REG_SZ из корневого раздела HKLM:
REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
Отображение раздела, параметра и данных для совпадений с “0F” типа REG_BINARY среди данных в корневом разделе HKCU:
REG QUERY HKCU /f 0F /d /t REG_BINARY
Отображение параметра и данных для пустого значения (по умолчанию) в разделе HKLM\SOFTWARE:
REG QUERY HKLM\SOFTWARE /ve
REG ADD — добавление разделов и параметров в реестр
REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>] [/d <данные>] [/f] [/reg:32 | /reg:64]
имя_раздела [\\<компьютер>\]<раздел> Компьютер — имя удаленного компьютера. Если оно опущено, то по умолчанию используется локальный компьютер. На удаленном компьютере доступны только корневые разделы HKLM и HKU. Раздел — КОРЕНЬ\<подраздел> КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ] Подраздел — полное имя подраздела реестра в указанном корневом разделе. /v Имя параметра, добавляемого в выбранный раздел. /ve Добавление параметра с пустым именем (по умолчанию) в этот раздел. /t Тип данных [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ] Если не указывается, то по умолчанию используется REG_SZ. /s Символ, используемый в качестве разделителя данных для параметров типа REG_MULTI_SZ. Если не указан, то в качестве разделителя используется "\0". /d Значение, присваиваемое добавляемому параметру реестра. /f Принудительно перезаписывает существующую запись реестра без запроса подтверждения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Добавляет раздел HKLM\Software\MyCo на удаленном компьютере ABC:
REG ADD \\ABC\HKLM\Software\MyCo
Добавляет параметр (имя: Data, тип: REG_BINARY, данные: fe340ead):
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
Добавляет параметр (имя: MRU, тип: REG_MULTI_SZ, данные: fax\0mail\0\0):
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
Добавляет параметр (имя: Path, тип: REG_EXPAND_SZ, данные: %systemroot%) Примечание. В расширяемой строке используйте знак вставки ( ^ ):
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
REG DELETE — удаление раздела или параметра реестра
REG DELETE <имя_раздела> [/v <имя_параметра> | /ve | /va] [/f] [/reg:32 | /reg:64]
имя_раздела [\\<компьютер>\]<раздел> компьютер Имя удаленного компьютера; если оно опущено, по умолчанию используется локальный компьютер. На удаленном компьютере можно использовать только корневые разделы HKLM и HKU. раздел КОРЕНЬ\подраздел КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ] подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов. имя_параметра Имя параметра, удаляемого из выбранного раздела. Если оно опущено, удаляются все подразделы и значения указанного раздела. /ve Удаляет пустое имя параметра (по умолчанию). /va Удаляет все параметры в указанном разделе. /f Выполняет принудительное удаление без запроса подтверждения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Удаляет раздел реестра Timeout и все его подразделы и параметры:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
Удаляет параметр реестра MTU из раздела MyCo на компьютере ZODIAC:
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
REG COPY — копирование подразделов и параметров
REG COPY <раздел1> <раздел2> [/s] [/f] [/reg:32 | /reg:64]
раздел Имя раздела в формате: [\\Компьютер\]Путь компьютер Имя удаленного компьютера: если оно опущено, то по умолчанию считается равным имени локального компьютера. Для удаленных компьютеров доступны только HKLM и HKU. путь Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел. КОРЕНЬ Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ]. подраздел Полный путь к разделу реестра в выбранном корневом разделе. /s Копирование всех подразделов и параметров. /f Принудительное копирование без дополнительного предупреждения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Копирует все подразделы и параметры раздела MyApp в раздел SaveMyApp:
REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
Копирует все параметры раздела MyCo с компьютера ZODIAC в раздел MyCo1 на локальном компьютере:
REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
REG RESTORE — восстановление раздела из файла (с заменой)
REG RESTORE <имя_раздела> <имя_файла> [/reg:32 | /reg:64]
имя_раздела ROOTKEY\SubKey (только локальный компьютер) ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey Полное имя подраздела реестра, в который восстанавливается файл куста. Замена существующих параметров разделов и подразделов. имя_файла Имя файла куста, подлежащего восстановлению. Чтобы создать данный файл, необходимо использовать REG SAVE. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Примеры. Восстановление файла NTRKBkUp.hiv заменой раздела ResKit:
REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv
REG LOAD — загрузка файла в раздел
REG LOAD <имя_раздела> <имя_файла> [/reg:32 | /reg:64]
имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер) КОРЕНЬ [ HKLM | HKU] подраздел Имя подраздела реестра, в который загружается файл куста. Создание нового раздела. имя_файла Имя файла куста, подлежащего загрузке. Чтобы создать данный файл, необходимо использовать REG SAVE. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Примеры. Загрузка файла TempHive.hiv в раздел HKLM\TempHive:
REG LOAD HKLM\TempHive TempHive.hiv
REG UNLOAD — выгрузка куста реестра
REG UNLOAD <имя_раздела>
имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер) КОРЕНЬ [ HKLM | HKU] подраздел Имя подраздела куста, в который выгружается файл.
Примеры. Выгрузка куста реестра TempHive в HKLM:
REG UNLOAD HKLM\TempHive
REG COMPARE — сравнение разделов и значений
REG COMPARE <имя_раздела_1> <имя_раздела_2> [/v <имя_параметра> | /ve] [вывод] [/s] [/reg:32 | /reg:64]
имя_раздела [\\<компьютер>\]<раздел> компьютер Имя удаленного компьютера, если оно опущено, по умолчанию используется локальный компьютер. На удаленном компьютере можно использовать только корневые разделы HKLM и HKU. имя_раздела КОРЕНЬ\<подраздел> Если имя раздела 1 не указано, то имя раздела 2 равно имени раздела 1. КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ] подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов. имя_параметра Имя параметра в выбранном разделе, подлежащее сравнению. Если опущено, то сравниваются все параметры в разделе. /ve Сравнение параметров раздела с пустым именем (по умолчанию). /s Сравнение всех подразделов и параметров. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений. Вывод [/oa | /od | /os | /on] Если опущен, то выводятся только различия. /oa Вывод всех различий и совпадений. /od Вывод только различий. /os Вывод только совпадений. /on Без вывода. Код возврата: 0 - Успешно, сравниваемые данные идентичны 1 - При обработке произошла ошибка 2 - Успешно, сравниваемые данные отличаются Примечание: Символы в начале каждой строки читаются следующим образом: = данные FullKey1 равны данным FullKey2 < относится к данным FullKey1, если они отличаются от данных FullKey2 > относится к данным FullKey2, если они отличаются от данных FullKey1
Сравнивает все значения в разделе MyApp со значениями раздела SaveMyApp:
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
Сравнивает значения Version в разделах MyCo и MyCo1:
REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
Сравнивает все подразделы и значения параметров в разделе HKLM\Software\MyCo реестра на компьютере ZODIAC с аналогичным разделом на текущем компьютере:
REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s
REG EXPORT — экспорт всех подразделов и параметров раздела
REG EXPORT <имя_раздела> <имя_файла> [/y] [/reg:32 | /reg:64]
имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер). КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ] подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов. имя_файла Имя диска, на который экспортируется файл /y Выполнение замены существующего файла без запроса подтверждения. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Пример. Экспорт всех подразделов и параметров раздела MyApp в файл AppBkUp.reg:
REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
REG IMPORT — импорт записей реестра из файла
REG IMPORT <имя_файла> [/reg:32 | /reg:64]
имя_файла Имя диска, с которого импортируется файл (только локальный компьютер). /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Пример. Импорт записей реестра из файла AppBkUp.reg:
REG IMPORT AppBkUp.reg
REG FLAGS — отображает и устанавливает текущие флаги раздела
REG FLAGS имя_раздела [QUERY | SET [DONT_VIRTUALIZE] [DONT_SILENT_FAIL] [RECURSE_FLAG]] [/reg:32 | /reg:64]
имя_раздела "HKLM\Software"[\подраздел] (ограничено этими разделами только на локальном компьютере). Подраздел Полное имя раздела реестра в узле HKLM\Software. DONT_VIRTUALIZE DONT_SILENT_FAIL RECURSE_FLAG Используется вместе с параметром SET; флаги, указанные в командной строке, будут установлены, не указанные — удалены. /reg:32 Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений. /reg:64 Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
Отображает текущие флаги раздела MyApp:
REG FLAGS HKLM\Software\MyCo\MyApp QUERY
Устанавливает флаг DONT_VIRTUALIZE (и удаляет флаги DONT_SILENT_FAIL и RECURSE_FLAG) для раздела MyApp и всех его подразделов:
REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s
Синтаксис файлов для правки реестра
Как уже было сказано, критично необходимо, чтобы файл можно было использовать в конкретных целях, прописать его корректно в соответствии с требованиями и правилами.
Не рекомендуется самостоятельно вмешиваться в реестр, если вы не имеете опыта работы с программными компонентами системы. Если правила проигнорировать, или же некорректно составить программный шаблон, последствия могут быть разными: от простой ограниченной функциональности до сложно исправимых неполадок в работе операционной системы.
Работоспособность файлу гарантирует его корректное написание, с применением специального синтаксиса и порядка составления команд, согласно следующему регламенту формирования документа:
- Для начала открывается текстовый документ – «Блокнот» или любой иной доступный для пользователя инструмент.
- Первой строкой документа обязательно должен идти идентификатор файла для его распознавания системой – Windows Registry Editor Version 5.00. Это своеобразное приветствие, которое позволяет операционной системе, независимо от того, установлена на компьютере Windows 10 или более ранняя версия, идентифицировать объект. Иногда в качестве приветствия встречается в файлах фраза REGEDIT4, но её применение актуально только для ПК с установленной Windows 98/ NT 4.0. Заголовок документа прописывается только один раз, даже при условии, что файл содержит несколько командных направлений или ключей.
- Следующим пунктом документа должна идти текстовая фраза, как комментарий к прописанной далее процедуре, с установленной точкой с запятой перед фразой. К примеру, если создаётся REG файл для Windows, предназначенный для осуществления отключения меню последних документов, то пишется следующая фраза «; Отключить меню Документы в меню Пуск». Абсолютно все фразы, перед которыми проставлен разделительный знак «точка с запятой», система воспринимает как комментарии.

- Дальше надо пользователю запрограммировать «маршрут» к изменяемому параметру, указав в квадратных скобках через косую линию очерёдность перехода по папкам к конечному пункту. В соответствии с предыдущим примером путь должен быть следующим: HKEY_CURRENT_UER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer.

- Завершающим этапом создания шаблона является моделирование необходимого поведения конкретного инструмента или операционной системы посредством написания названия параметра и применимого к нему значения. Для отключения недавних документов потребуется задать директиву следующим образом: «NoRecentDocsMenu»=hex:01.00.00.00. После знака равенства прописывается соответствующий тип и значение параметра, а название параметра обязательно берётся в кавычки.

Остаётся только сохранить файл описанным в предыдущем разделе методом и эксплуатировать его по назначению при возникновении такой потребности.
Оглавление
1. Что такое реестр Windows?
2. Иерархическая структура реестра
3. Что такое куст или улей реестра (hive)?
9. Где реестр хранится на диске?
10. Создание новых ключей и значений
12. Экспорт файлов реестра
14. Загрузка кустов реестра
15. Как получить доступ к закрытым частям реестра SAM и SECURITY
17. Программы для извлечения информации из реестра Windows
17.8 Утилиты NirSoft для работы с реестром
17.9 Извлечение кустов реестра Windows из виртуальных машин
HKEY_CURRENT_USER

- HKEY_CURRENT_USER\AppEvents
- HKEY_CURRENT_USER\Console
- HKEY_CURRENT_USER\Control Panel
- HKEY_CURRENT_USER\Environment
- HKEY_CURRENT_USER\EUDC
- HKEY_CURRENT_USER\Identities
- HKEY_CURRENT_USER\Keyboard Layout
- HKEY_CURRENT_USER\Network
- HKEY_CURRENT_USER\Printers
- HKEY_CURRENT_USER\Software
- HKEY_CURRENT_USER\System
- HKEY_CURRENT_USER\Volatile Environment
- HKEY_CURRENT_USER\APPEVENTS\EVENTLABELS
Здесь можно найти ярлыки, звуки и описания для различных функций в Windows и сторонних приложениях, таких как звуковые сигналы факса, завершённые задачи iTunes, сигнал низкого заряда батареи, звуковые сигналы почты и т. д.
- HKEY_CURRENT_USER\CONTROL PANEL
В разделе \Control Panel\Keyboard находятся несколько параметров клавиатуры, такие как параметры задержки клавиатуры и скорости клавиатуры, оба из которых контролируются с помощью параметров задержки повторения и частоты повторения в апплете панели управления клавиатурой.
Ещё один раздел панели управления предназначен исключительно для курсора мыши, он находится в разделе «Cursors». Здесь хранятся имя и физическое расположение файлов курсоров по умолчанию и пользовательских курсоров. Windows использует файлы неподвижных и анимированных курсоров с расширениями файлов CUR и ANI соответственно, поэтому большинство файлов курсоров, найденных здесь, указывают на файлы этих типов в папке %SystemRoot%\cursors\.
То же самое верно и для клавиши рабочего стола панели управления HKCU, которая определяет множество параметров рабочего стола в таких значениях, как WallpaperStyle, который описывает, следует ли центрировать обои или растягивать их по дисплею. Другие в том же месте включают CursorBlinkRate, ScreenSaveActive, ScreenSaveTimeOut и MenuShowDelay.
- HKEY_CURRENT_USER\ENVIRONMENT
Ключ Environment — это то место, где находятся переменные среды, такие как PATH и TEMP. Изменения можно внести здесь или через проводник Windows, и они будут отражены в обоих местах.
- HKEY_CURRENT_USER\SOFTWARE
В этом разделе реестра перечислено множество записей программного обеспечения для конкретных пользователей. Одним из примеров является расположение программы веб-браузера Firefox. В этом подразделе находится значение PathToExe, объясняющее, где находится firefox.exe в папке установки:
HKEY_CURRENT_USER\Software\Mozilla\Mozilla Firefox\57.0



