Типы значений реестра
Значение реестра может хранить данные в одном из нескольких форматов, например строковое или целочисленное значение. При хранении данных в значении реестра, например путем вызова функции RegSetValueEx , можно указать тип хранимых данных, указав один из типов в таблице ниже. При получении значения реестра такие функции, как RegQueryValueEx , используют эти типы для указания типа полученных данных.
В файле заголовка определены следующие типы значений winnt.h реестра:
| Значение | Тип |
|---|---|
| REG_BINARY | Двоичные данные в любой форме. |
| REG_DWORD | 32-разрядное число. |
| REG_DWORD_LITTLE_ENDIAN | 32-разрядное число в малобайтовом формате. Windows предназначена для работы в архитектурах компьютеров с маленьким байтом. Таким образом, это значение определяется как REG_DWORD в файлах заголовков Windows. |
| REG_DWORD_BIG_ENDIAN | 32-разрядное число в формате big-endian. Некоторые системы UNIX поддерживают архитектуры big-endian. |
| REG_EXPAND_SZ | Строка, завершающаяся нулевым значением, которая содержит нерасширенные ссылки на переменные среды, например %PATH%. Это строка Юникода или ANSI в зависимости от того, используете ли вы функции Юникод или ANSI. Чтобы развернуть ссылки на переменные среды, используйте функцию ExpandEnvironmentStrings . |
| REG_LINK | Строка Юникода, завершающаяся null, которая содержит целевой путь символьной ссылки, созданной путем вызова функции RegCreateKeyEx с REG_OPTION_CREATE_LINK. |
| REG_MULTI_SZ | Последовательность строк, заканчивающихся значением NULL, которая завершается пустой строкой ( \0 ). Ниже приведен пример: String1\0String2\0String3\0LastString\0\0 . Первый \0 завершает первую строку, второй — с последней \0 строки, а последний \0 завершает последовательность. Обратите внимание, что конечный признак конца должен быть учтен в длине строки. |
| REG_NONE | Нет определенного типа значения. |
| REG_QWORD | 64-разрядное число. |
| REG_QWORD_LITTLE_ENDIAN | 64-разрядное число в малобайтовом формате. Windows is designed to run on little-endian computer architectures. Therefore, this value is defined as REG_QWORD in the Windows header files. |
| REG_SZ | Строка с нулевым символом в конце. It’s either a Unicode or an ANSI string, depending on whether you use the Unicode or ANSI functions. |
Строковые значения
Если данные имеют REG_SZ тип , REG_MULTI_SZ или REG_EXPAND_SZ , возможно, строка не была сохранена с соответствующими завершающим символами NULL. Поэтому при чтении строки из реестра необходимо убедиться, что строка правильно завершена, прежде чем использовать ее; в противном случае он может перезаписать буфер. Обратите внимание, что REG_MULTI_SZ строки должны содержать два завершающих null символа.
При записи строки в реестр необходимо указать длину строки, включая завершающий символ NULL ( \0 ). Распространенной ошибкой является использование strlen функции для определения длины строки, но при этом забывается, что strlen возвращает только количество символов в строке, не считая завершающего значения NULL. Поэтому следует вычислить длину строки с помощью strlen(string) + 1
Строка REG_MULTI_SZ заканчивается строкой длиной 0. Таким образом, невозможно включить в последовательность строку нулевой длины. Пустая последовательность определяется следующим образом: \0 .
В следующем примере показано пошаговое выполнение REG_MULTI_SZ строки.
#include #include #include void SampleSzz(PTSTR pszz) < _tprintf(_TEXT("\tBegin multi-sz string\n")); while (*pszz) < _tprintf(_TEXT("\t\t%s\n"), pszz); pszz = pszz + _tcslen(pszz) + 1; >_tprintf(_TEXT("\tEnd multi-sz\n")); > int __cdecl main(int argc, char **argv) < // Because the compiler adds a \0 at the end of quoted strings, // there are two \0 terminators at the end. _tprintf(_TEXT("Conventional multi-sz string:\n")); SampleSzz(_TEXT("String1\0String2\0String3\0LastString\0")); _tprintf(_TEXT("\nTest case with no strings:\n")); SampleSzz(_TEXT("")); return 0; >
Форматы байтов
В малобайтовом формате многобайтовое значение хранится в памяти от наименьшего байта ( маленького конца) до самого высокого байта. Например, значение 0x12345678 хранится как 0x78 0x56 0x34 0x12 в формате с маленьким байтом.
В формате big-endian многобайтовое значение хранится в памяти от самого высокого байта ( большого конца) до самого низкого байта. Например, значение 0x12345678 хранится в 0x12 0x34 0x56 0x78 формате big-endian.
Эти термины являются беззаботными культурными ссылками на сатирический роман Джонатана Свифта «Путешествия Гулливера».
Обратная связь
Были ли сведения на этой странице полезными?
Типы данных реестра
Как уже говорилось ранее, в реестре хранится громадное количество информации, включающее профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах.
Поскольку реестр Microsoft Windows представляет собой сложную реляционную базу данных, вся информация, которая может храниться в конечных информационных контейнерах этой базы (параметрах), должна быть строго классифицирована. Классификация хранящихся в параметрах значений производится по типу данных, представляющих это значение. Всего насчитывается 11 таких типов
Раздел и подраздел могут содержать 0, 1 или несколько параметров, параметр по умолчанию, а также 0 или несколько подразделов. Каждый параметр имеет имя, тип и значение.
Три части параметра реестра всегда располагаются в определенном порядке: Имя, Тип данных, значение (например: [RegistrySizeLimit] [REG_DWORD] [0x8000000]).
В таблице, которая будет приведена ниже, содержится список типов данных, определенных и используемых Windows на сегодняшний день.
Максимальная длина имени параметра:
- 16 383 символов для Windows Server 2003, Windows XP и Windows Vista
- 260 символов ANSI или 16 383 символа Юникод для Windows 2000
- 255 символов для Windows 95, Windows 98 и Windows Millennium Edition
Значения большого размера (больше 2048 байт) хранятся во внешних файлах, а в реестр заносится имя такого файла. Это способствует повышению эффективности использования реестра.
Максимальный размер параметра:
- Вся доступная память для Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista
- 16 300 байт для Windows 95, Windows 98 и Windows Millennium Edition
Ниже приводится назначение этих параметров.
REG_BINARY
Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
REG_DWORD
Данные, представленные целым числом (4 байта, 32 бита). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах. Эквивалентами типа DWORD являются DWORD_LITTLE_ENDIAN (самый младший байт хранится в памяти в первом числе) и REG_DWORD_BIG_ENDIAN (самый младший байт хранится в памяти в последнем числе).
REG_EXPAND_SZ
Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения.
REG_MULTI_SZ
Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют именно этот тип данных. Записи разделяются пробелами, запятыми или другими символами.
REG_SZ
Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных. Имеет фиксированную длину.
REG_LINK
Символическая ссылка в формате Юникод.
REG_FULL_RESOURCE_DESCRIPTOR
Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются физическим устройством. Обнаруженные данные система сохраняет в разделе \HardwareDescription. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_RESOURCE_LIST
Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются драйвером устройства или управляемым им физическим устройством. Обнаруженные данные система сохраняет в разделе \ResourceMap. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_RESOURCE_REQUIREMENTS_LIST
Последовательность вложенных массивов. Служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Часть этого списка система записывает в раздел \ResourceMap. Данные определяются системой. В окне редактора реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_QWORD
Данные, представленные в виде 64-разрядного целого. Начиная с Windows 2000, такие данные отображаются в окне редактора реестра в виде двоичного параметра
REG_NONE
Данные, не имеющие определенного типа. Такие данные записываются в реестр системой или приложением. В окне редактора реестра отображаются в виде двоичного параметра в шестнадцатеричном формате
- Редактор реестра
- Удаление файла из реестра с помощью Reg Organizer
- Что такое системный реестр Windows?
- Работа с reg-файлами в Reg Organizer
- Отправка данных чистки реестра на анализ
Reg sz в реестре что это
Типы данных и правила названия ключей и параметров.
Редактор реестра понимает пять типов данных:
- REG_SZ — строковые (текстовые) параметры, содержат текст заключенный в кавычки, например «Это текстовый параметр». Пустой текстовый параметр отображается в виде «»;
- REG_BINARY — двоичный параметр, это числа представленные в виде последовательности байтов, например 00 08 10 21, параметр должен иметь как минимум 4 байта (32 бита). пустой параметр отображается в редакторе реестра как двоичное значение нуля.
- REG_DWORD — представляют особый тип двоичных данных. Параметры REG_DWORD очень длинны, и представляются в сокращенной шеснадцатиричной форме. Сокращение DWORD расшифровывается как Double WORD (двойное слово) (WORD (слово) — это 4 байта в 32 разрядных системах). По умолчанию редактор реестра назначает нулевое значение параметру REG_DWORD — 0х0000000 (0). Единица будет выглядеть следующим образом 0х0000001 (1). Диапазон значений 0х0000000 — FxFFFFFFF или 0 — 4 294 967 295.
- REG_EXPAND_SZ — расширенная текстовая строка, содержащая переменную, например %systemroot%. (Поддерживается только Regedit32.exe)
- REG_MULTI_SZ — Многострочный параметр (multiple line string) (Поддерживается только Regedit32.exe)
Значение параметра не может превышать 16 Кб, поэтому вы не найдете в реестре слишком длинных строк или данных. Общий размер подключа также неможет превышать 64 Кб (для Windows 95), в Windows 98 — ключ может содержать более 64 Кб данных Значение параметра занимающего более 16Кб, следует помещать в отдельный файл, а в реестр записывать ссылку на этот файл в качестве параметра.
В названиях ключей и параметров разрешается использовать цифры от 0 до 9, буквы от a до z, символ подчеркивания (_) и пробелы.
REG – редактирование реестра Windows в командной строке.
Утилита командной строки REG.EXE присутствует во всех версиях операционных систем семейства Windows и используется для добавления, изменения, удаления и просмотра параметров и ключей реестра.
Формат командной строки:
REG [Список параметров]
QUERY — поиск и отображение содержимого реестра.
ADD — добавление новых разделов и записей в реестр.
DELETE — удаление разделов и записей из реестра.
COPY — копирование разделов и записей из реестра.
SAVE — сохранение данных реестра в файл.
LOAD — загрузка куста реестра
UNLOAD — выгрузка куста реестра в файл, ранее загруженный операцией LOAD.
RESTORE — восстановление данных реестра из файла.
COMPARE — сравнение разделов и параметров реестра.
EXPORT — экспорт данных реестра в .reg-файл.
IMPORT — импорт данных реестра из .reg-файла.
FLAGS — отображение или изменение флагов разделов реестра.
Код возврата: (за исключением REG COMPARE):
0 – Успешно
1 — С ошибкой
Для каждой операции, задаваемой в командной строке REG, используются свои параметры. Для получения справки по определенной операции введите:
Результат выполнения операции зависит от прав пользователя по отношению к данным реестра. Редактирование реестра является потенциально опасной операцией и при необдуманных или ошибочных действиях может привести к неработоспособности системы. Прежде, чем вносить какие-либо изменения в реестр, нужно сделать его резервную копию и освоить процедуру восстановления системы в случае ее краха по причине неверного содержимого реестра, в том числе, и для случаев, когда загрузку Windows выполнить невозможно.
REG QUERY – отобразить содержимое реестра.
REG QUERY имя_раздела [/v [имя_параметра] | /ve] [/s] [/f данные [/k] [/d] [/c] [/e]] [/t тип] [/z] [/se разделитель]
Параметры командной строки:
имя_раздела — может включать имя удаленного компьютера в формате \\компьютер\полное_имя_раздела . Если имя компьютера не задано, то по умолчанию используется текущий компьютер. На удаленных компьютерах доступны только разделы 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 query /? — отобразить справку по использованию.
REG QUERY HKLM\Software\Microsoft\ResKit /v Version — отобразить значение параметра реестра Version
reg query \\SERVER\HKLM\Software\Microsoft\Windows\CurrentVersion\Run — отобразить содержимое раздела автоматически запускаемых программ для всех пользователей удаленного компьютера SERVER. Для успешного выполнения команды необходимо наличие соответствующих прав пользователя по отношению к удаленной системе и на удаленном компьютере должна быть запущена служба RemoteRegistry (Удаленный реестр).
Пример отображаемой информации:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
RTHDVCPL REG_SZ «C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe» -s
Acronis Scheduler2 Service REG_SZ «C:\Program Files (x86)\Common Files\Acronis\Schedule2\schedhlp.exe»
COMODO Internet Security REG_SZ C:\Program Files\COMODO\COMODO Internet Security\cistray.exe
StartCN REG_SZ «C:\Program Files\AMD\CNext\CNext\cnext.exe» atlogon
REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se # — отобразить все подразделы и параметры со знаком «#» в качестве разделителя для всех параметров типа REG_MULTI_SZ.
REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e — отобразить раздел, параметр и данные с учетом реестра букв для точных совпадений с «SYSTEM» типа REG_SZ из корневого раздела HKLM
REG QUERY HKCU /f 0F /d /t REG_BINARY — отобразить раздел, параметры и данные для совпадений с «0F» типа REG_BINARY среди данных в корневом разделе HKCU
REG QUERY HKLM\SOFTWARE /ve — отобразить параметр и данные для пустого значения (по умолчанию) в разделе HKLM\SOFTWARE
reg query hklm\system\currentcontrolset\control\safeboot /s /f «Adapter» /d — искать в данных строку Adapter в разделе реестра с параметрами безопасного режима загрузки Windows.
REG QUERY «HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders» /v «Start Menu» — отобразить расположение папки ”Главное меню” текущего пользователя.
REG QUERY HKCU\Console\ — отобразить параметры командной строки текущего пользователя.
REG QUERY HKCU\Console /v ScreenColors — отобразить параметр, определяющий цвет фона и цвет символов окна командной строки текущего пользователя.
Reg Query «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion» /V ProductName — отобразить содержимое параметра реестра с названием Windows. Пример отображаемой информации при выполнении команды в среде Windows 10 Pro:
ProductName REG_SZ Windows 10 Pro
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-разрядных приложений.
reg add /? — отобразить подсказку по использованию команды.
REG ADD \\SERVER\HKLM\Software\MyCo — Добавляет раздел HKLM\Software\MyCo на удаленном компьютере SERVER
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead — Добавляет параметр (имя: Data, тип: REG_BINARY, данные: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail — Добавляет параметр (имя: MRU, тип: REG_MULTI_SZ, данные: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% — Добавляет параметр (имя: Path, тип: REG_EXPAND_SZ, данные: %systemroot%)
REG add HKCU\Console /v ScreenColors /t REG_DWORD /d 0xf0 — изменить настройки консоли текущего пользователя – черные буквы на белом фоне. Для записи данных в уже существующий параметр реестра потребуется подтверждение на запрос:
Параметр ScreenColors уже существует, заменить (Y — да/N — нет)?
Для подавления запроса необходимо использовать параметр /f :
REG add HKCU\Console /v ScreenColors /t REG_DWORD /d 0xf0 /f
Нужно учитывать, что изменение отображения фона и цвета символов для текущего сеанса консоли не произойдет. Изменения будут применены при следующем запуске командной строки.
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-разрядных приложений.
REG DELETE HKLM\Software\MyCo\MyApp\Timeout — Удаляет раздел реестра Timeout и все его подразделы и параметры.
REG DELETE \\SERVER\HKLM\Software\MyCo /v MTU — Удаляет параметр реестра MTU из раздела MyCo на компьютере SERVER
REG EXPORT — экспорт данных реестра в файл.
REG EXPORT [/y] [/reg:32 | /reg:64]
имя_раздела — в виде КОРЕНЬ\ (только локальный компьютер). КОРЕНЬ может быть [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в одном из выбранных корневых разделов.
имя_файла — путь и имя файла в который экспортируются данные реестра.
/y — Выполнение замены существующего файла без запроса подтверждения.
/reg:32 — Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений.
/reg:64 — Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg — Экспорт всех подразделов и параметров раздела MyApp в файл AppBkUp.reg
REG EXPORT HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run C:\saved\autoruns.reg — экспорт параметров автоматического запуска приложений для всех пользователей системы.
REG IMPORT — импорт данных реестра из файла.
REG IMPORT [/reg:32 | /reg:64]
имя_файла — путь и имя файла с данными для импорта. Импорт возможен только для локального компьютера.
REG IMPORT AppBkUp.reg — Импорт записей реестра из файла AppBkUp.reg
REG SAVE — сохранение данных реестра в файл.
REG SAVE [/y] [/reg:32 | /reg:64]
имя_раздела — в виде КОРЕНЬ\ . КОРЕНЬ может принимать значения [ HKLM | HKCU | HKCR | HKU | HKCC ]. подраздел — Полное имя подраздела реестра в одном из выбранных корневых разделов.
имя_файла — Путь и имя файла сохраняемых данных. Если путь не указан, то файл создается в текущей папке вызывающего процесса.
/y — Выполнение замены существующего файла без запроса подтверждения.
/reg:32 — Указывает, что к разделу реестра следует обращаться с помощью представления для 32-разрядных приложений.
/reg:64 — Указывает, что к разделу реестра следует обращаться с помощью представления для 64-разрядных приложений.
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv — Сохранение раздела реестра MyApp в файл AppBkUp.hiv текущей папки.
REG SAVE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run C:\saved\autoruns.hiv — сохранение параметров автоматического запуска приложений для всех пользователей системы в файл autoruns.hiv в каталоге saved диска C: .
REG RESTORE — восстановление данных реестра их файла.
Для восстановления данных реестра используется содержимое файла, созданного при выполнении команды REG SAVE
REG RESTORE [/y] [/reg:32 | /reg:64]
имя_раздела — в виде КОРЕНЬ\ . КОРЕНЬ может принимать значения [ HKLM | HKCU | HKCR | HKU | HKCC ]. подраздел — Полное имя подраздела реестра в одном из выбранных корневых разделов.
имя_файла — Путь и имя файла, созданного при выполнении команды REG SAVE. Если путь не указан, то поиск файла выполняется в текущей папке вызывающего процесса.
REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv — восстановить содержимое реестра из файла NTRKBkUp.hiv текущего каталога.
Команды REG IMPORT/EXPORT и REG RESTORE/SAVE близки по назначению, однако используют разные форматы данных.
REG LOAD — загрузка данных реестра из файла куста.
Для загрузки используется файл куста реестра, полученный с помощью команды REG SAVE, или другой файл куста реестра, например, скопированный с другого компьютера.
Формат командной строки:
REG LOAD [/reg:32 | /reg:64]
имя_раздела в виде КОРЕНЬ\подраздел (только локальный компьютер). КОРЕНЬ может принимать только [ HKLM | HKU]. подраздел — Имя подраздела реестра, в который загружается файл куста.
имя_файла — путь и имя файла куста, подлежащего загрузке.
REG LOAD HKLM\TempHive TempHive.hiv — Загрузка файла TempHive.hiv в раздел HKLM\TempHive
Обычно, команда REG LOAD используется совместно с REG UNLOAD для изменения данных реестра, содержащихся в файле куста.
REG LOAD HKU\TEMP «C:\Documents and Settings\Default User\NTUSER.DAT» — загрузить куст во временный раздел реестра.
REG ADD HKU\TEMP\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v newUserProfile /t REG_EXPAND_SZ /d «D:\setup.cmd» /f — выполнить запись во временном разделе.
REG UNLOAD HKU\TEMP — выгрузить временный раздел. При этом, выполненные изменения содержимого реестра будут сохранены в файле куста.
Загрузка и выгрузка данных с использованием файлов кустов позволяет редактировать данные реестра поддерживаемого формата, в том числе и ”чужой” операционной системы. В качестве файлов кустов можно использовать файлы из каталога \Windows\System32\config\ сторонней Windows, что позволяет восстановить ее работоспособность в некоторых случаях, требующих изменения параметров реестра, при невозможности загрузки и использования собственного редактора.
REG COMPARE — сравнение двух разделов данных реестра.
Формат командной строки:
REG COMPARE [/v | /ve] [вывод] [/s] [/reg:32 | /reg:64]
имя_раздела в виде [\\ \] . компьютер имя_раздела в виде КОРЕНЬ\подраздел . Если имя раздела 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
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp — Сравнивает все значения в разделе MyApp со значениями раздела SaveMyApp
REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version — Сравнивает значения Version в разделах MyCo и MyCo1
reg compare HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network /s — Сравнивает отличия параметров для безопасного режима загрузки и безопасного режима с поддержкой сети. REG COMPARE \\SERVER\HKLM\Software\MyCo \\. /s — Сравнивает все подразделы и значения параметров в разделе HKLM\Software\MyCo реестра на компьютере SERVER с аналогичным разделом на текущем компьютере.
reg compare HKLM\Software\Microsoft\Windows\CurrentVersion\Run \\192.168.1.1\HKLM\Software\Microsoft\Windows\CurrentVersion\Run — Сравнивает список автоматически стартующих программ для всех пользователей локального компьютера и удаленного компьютера с IP адресом 192.168.1.1. Для успешного выполнения команды на удаленном компьютере должна быть запущена служба ”Удаленный реестр”. Пример отображаемой информации с результатами сравнения:
Параметр: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run RTHDVCPL REG_SZ «C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe» -s
> Параметр: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run Acronis Scheduler2 Service REG_SZ «C:\Program Files (x86)\Common Files\Acronis\Schedule2\schedhlp.exe»
> Параметр: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run COMODO Internet Security REG_SZ C:\Program Files\COMODO\COMODO Internet Security\cistray.exe
Результат сравнения: не совпадают
Операция успешно завершена.
REG FLAGS — просмотр, установка и сброс флагов реестра.
Формат командной строки:
REG FLAGS имя_раздела [QUERY | [/reg:32 | /reg:64]
REG FLAGS имя_раздела 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-разрядных приложений.
reg flags HKLM\Software query — Отображает текущие флаги раздела HKLM\Software.
Пример отображаемой информации о флагах:
HKEY_LOCAL_MACHINE\Software
REG_KEY_DONT_VIRTUALIZE: CLEAR
REG_KEY_DONT_SILENT_FAIL: CLEAR
REG_KEY_RECURSE_FLAG: CLEAR
Операция успешно завершена.
REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s — Устанавливает флаг DONT_VIRTUALIZE (и удаляет флаги DONT_SILENT_FAIL и RECURSE_FLAG) для раздела MyApp и всех его подразделов.
Сетевые возможности команды REG
При наличии соответствующих прав, команду REG можно использовать для работы с реестром удаленных компьютеров. Для этого перед именем раздела реестра добавляется имя или IP-адрес компьютера:
\\компьютер\параметр реестра.
reg query \\win11-2\HKLM\SYSTEM\CurrentControlSet\control — отобразить информацию указанного раздела реестра на компьютере WIN11-2.
На обоих компьютерах должна быть запущена служба ”Удаленный реестр” (RemoteRegistry). В современных ОС семейства Windows данная служба по умолчанию отключена:

Службу необходимо включить и запустить. Для полноценной работы с удаленным реестром, необходимо наличие привилегий Администратора.
Ниже приведено содержимое командного файла, выполняющего запись в реестр для группы компьютеров, список которых имеется в текстовом файле complist.txt
@echo off
REM Проверка наличия прав Администратора
WHOAMI /PRIV | find /i «SeRemoteShutdownPrivilege»
if %ERRORLEVEL% == 0 goto admin
color C0
msg * Требуется запуск от имени Администратора. User — %USERNAME%
exit
REM Если есть права Администратора
:admin
COLOR 1F
setlocal EnableDelayedExpansion
REM Проверяем пингом включен ли компьютер
REM Список включенных компьютеров формируется в файле complive.txt
if exist %~DP0complive.txt erase %~DP0complive.txt
FOR /F «tokens=1» %%i in (%~DP0complist.txt) do (
ping -4 -n 1 %%i | find /I «TTL»
if !ERRORLEVEL! == 0 echo %%i >> %~DP0complive.txt
)
REM
set /A N=0
FOR /F «tokens=1» %%k in (%~DP0complive.txt) do (
reg add «\\%%k\HKLM\SYSTEM\CurrentControlSet\control» /v «SvcHostSplitThresholdInKB» /t REG_DWORD /d 0xF0000000 /f
set /A N=!N! + 1
)
REM Ведется счетчик компьютеров, для которых выполнена запись в реестр
msg console Сценарий выполнен для общего числа компьютеров — %N%
endlocal
exit