Введение
База данных для Microsoft Windows
Реестр Windows — это иерархическая база данных, хранящая низкоуровневые настройки операционной системы Microsoft Windows и приложений, использующих реестр. Ядро системы, драйверы устройств, службы, диспетчер учетных записей безопасности и пользовательские интерфейсы могут использовать реестр. Реестр также обеспечивает доступ к счетчикам для профилирования производительности системы. Иными словами, реестр Windows содержит информацию, настройки, параметры и другие значения для программ и оборудования, установленных на всех версиях операционных систем Microsoft Windows. Например, при установке программы в реестр Windows добавляется новый раздел, содержащий такие настройки, как расположение программы, её версия и способ запуска. Когда реестр Windows был представлен вместе с Windows 3.1, он в основном хранил информацию о конфигурации компонентов на основе COM. Windows 95 и Windows NT расширили его использование для упорядочивания и централизации информации, ранее хранившейся в многочисленных INI-файлах, содержавших конфигурации отдельных программ и расположенных в разных местах. Использование реестра Windows необязательно для приложений Windows. Например, приложения .NET Framework используют XML-файлы для конфигурации, а портативные приложения обычно хранят свои конфигурационные файлы вместе с исполняемыми файлами.
Обоснование
До появления реестра Windows файлы INI хранили настройки каждой программы в виде текстового или двоичного файла, часто расположенного в общем месте, которое не обеспечивало пользовательские настройки в многопользовательской среде. В отличие от этого, реестр Windows хранит все настройки приложений в едином логическом хранилище (но в нескольких отдельных файлах) и в стандартизированном формате. По утверждению Microsoft, это предоставляет ряд преимуществ по сравнению с файлами INI. Поскольку разбор файлов выполняется гораздо эффективнее с двоичным форматом, его можно считывать или записывать быстрее, чем текстовый файл INI. Кроме того, в реестре можно хранить данные с строгой типизацией, в отличие от текстовой информации, хранящейся в файлах INI. Это полезно при ручном редактировании ключей с помощью regedit.exe, встроенного редактора реестра Windows. Поскольку параметры реестра, основанные на пользователях, загружаются из пути, специфичного для пользователя, а не из системного расположения, доступного только для чтения, реестр позволяет нескольким пользователям совместно использовать один компьютер, а также позволяет программам работать для пользователей с ограниченными правами. Резервное копирование и восстановление также упрощены, поскольку к реестру можно получить доступ через сетевое подключение для удаленного администрирования/поддержки, в том числе из скриптов, с использованием стандартного набора API, при условии, что служба удаленного реестра запущена и правила брандмауэра это разрешают. Поскольку реестр является базой данных, он обеспечивает повышенную целостность системы благодаря таким функциям, как атомарные обновления. Если два процесса одновременно пытаются обновить одно и то же значение реестра, изменение одного процесса произойдет раньше изменения другого, и общая согласованность данных будет сохранена. При внесении изменений в файлы INI подобные состояния гонки могут привести к несогласованным данным, которые не соответствуют ни одной из предпринятых попыток обновления. Windows Vista и более поздние операционные системы обеспечивают транзакционные обновления реестра посредством менеджера транзакций ядра, расширяя гарантии атомарности на несколько изменений ключей или значений с использованием традиционной семантики фиксации-отката. (Однако следует отметить, что NTFS также предоставляет такую поддержку для файловой системы, поэтому теоретически те же гарантии можно получить с традиционными конфигурационными файлами.)
Корневые ключи
Ключи верхнего уровня иерархической базы данных обычно именуются в соответствии с определениями Windows API, все из которых начинаются с "HKEY".
HKEY_CLASSES_ROOT (HKCR) (включает в себя:
Сокращенно HKCR, HKEY CLASSES ROOT содержит информацию о зарегистрированных приложениях, включая ассоциации файлов и идентификаторы классов объектов OLE, связывая их с приложениями, используемыми для работы с этими объектами. Начиная с Windows 2000, HKCR является объединением пользовательских настроек HKCU\Software\Classes и машинных настроек HKLM\Software\Classes. Если какое-либо значение присутствует в обоих указанных разделах реестра, приоритет имеет значение из HKCU\Software\Classes. Такая конструкция позволяет регистрировать COM-объекты как для конкретного пользователя, так и для всей системы.
HKEY_USERS (HKU)
Сокращенно HKU, HKEY USERS содержит подключи, соответствующие ключам HKEY CURRENT USER для каждого профиля пользователя, активно загруженного на компьютере, хотя пользовательские соты обычно загружаются только для пользователей, вошедших в систему в данный момент.
HKEY_CURRENT_USER (HKCU) (полное имя пользователя)
Сокращенно HKCU, HKEY CURRENT USER хранит настройки, специфичные для текущего пользователя. Ключ HKEY CURRENT USER является ссылкой на подраздел ключа HKEY USERS, соответствующий данному пользователю; одна и та же информация доступна в обоих местах. Конкретный подраздел, на который осуществляется ссылка, имеет вид "(HKU)\(SID)\", где (SID) соответствует идентификатору безопасности Windows (Windows SID); если ключ "(HKCU)" имеет следующий суффикс "(HKCU)\Software\Classes\", то он соответствует "(HKU)\(SID) CLASSES\", то есть к (SID) добавляется строка "CLASSES". В системах Windows NT настройки каждого пользователя хранятся в отдельных файлах NTUSER.DAT и USRCLASS.DAT, расположенных в их собственной подпапке "Документы и настройки" (или в подпапке "Пользователи" в Windows Vista и более поздних версиях). Настройки в этом хранилище следуют за пользователями с перемещаемым профилем при переходе между компьютерами.
HKEY_PERFORMANCE_DATA (полное имя и отчество)
Этот ключ предоставляет информацию о производительности в реальном времени, получаемую либо непосредственно из ядра NT, либо от работающих системных драйверов, программ и служб, предоставляющих данные о производительности. Этот ключ не сохраняется ни в одном из разделов реестра и не отображается в редакторе реестра, но он доступен через функции реестра в API Windows, либо в упрощенном виде на вкладке "Производительность" диспетчера задач (только для ограниченного набора данных о производительности на локальном компьютере) или через более продвинутые инструменты (например, "Монитор ресурсов" или "Анализатор производительности", позволяющие собирать и регистрировать эти данные, в том числе с удаленных систем).
HKEY_DYN_DATA (полное имя)
Этот ключ используется только в Windows 95, Windows 98 и Windows ME. Он содержит информацию об аппаратных устройствах, включая Plug and Play и статистику сетевой производительности. Информация в этом разделе реестра также не хранится на жестком диске; информация Plug and Play собирается и настраивается при загрузке системы и хранится в памяти.
Ульи
Несмотря на то, что реестр представляется как интегрированная иерархическая база данных, ветви реестра на самом деле хранятся в ряде файлов диска, называемых сотами. (Слово "сота" – это шутка.) Некоторые соты являются летучими и вообще не хранятся на диске. Примером этого является сота ветви, начинающейся в HKLM\HARDWARE. Эта сота содержит информацию об аппаратном обеспечении системы и создается каждый раз при загрузке системы и выполнении обнаружения оборудования. Индивидуальные настройки пользователей в системе хранятся в соте (файле диска) для каждого пользователя. Во время входа пользователя в систему, система загружает соту пользователя под ключом HKEY_USERS и устанавливает символическую ссылку HKCU (HKEY_CURRENT_USER) для указания на текущего пользователя. Это позволяет приложениям неявно хранить и извлекать настройки для текущего пользователя под ключом HKCU. Не все соты загружены одновременно. При загрузке загружается только минимальный набор сот, а затем соты загружаются по мере инициализации операционной системы и входа пользователей, или когда сота явно загружается приложением.
Местонахождение файлов
Реестр физически хранится в нескольких файлах, которые обычно скрыты от API пользовательского режима, используемых для работы с данными внутри реестра. В зависимости от версии Windows, эти файлы могут располагаться в разных местах, но все они находятся на локальном компьютере. В Windows NT файлы системного реестра расположены в %System Root%\System32\Config; пользовательский реестр HKEY CURRENT USER хранится в файле Ntuser.dat внутри профиля пользователя. Для каждого пользователя существует один такой файл; если у пользователя настроен роуминг профиля, то этот файл копируется на сервер при выходе из системы и с сервера при входе в систему. Еще один пользовательский файл реестра, UsrClass.dat, содержит записи реестра COM и по умолчанию не участвует в роуминге.
.REG файлы
REG-файлы (также известные как записи реестра) — это текстовые файлы, читаемые человеком, для экспорта и импорта разделов реестра с использованием синтаксиса, основанного на INI. В Windows 2000 и более поздних версиях они начинаются со строки Windows Registry Editor Version 5.00, а в системах Windows 9x и NT 4.0 — со строки REGEDIT4. REG-файлы в Windows 2000 и более поздних версиях основаны на Unicode, а в Windows 9x и NT 4.0 — на ANSI. REG-файлы формата Windows 9x совместимы с Windows 2000 и более поздними версиями. Область действия политики определяет, к каким компьютерам и пользователям она применяется. Принадлежность компьютера или пользователя к области действия политики определяется набором правил, которые могут фильтровать по расположению компьютера или учетной записи пользователя в организационной структуре, конкретным пользователям или учетным записям компьютеров, а также группам безопасности. Более сложные правила можно задать с помощью выражений Windows Management Instrumentation. Эти правила могут фильтровать по таким свойствам, как имя производителя компьютера, архитектура процессора, установленное программное обеспечение или подключенные сети. Например, администратор может создать политику с одним набором параметров реестра для компьютеров в бухгалтерском отделе и другую (с усиленными настройками безопасности) для терминалов самообслуживания в зоне посетителей. При перемещении компьютера из одной области действия в другую (например, при изменении его имени или перемещении в другую организационную единицу) соответствующая политика применяется автоматически. При изменении политики она автоматически переприменяется ко всем компьютерам, находящимся в ее области действия. Политика редактируется с помощью ряда административных шаблонов, предоставляющих пользовательский интерфейс для выбора и изменения параметров. Набор административных шаблонов расширяем, и программные пакеты, поддерживающие удаленное администрирование, могут регистрировать собственные шаблоны.
Редактирование командной строки
Реестр можно изменять различными способами из командной строки. Утилиты Reg.exe и RegIni.exe включены в Windows XP и более поздние версии Windows. Альтернативные источники для устаревших версий Windows – это диски с набором ресурсов (Resource Kit CDs) или оригинальный установочный диск Windows. Кроме того, файл REG можно импортировать из командной строки следующей командой:
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
RegEdit.exe /s файл
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
Параметр /s означает, что файл будет объединен с реестром в тихом режиме. Если параметр /s не указан, пользователю будет предложено подтвердить операцию. В Windows 98, Windows 95 и, по крайней мере, в некоторых конфигурациях Windows XP, переключатель /s также заставляет RegEdit.exe игнорировать настройку в реестре, позволяющую администраторам отключать его. При использовании переключателя /s, RegEdit.exe не возвращает соответствующий код возврата в случае неудачи операции, в отличие от Reg.exe.
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
RegEdit.exe /e файл
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
экспортирует весь реестр в формате V5 в UNICODE REG файл, а также:
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
RegEdit.exe /e файл HKEY_CLASSES_ROOT[\<key>]
RegEdit.exe /e файл HKEY_CURRENT_CONFIG[\<key>]
RegEdit.exe /e файл HKEY_CURRENT_USER[\<key>]
RegEdit.exe /e файл HKEY_LOCAL_MACHINE[\<key>]
RegEdit.exe /e файл HKEY_USERS[\<key>]
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
экспортируют только указанный (под)ключ (который необходимо заключать в кавычки, если он содержит пробелы).
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
RegEdit.exe /a файл
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
экспортирует весь реестр в формате V4 в ANSI REG файл.
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
RegEdit.exe /a файл <key>
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
экспортирует только указанный (под)ключ (который необходимо заключать в кавычки, если он содержит пробелы). Также можно использовать Reg.exe. Например, для отображения значения параметра реестра Version:
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
Другие варианты командной строки включают VBScript или JScript вместе с CScript, WMI или WMIC.exe и Windows PowerShell. Разрешениями реестра можно управлять из командной строки с помощью RegIni.exe и утилиты SubInACL.exe. Например, разрешения для ключа HKEY_LOCAL_MACHINE\SOFTWARE можно отобразить с помощью:
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
RegEdit. exe /s file
The /s means the file will be silent merged to the registry. If the /s parameter is omitted the user will be asked to confirm the operation. In Windows 98, Windows 95 and at least some configurations of Windows XP the /s switch also causes RegEdit. exe to ignore the setting in the registry that allows administrators to disable it. When using the /s switch RegEdit. exe does not return an appropriate return code if the operation fails, unlike Reg. exe which does. RegEdit. exe /e file
exports the whole registry in V5 format to a UNICODE REG file, while any of
RegEdit. exe /e file HKEY CLASSES ROOT[\<key>]
RegEdit. exe /e file HKEY CURRENT CONFIG[\<key>]
RegEdit. exe /e file HKEY CURRENT USER[\<key>]
RegEdit. exe /e file HKEY LOCAL MACHINE[\<key>]
RegEdit. exe /e file HKEY USERS[\<key>]
export the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. RegEdit. exe /a file
exports the whole registry in V4 format to an ANSI REG file. RegEdit. exe /a file <key>
exports the specified (sub)key (which has to be enclosed in quotes if it contains spaces) only. It is also possible to use Reg. exe. Here is a sample to display the value of the registry value Version:
Reg. exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Other command line options include a VBScript or JScript together with CScript, WMI or WMIC. exe and Windows PowerShell. Registry permissions can be manipulated through the command line using RegIni. exe and the SubInACL. exe tool. For example, the permissions on the HKEY LOCAL MACHINE\SOFTWARE key can be displayed using:
SubInACL. exe /keyreg HKEY LOCAL MACHINE\SOFTWARE /display
Команды и скрипты PowerShell
Windows PowerShell поставляется с провайдером реестра, который представляет реестр как тип местоположения, аналогичный файловой системе. Те же команды, которые используются для работы с файлами и каталогами в файловой системе, можно использовать для работы с ключами и значениями реестра. Как и в файловой системе, PowerShell использует понятие текущего местоположения, определяющего контекст, в котором команды выполняются по умолчанию. Команда Get-ChildItem (также доступна через псевдонимы ls, dir или gci) извлекает дочерние ключи текущего местоположения. С помощью команды Set-Location (или псевдонима cd) пользователь может изменить текущее местоположение на другой ключ реестра.
Программы или скрипты
Реестр можно редактировать через API-интерфейсы библиотеки Advanced Windows 32 Base API Library (advapi32.dll). Список функций API реестра:
Многие языки программирования предлагают встроенные функции или классы, которые оборачивают базовые API Windows и тем самым позволяют программам сохранять настройки в реестре (например, Microsoft.Win32.Registry в VB.NET и C#, или TRegistry в Delphi и Free Pascal). COM-приложения, такие как Visual Basic 6, могут использовать объект WSH WScript.Shell. Другой способ – использовать инструмент Windows Resource Kit Tool, Reg.exe, выполняя его из кода, хотя это считается нежелательной практикой программирования. Аналогично, скриптовые языки, такие как Perl (с Win32::TieRegistry), Python (с winreg), TCL (который поставляется в комплекте с пакетом для работы с реестром), Windows PowerShell и Windows Scripting Host также позволяют редактировать реестр из скриптов.
Оффлайн редактирование
Офрег.dll, доступный в составе Windows Driver Kit, предоставляет набор API для создания и манипулирования реестрами, которые в данный момент не загружены, аналогично функциям, предоставляемым advapi32.dll. Также возможно редактирование реестра (сотов) автономной системы из Windows PE или Linux (в последнем случае с использованием инструментов с открытым исходным кодом).
Саморегистрация ООМ
До введения COM без регистрации разработчикам рекомендовалось добавлять код инициализации в исполняемые файлы, работающие в процессе и вне процесса, для выполнения необходимой конфигурации реестра, чтобы объект мог функционировать. Для исполняемых файлов, работающих в процессе, таких как DLL и OCX, модули обычно экспортировали функцию DllInstall, которую могли вызывать программы установки или запускать вручную с помощью утилит, таких как Regsvr32.exe; исполняемые файлы, работающие вне процесса, обычно поддерживали аргументы командной строки /Regserver и /Unregserver, которые создавали или удаляли необходимые записи реестра. COM-приложения, возникающие проблемы с которыми связаны с "адским циклом DLL", часто можно восстановить с помощью Regsvr32.exe или параметра /RegServer, не прибегая к повторному запуску программ установки.
Расширенная функциональность
Windows предоставляет API, позволяющие приложениям, работающим в пользовательском режиме, регистрироваться для получения уведомления о событии при изменении определенного ключа реестра. Также доступны API, позволяющие приложениям в режиме ядра фильтровать и изменять обращения к реестру, выполняемые другими приложениями. Windows также поддерживает удаленный доступ к реестру другого компьютера через функцию RegConnectRegistry, если служба удаленного реестра запущена, правильно настроена и ее сетевой трафик не блокируется брандмауэром.
Безопасность
Каждый ключ в реестре версий Windows NT может иметь связанный дескриптор безопасности. Дескриптор безопасности содержит список контроля доступа (ACL), который описывает, каким группам пользователей или отдельным пользователям предоставлены или запрещены права доступа. Набор разрешений реестра включает 10 прав/разрешений, которые могут быть явно разрешены или запрещены пользователю или группе пользователей. +Разрешения реестра|Описание|Query Value|Право на чтение значения ключа реестра.|Set Value|Право на запись нового значения.|Create Subkey|Право на создание подключей.|Enumerate Subkeys|Разрешение на перечисление подключей.|Notify|Право запрашивать уведомления об изменениях ключей или подключей реестра.|Create Link|Зарезервировано операционной системой.|Delete|Право на удаление ключа.|Write DACL|Право на изменение разрешений DACL контейнера.|Write Owner|Право на изменение владельца контейнера.|Read Control|Право на чтение DACL.
Как и в случае с другими защищаемыми объектами в операционной системе, отдельные записи управления доступом (ACE) в дескрипторе безопасности могут быть явными или унаследованы от родительского объекта. Защита ресурсов Windows – это функция Windows Vista и более поздних версий Windows, которая использует безопасность для отказа администраторам и системе в правах WRITE к некоторым конфиденциальным ключам, чтобы защитить целостность системы от вредоносных программ и случайных изменений. Специальные ACE в дескрипторе безопасности также могут реализовывать обязательный контроль целостности для ключа реестра и подключей. Процесс, работающий на более низком уровне целостности, не может записывать, изменять или удалять ключ/значение реестра, даже если учетная запись процесса получила доступ через ACL. Например, Internet Explorer, работающий в защищенном режиме, может читать ключи/значения реестра средней и низкой целостности текущего вошедшего в систему пользователя, но он может изменять только ключи низкой целостности. Помимо вопросов безопасности, ключи реестра не могут быть удалены или отредактированы по другим причинам. Ключи реестра, содержащие символы NUL, не могут быть удалены стандартными редакторами реестра и требуют специальной утилиты для удаления, такой как RegDelNull.
Политика группы
Windows 2000 и более поздние версии Windows используют групповые политики для принудительного применения настроек реестра посредством клиентского расширения, работающего с реестром, в механизме обработки групповых политик. Политики можно применять локально к отдельному компьютеру с помощью gpedit.msc или к нескольким пользователям и компьютерам в домене с помощью gpmc.msc.
Предыдущие системы
С Windows 95, Windows 98, Windows ME и Windows NT 4.0 администраторы могут использовать специальный файл, который объединяется с реестром и называется файлом политики (POLICY.POL). Файл политики позволяет администраторам запрещать пользователям без прав администратора изменять настройки реестра, например, уровень безопасности Internet Explorer или обои рабочего стола. Файл политики в основном используется в организациях с большим количеством компьютеров, где необходимо защитить систему от случайных или злонамеренных действий пользователей. Расширение по умолчанию для файла политики – POL. Файл политики фильтрует применяемые настройки по пользователям и группам (группа – это определенный набор пользователей). Для этого файл политики объединяется с реестром, предотвращая обход ограничений путем простого изменения настроек пользователями. Файл политики обычно распространяется по локальной сети, но может быть размещен и на локальном компьютере. Файл политики создается бесплатным инструментом Microsoft с именем poledit.exe для Windows 95/Windows 98 и с помощью модуля управления компьютером для Windows NT. Редактору требуются права администратора для запуска на системах, использующих систему разрешений. Редактор также может напрямую изменять текущие настройки реестра локального компьютера, а при установленной и запущенной службе удаленного реестра на другом компьютере – и его реестр. Редактор политики загружает настройки, которые он может изменять, из файлов ADM, включая один файл, содержащий настройки, предоставляемые оболочкой Windows. Файл ADM представляет собой обычный текстовый файл и поддерживает простую локализацию, позволяя хранить все строки в одном месте.
Виртуализация файлов INI
Ядра Windows NT поддерживают перенаправление API, связанных с файлами INI, в виртуальный файл, расположенный в реестре, например, в HKEY CURRENT USER, с помощью функции "InifileMapping". Эта функциональность была внедрена для обеспечения возможности запуска устаревших приложений, разработанных для 16-битных версий Windows, на платформах Windows NT, где папка System больше не рассматривается как подходящее место для хранения пользовательских данных или настроек. Несоответствующие стандарту 32-битные приложения также могут быть перенаправлены таким образом, хотя изначально эта функция предназначалась для 16-битных приложений.
Виртуализация реестра
Windows Vista представила ограниченную виртуализацию реестра, при которой некорректно написанные приложения, не соблюдающие принцип наименьших привилегий и пытающиеся записывать пользовательские данные в системное местоположение, доступное только для чтения (например, в ветку HKEY LOCAL MACHINE), автоматически перенаправляются в более подходящее место, без изменения самого приложения. Аналогично, виртуализация приложений перенаправляет все недопустимые операции реестра приложения в местоположение, например, в файл. В сочетании с виртуализацией файлов это позволяет приложениям работать на компьютере без его установки. Процессы с пониженной целостностью также могут использовать виртуализацию реестра. Например, Internet Explorer 7 или 8, работающий в "Защищенном режиме" в Windows Vista и более поздних версиях, автоматически перенаправляет записи реестра, выполняемые ActiveX-элементами управления, в изолированную среду, чтобы предотвратить некоторые виды атак безопасности. Комплект средств обеспечения совместимости приложений предоставляет исправления (shims), которые могут прозрачно перенаправлять операции реестра HKEY LOCAL MACHINE или HKEY CLASSES ROOT в HKEY CURRENT USER для устранения ошибок, связанных с "LUA", из-за которых приложения могут не работать у пользователей с недостаточными правами.
Недостатки
Критики назвали реестр в Windows 95 единственной точкой отказа, поскольку требовалась переустановка операционной системы в случае повреждения реестра. Однако Windows NT использует журналы транзакций для защиты от повреждений при обновлении. Современные версии Windows используют два уровня файлов журналов для обеспечения целостности даже в случае сбоя питания или подобных катастрофических событий во время обновления базы данных. Даже в случае необратимой ошибки Windows может восстановить или переинициализировать поврежденные записи реестра при загрузке системы. В macOS общесистемные файлы конфигурации обычно хранятся в папке /Library/, файлы конфигурации для конкретного пользователя – в соответствующей папке ~/Library/ в домашней директории пользователя, а файлы конфигурации, устанавливаемые системой, – в папке /System/Library/. В этих соответствующих каталогах приложение обычно хранит файл списка свойств в подкаталоге "Preferences/". RISC OS (не следует путать с MIPS RISC/os) использует каталоги для хранения конфигурационных данных, что позволяет копировать приложения в каталоги приложений, в отличие от отдельного процесса установки, характерного для приложений Windows; этот подход также используется в ROX Desktop для Linux. Такая организация конфигурации на основе каталогов также позволяет использовать различные версии одного и того же приложения, поскольку конфигурация выполняется "на лету". Если пользователь хочет удалить приложение, можно просто удалить папку, принадлежащую этому приложению. Это часто не удаляет настройки конфигурации, которые хранятся независимо от приложения, обычно в структуре !Boot компьютера, в файле !Boot.Choices или потенциально где-либо на сетевом файловом сервере. Установленные программы можно копировать между компьютерами под управлением RISC OS, копируя каталоги приложений, к которым они принадлежат, однако некоторым программам может потребоваться переустановка, например, когда общие файлы размещены вне каталога приложения.