Редактор реестра, пользовательский интерфейс реестра в Windows 10 | |
Разработчики) | Microsoft |
---|---|
Первый выпуск | 6 апреля 1992 г. ; 29 лет назад с Windows 3.1 ( 1992-04-06) |
Операционная система | Майкрософт Виндоус |
Платформа | IA-32, x86-64 и ARM (и исторически DEC Alpha, Itanium, MIPS и PowerPC ) |
Включено в | Майкрософт Виндоус |
Тип | Иерархическая база данных |
Веб-сайт | документы.microsoft.com / en-us / windows / desktop / SysInfo / registry |
Реестр Windows представляет собой иерархическую базу данных, которая хранит низкоуровневые настройки для Microsoft Windows операционной системы, а также для приложений, которые предпочитают использовать реестр. Ядро, драйвера устройств, услуги, диспетчер учетных записей безопасности и пользовательские интерфейсы могут все использовать реестр. Реестр также позволяет получить доступ к счетчикам производительности системы профилирования.
Другими словами, реестр или реестр Windows содержит информацию, настройки, параметры и другие значения для программ и оборудования, установленных во всех версиях операционных систем Microsoft Windows. Например, при установке программы в реестр Windows добавляется новый подраздел, содержащий такие параметры, как расположение программы, ее версия и способ запуска программы.
Когда он был представлен в Windows 3.1, реестр Windows в основном хранил информацию о конфигурации для компонентов на основе 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, с использованием обратной косой черты для обозначения уровней иерархии. Ключи должны иметь имя без учета регистра без обратной косой черты.
Доступ к иерархии ключей реестра можно получить только из известного дескриптора корневого ключа (который является анонимным, но эффективное значение которого представляет собой постоянный числовой дескриптор), который сопоставлен с содержимым раздела реестра, предварительно загруженного ядром из сохраненного «куста», либо к содержимому подраздела в другом корневом разделе, либо сопоставленному с зарегистрированной службой или DLL, которая обеспечивает доступ к содержащимся в нем подразделам и значениям.
Например, HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows относится к подразделу «Windows» подраздела «Microsoft» подраздела «Программное обеспечение» корневого ключа HKEY_LOCAL_MACHINE.
Существует семь предопределенных корневых ключей, традиционно называемых в соответствии с их постоянными дескрипторами, определенными в Win32 API, или синонимичными сокращениями (в зависимости от приложений):
Как и другие файлы и службы в Windows, все разделы реестра могут быть ограничены списками управления доступом (ACL), в зависимости от прав пользователя, или токенов безопасности, полученных приложениями, или политик безопасности системы, применяемых системой (эти ограничения могут быть заранее определены. самой системой и настраивается локальными системными администраторами или администраторами домена). Разные пользователи, программы, службы или удаленные системы могут видеть только некоторые части иерархии или отдельные иерархии из одних и тех же корневых ключей.
Значения реестра - это пары имя / данные, хранящиеся в ключах. На значения реестра ссылаются отдельно от ключей реестра. Каждое значение реестра, хранящееся в разделе реестра, имеет уникальное имя, регистр букв которого не имеет значения. Функции Windows API, которые запрашивают значения реестра и управляют ими, принимают имена значений отдельно от пути к ключу и / или дескриптора, который идентифицирует родительский ключ. Значения реестра могут содержать обратную косую черту в своих именах, но из-за этого их трудно отличить от их ключевых путей при использовании некоторых устаревших функций Windows Registry API (использование которых не рекомендуется в Win32).
Терминология несколько вводит в заблуждение, поскольку каждый раздел реестра похож на ассоциативный массив, где стандартная терминология будет относиться к части имени каждого значения реестра как к «ключу». Эти термины заимствованы из 16-битного реестра в Windows 3, в котором ключи реестра не могут содержать произвольные пары имя / данные, а содержат только одно безымянное значение (которое должно быть строкой). В этом смысле реестр Windows 3 был подобен единому ассоциативному массиву, в котором ключи (в смысле как «ключа реестра», так и «ключа ассоциативного массива») образовывали иерархию, а все значения реестра были строками. Когда был создан 32-разрядный реестр, появилась дополнительная возможность создания нескольких именованных значений для каждого ключа, и значения имен были несколько искажены. Для совместимости с предыдущим поведением каждый раздел реестра может иметь значение «по умолчанию», имя которого - пустая строка.
Каждое значение может хранить произвольные данные с переменной длиной и кодировкой, но которые связаны с символическим типом (определенным как числовая константа), определяющим, как анализировать эти данные. Стандартные типы:
Тип ID | Имя символьного типа | Значение и кодировка данных, хранящихся в значении реестра |
---|---|---|
0 | REG_NONE | Без типа (сохраненное значение, если есть) |
1 | REG_SZ | Строка значение, как правило, хранятся и выставляются в UTF-16 LE (при использовании версии Юникода функций API Win32), как правило, завершаются NUL характер |
2 | REG_EXPAND_SZ | «Расширяемое» строковое значение, которое может содержать переменные среды, обычно хранящиеся и представляемые в UTF-16LE, обычно оканчивающиеся символом NUL. |
3 | REG_BINARY | Двоичные данные (любые произвольные данные) |
4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | Значение DWORD, 32-разрядное целое число без знака (числа от 0 до 4 294 967 295 [2 32 - 1]) (прямой порядок байтов ) |
5 | REG_DWORD_BIG_ENDIAN | Значение DWORD, 32-битное целое число без знака (числа от 0 до 4 294 967 295 [2 32 - 1]) (с прямым порядком байтов ) |
6 | REG_LINK | Символьная ссылка (UNICODE) на другой ключ реестра с указанием корневого ключа и пути к целевому ключу. |
7 | REG_MULTI_SZ | Многострочное значение, которое представляет собой упорядоченный список непустых строк, обычно хранящихся и представляемых в Юникоде, каждая из которых заканчивается нулевым символом, а список обычно заканчивается вторым нулевым символом. |
8 | REG_RESOURCE_LIST | Список ресурсов (используется при перечислении и настройке оборудования Plug-n-Play) |
9 | REG_FULL_RESOURCE_DESCRIPTOR | Дескриптор ресурса (используется при перечислении и настройке оборудования Plug-n-Play) |
10 | REG_RESOURCE_REQUIREMENTS_LIST | Список требований к ресурсам (используется при перечислении и настройке оборудования Plug-n-Play) |
11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | Значение QWORD, 64-битное целое число (либо с прямым порядком байтов, либо с прямым порядком байтов, либо без указания) (введено в Windows 2000 ) |
Ключи на корневом уровне иерархической базы данных обычно именуются в соответствии с их определениями Windows API, которые начинаются с HKEY. Их часто сокращают до трех- или четырехбуквенного короткого имени, начинающегося с «HK» (например, HKCU и HKLM). Технически это предопределенные дескрипторы (с известными постоянными значениями) определенных ключей, которые либо хранятся в памяти, либо хранятся в файлах куста, хранящихся в локальной файловой системе и загружаемых ядром системы во время загрузки, а затем совместно используемых (с различными правами доступа). между всеми процессами, запущенными в локальной системе, или загруженными и отображенными во всех процессах, запущенных в пользовательском сеансе, когда пользователь входит в систему.
Узлы HKEY_LOCAL_MACHINE (данные конфигурации для локального компьютера) и HKEY_CURRENT_USER (данные конфигурации для конкретного пользователя) имеют аналогичную структуру друг другу; пользовательские приложения обычно ищут свои настройки, сначала проверяя их в «HKEY_CURRENT_USER \ Software \ Vendor's name \ Application's name \ Version \ Setting name», и если параметр не найден, ищите вместо этого в том же месте под ключом HKEY_LOCAL_MACHINE. Однако обратное может применяться к параметрам политики, установленным администратором, где HKLM может иметь приоритет над HKCU. Программа с логотипом Windows предъявляет особые требования к тому, где могут храниться различные типы пользовательских данных, а также к соблюдению концепции минимальных прав, так что доступ на уровне администратора не требуется для использования приложения.
Сокращенно HKLM, HKEY_LOCAL_MACHINE хранит настройки, специфичные для локального компьютера.
Ключ, расположенный HKLM, на самом деле не хранится на диске, а поддерживается в памяти ядром системы для отображения всех других подключей. Приложения не могут создавать дополнительные подразделы. В Windows NT этот раздел содержит четыре подраздела: «SAM», «SECURITY», «SYSTEM» и «SOFTWARE», которые загружаются во время загрузки в соответствующие файлы, расположенные в папке% SystemRoot% \ System32 \ config. Пятый подключ, «HARDWARE», является энергозависимым и создается динамически и, как таковой, не сохраняется в файле (он предоставляет обзор всех обнаруженных в настоящий момент устройств Plug-and-Play). В Windows Vista и более поздних версиях шестой и седьмой подразделы «КОМПОНЕНТЫ» и «BCD» отображаются в памяти ядром по запросу и загружаются из% SystemRoot% \ system32 \ config \ COMPONENTS или из данных конфигурации загрузки, \ boot \ BCD в системном разделе.
Несмотря на то, что реестр представляет собой интегрированную иерархическую базу данных, ветви реестра фактически хранятся в нескольких дисковых файлах, называемых кустами. (Слово улей является шуткой. )
Некоторые ульи нестабильны и вообще не хранятся на диске. Примером этого является куст ветви, начинающейся с HKLM \ HARDWARE. Этот куст записывает информацию о системном оборудовании и создается каждый раз, когда система загружается и выполняет обнаружение оборудования.
Индивидуальные настройки для пользователей в системе хранятся в улье (файле на диске) для каждого пользователя. Во время входа пользователя система загружает пользовательский куст под ключом HKEY_USERS и устанавливает символическую ссылку HKCU (HKEY_CURRENT_USER), указывающую на текущего пользователя. Это позволяет приложениям неявно сохранять / извлекать настройки для текущего пользователя под ключом HKCU.
Не все ульи загружаются одновременно. Во время загрузки загружается только минимальный набор кустов, а после этого кусты загружаются при инициализации операционной системы и при входе пользователей в систему или всякий раз, когда куст явно загружается приложением.
Реестр физически хранится в нескольких файлах, которые обычно скрыты от API пользовательского режима, используемых для управления данными внутри реестра. В зависимости от версии Windows для этих файлов будут разные файлы и разные места, но все они находятся на локальном компьютере. Расположение файлов системного реестра в Windows NT является %SystemRoot%\System32\Config
; пользовательский куст реестра HKEY_CURRENT_USER хранится Ntuser.dat
внутри профиля пользователя. Один из них для каждого пользователя; если у пользователя есть перемещаемый профиль, то этот файл будет скопирован на сервер и с сервера при выходе из системы и входе в систему соответственно. Второй пользовательский файл реестра с именем UsrClass.dat содержит записи реестра COM и по умолчанию не перемещается.
Системы Windows NT хранят реестр в двоичном формате файла, который может быть экспортирован, загружен и выгружен редактором реестра в этих операционных системах. Следующие файлы системного реестра хранятся в %SystemRoot%\System32\Config\
:
Sam
- HKEY_LOCAL_MACHINE \ SAMSecurity
- HKEY_LOCAL_MACHINE \ SECURITYSoftware
- HKEY_LOCAL_MACHINE \ SOFTWARESystem
- HKEY_LOCAL_MACHINE \ SYSTEMDefault
- HKEY_USERS \.DEFAULTUserdiff
- Не связано с ульем. Используется только при обновлении операционных систем.В папке профиля каждого пользователя хранится следующий файл:
%USERPROFILE%\Ntuser.dat
- HKEY_USERS \ lt; User SID gt; (связан с HKEY_CURRENT_USER)Для Windows 2000, Server 2003 и Windows XP следующий дополнительный пользовательский файл используется для ассоциаций файлов и информации COM:
%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat
(путь локализован) - HKEY_USERS \ lt;User SIDgt; _Classes (HKEY_CURRENT_USER \ Software \ Classes)Для Windows Vista и более поздних версий путь был изменен на:
%USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat
(путь не локализован) псевдоним %LocalAppData%\Microsoft\Windows\Usrclass.dat
- HKEY_USERS \ lt;User SIDgt; _Classes (HKEY_CURRENT_USER \ Software \ Classes)Windows 2000 сохраняет альтернативную копию кустов реестра (.ALT) и пытается переключиться на нее при обнаружении повреждения. Windows XP и Windows Server 2003 не поддерживают System.alt
куст, потому что NTLDR в этих версиях Windows может обрабатывать System.log
файл, чтобы обновить куст System, который стал несовместимым во время завершения работы или сбоя. Кроме того, в %SystemRoot%\Repair
папке находятся копии кустов системного реестра, которые были созданы после установки и первого успешного запуска Windows.
Каждый файл данных реестра имеет связанный файл с расширением «.log», который действует как журнал транзакций, который используется для обеспечения того, чтобы любые прерванные обновления могли быть выполнены при следующем запуске. Внутри файлы реестра разделены на «ячейки» по 4 КБ, которые содержат коллекции «ячеек».
Файлы реестра хранятся в %WINDIR%
каталоге под именами USER.DAT
и SYSTEM.DAT
с добавлением CLASSES.DAT
в Windows ME. Кроме того, каждый профиль пользователя (если профили включены) имеет свой собственный USER.DAT
файл, который находится в каталоге профиля пользователя в %WINDIR%\Profiles\lt;Usernamegt;\
.
Вызывается единственный файл реестра, который REG.DAT
хранится в %WINDIR%
каталоге.
Примечание. Чтобы получить доступ к файлам реестра, телефон необходимо установить в специальный режим, используя:
Если какой-либо из вышеперечисленных методов сработал - файлы реестра устройства можно найти в следующем месте:
{Phone}\EFIESP\Windows\System32\config
Примечание. InterOp Tools также включает редактор реестра.
Реестр содержит важную информацию о конфигурации операционной системы, установленных приложений, а также индивидуальные настройки для каждого пользователя и приложения. Небрежное изменение конфигурации операционной системы в реестре может вызвать необратимый ущерб, поэтому обычно только программы установки вносят изменения в базу данных реестра во время установки / настройки и удаления. Если пользователь хочет отредактировать реестр вручную, Microsoft рекомендует сделать резервную копию реестра перед внесением изменений. Когда программа удаляется с панели управления, она не может быть удалена полностью, и в случае ошибок или сбоев, вызванных ссылками на отсутствующие программы, пользователю может потребоваться вручную проверить внутренние каталоги, такие как файлы программ. После этого пользователю может потребоваться вручную удалить любую ссылку на удаленную программу в реестре. Обычно это делается с помощью RegEdit.exe. Редактирование реестра иногда необходимо при работе с проблемами, связанными с Windows, например, проблемы при входе в домен могут быть решены путем редактирования реестра.
Реестр Windows можно редактировать вручную с помощью таких программ, как RegEdit.exe, хотя эти инструменты не раскрывают некоторые метаданные реестра, например дату последнего изменения.
Редактором реестра для операционных систем серии 3.1 / 95 является RegEdit.exe, а для Windows NT - RegEdt32.exe; функции объединены в Windows XP. Дополнительные и / или сторонние инструменты, подобные RegEdit.exe, доступны для многих версий Windows CE.
Редактор реестра позволяет пользователям выполнять следующие функции:
REG
файлы, экспорт данных в двоичный формат улья.REG
файлы.REG
Файлы (также известные как Регистрационные записи) представляют собой текстовые файлы, удобочитаемые для человека, для экспорта и импорта частей реестра с использованием синтаксиса на основе INI. В Windows 2000 и более поздних версиях они содержат в начале строку Windows Registry Editor Version 5.00 и основаны на Unicode. В системах Windows 9x и NT 4.0 они содержат строку REGEDIT4 и основаны на ANSI. .REG
Файлы формата Windows 9x совместимы с Windows 2000 и более поздними версиями. Редактор реестра в Windows в этих системах также поддерживает экспорт .REG
файлов в формате Windows 9x / NT. Данные хранятся в .REG
файлах с использованием следующего синтаксиса:
[lt;Hive namegt;\lt;Key namegt;\lt;Subkey namegt;] "Value name"=lt;Value typegt;:lt;Value datagt;
Значение по умолчанию для ключа можно изменить, используя "@" вместо "Имя значения":
[lt;Hive namegt;\lt;Key namegt;\lt;Subkey namegt;] @=lt;Value typegt;:lt;Value datagt;
Для строковых значений не требуется lt;Тип значенияgt; (см. Пример), но обратная косая черта ('\') должна быть записана как двойная обратная косая черта ('\\'), а кавычки ('"') как обратная косая черта-кавычка ( '\ "').
Например, чтобы добавить значения «Значение A», «Значение B», «Значение C», «Значение D», «Значение E», «Значение F», «Значение G», «Значение H», «Значение I». "," Значение J "," Значение K "," Значение L "и" Значение M "для ключа HKLM \ SOFTWARE \ Foobar:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value A"="lt;String value data with escape charactersgt;" "Value B"=hex:lt;Binary data (as comma-delimited list of hexadecimal values)gt; "Value C"=dword:lt;DWORD value integergt; "Value D"=hex(0):lt;REG_NONE (as comma-delimited list of hexadecimal values)gt; "Value E"=hex(1):lt;REG_SZ (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)gt; "Value F"=hex(2):lt;Expandable string value data (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)gt; "Value G"=hex(3):lt;Binary data (as comma-delimited list of hexadecimal values)gt; ; equal to "Value B" "Value H"=hex(4):lt;DWORD value (as comma-delimited list of 4 hexadecimal values, in little endian byte order)gt; "Value I"=hex(5):lt;DWORD value (as comma-delimited list of 4 hexadecimal values, in big endian byte order)gt; "Value J"=hex(7):lt;Multi-string value data (as comma-delimited list of hexadecimal values representing UTF-16LE NUL-terminated strings)gt; "Value K"=hex(8):lt;REG_RESOURCE_LIST (as comma-delimited list of hexadecimal values)gt; "Value L"=hex(a):lt;REG_RESOURCE_REQUIREMENTS_LIST (as comma-delimited list of hexadecimal values)gt; "Value M"=hex(b):lt;QWORD value (as comma-delimited list of 8 hexadecimal values, in little endian byte order)gt;
Данные из .REG
файлов можно добавить / объединить с реестром, дважды щелкнув эти файлы или используя переключатель / s в командной строке. REG
файлы также можно использовать для удаления данных реестра.
Чтобы удалить ключ (и все подразделы, значения и данные), перед именем ключа должен стоять знак минус («-»).
Например, чтобы удалить ключ HKLM \ SOFTWARE \ Foobar (и все подразделы, значения и данные),
[-HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
Чтобы удалить значение (и его данные), удаляемые значения должны иметь знак минус («-») после знака равенства («=»).
Например, чтобы удалить только значения «Value A» и «Value B» (и их данные) из ключа HKLM \ SOFTWARE \ Foobar:
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value A"=- "Value B"=-
Чтобы удалить только значение по умолчанию для ключа HKLM \ SOFTWARE \ Foobar (и его данные):
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] @=-
Строки, начинающиеся с точки с запятой, считаются комментариями:
; This is a comment. This can be placed in any part of a.reg file [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value"="Example string"
Групповые политики Windows могут изменять ключи реестра для ряда машин или отдельных пользователей в зависимости от политик. Когда политика впервые вступает в силу для компьютера или отдельного пользователя компьютера, параметры реестра, указанные как часть политики, применяются к параметрам компьютера или пользователя.
Windows также будет искать обновленные политики и периодически применять их, обычно каждые 90 минут.
В рамках своей области действия политика определяет, к каким машинам и / или пользователям следует применять политику. Находится ли машина или пользователь в рамках политики или нет, определяется набором правил, которые могут фильтровать по местоположению машины или учетной записи пользователя в каталоге организации, конкретных пользователей или учетных записей компьютеров или групп безопасности. Более сложные правила можно настроить с помощью выражений инструментария управления Windows. Такие правила могут фильтровать такие свойства, как имя производителя компьютера, архитектура процессора, установленное программное обеспечение или сети, к которым подключены.
Например, администратор может создать политику с одним набором параметров реестра для машин в бухгалтерии и политику с другим (закрытым) набором параметров реестра для терминалов киосков в зоне для посетителей. Когда машина перемещается из одной области в другую (например, при изменении ее имени или перемещении в другую организационную единицу), автоматически применяется правильная политика. Когда политика изменяется, она автоматически повторно применяется ко всем машинам, находящимся в ее области действия.
Политика редактируется с помощью ряда административных шаблонов, которые предоставляют пользовательский интерфейс для выбора и изменения настроек. Набор административных шаблонов является расширяемым, и программные пакеты, поддерживающие такое удаленное администрирование, могут регистрировать свои собственные шаблоны.
Реестром можно управлять несколькими способами из командной строки. Reg.exe
И RegIni.exe
подсобные инструменты включены в Windows XP и более поздних версиях Windows. Альтернативные места для устаревших версий Windows включают компакт-диски Resource Kit или исходный установочный компакт-диск Windows.
Также .REG
файл можно импортировать из командной строки с помощью следующей команды:
RegEdit.exe /s file
/ S означает, что файл будет автоматически добавлен в реестр. Если /s
параметр не указан, пользователю будет предложено подтвердить операцию. В Windows 98, Windows 95 и, по крайней мере, в некоторых конфигурациях Windows XP /s
переключатель также заставляет RegEdit.exe
игнорировать параметр в реестре, который позволяет администраторам отключать его. При использовании /s
переключателя RegEdit.exe
не возвращается соответствующий код возврата в случае сбоя операции, в отличие от Reg.exe
этого.
RegEdit.exe /e file
экспортирует весь реестр в формате V5 в .REG
файл UNICODE, а любой из
RegEdit.exe /e file HKEY_CLASSES_ROOT[\lt;keygt;] RegEdit.exe /e file HKEY_CURRENT_CONFIG[\lt;keygt;] RegEdit.exe /e file HKEY_CURRENT_USER[\lt;keygt;] RegEdit.exe /e file HKEY_LOCAL_MACHINE[\lt;keygt;] RegEdit.exe /e file HKEY_USERS[\lt;keygt;]
экспортировать только указанный (под) ключ (который должен быть заключен в кавычки, если он содержит пробелы).
RegEdit.exe /a file
экспортирует весь реестр в формате V4 в .REG
файл ANSI.
RegEdit.exe /a file lt;keygt;
экспортирует только указанный (под) ключ (который должен быть заключен в кавычки, если он содержит пробелы).
Также можно использовать Reg.exe
. Вот пример отображения значения параметра реестра Version:
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Другие параметры командной строки включают в себя VBScript или JScript вместе с CScript, WMI или WMIC.exe
и Windows PowerShell.
Разрешениями реестра можно управлять через командную строку с помощью RegIni.exe
и SubInACL.exe
инструмента. Например, разрешения для ключа HKEY_LOCAL_MACHINE \ SOFTWARE можно отобразить с помощью:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
Windows PowerShell поставляется с поставщиком реестра, который представляет реестр как тип расположения, аналогичный файловой системе. Те же команды, которые используются для управления файлами и каталогами в файловой системе, можно использовать для управления ключами и значениями реестра.
Как и файловая система, PowerShell использует концепцию текущего местоположения, которая определяет контекст, в котором по умолчанию работают команды. Get-ChildItem
(Также доступны через псевдонимы ls
, dir
или gci
) извлекает дочерние ключи от текущего местоположения. Используя команду Set-Location
(или псевдоним cd
), пользователь может изменить текущее местоположение на другой раздел реестра. Команды, которые переименовывают элементы, удаляют элементы, создают новые элементы или устанавливают содержимое элементов или свойств, могут использоваться для переименования ключей, удаления ключей или целых поддеревьев или изменения значений.
С помощью файлов сценариев PowerShell администратор может подготовить сценарии, которые при выполнении вносят изменения в реестр. Такие сценарии могут быть переданы администраторам, которые могут выполнять их на отдельных машинах. Провайдер реестра PowerShell поддерживает транзакции, то есть несколько изменений в реестре могут быть объединены в одну атомарную транзакцию. Атомарная транзакция гарантирует, что либо все изменения будут зафиксированы в базе данных, либо, если сценарий завершится неудачно, ни одно из изменений не будет зафиксировано в базе данных.
Реестр можно редактировать с помощью API библиотеки Advanced Windows 32 Base API Library (advapi32.dll).
Многие языки программирования предлагают встроенные функции или классы библиотеки времени выполнения, которые обертывают базовые API Windows и тем самым позволяют программам сохранять настройки в реестре (например, в VB.NET и C # или в Delphi и Free Pascal ). Приложения с поддержкой COM, такие как Visual Basic 6, могут использовать объект WSH. Другой способ - использовать Windows Resource Kit Tool, выполнив его из кода, хотя это считается плохой практикой программирования. Microsoft.Win32.Registry
TRegistry
WScript.Shell
Reg.exe
Точно так же языки сценариев, такие как Perl (с Win32::TieRegistry
), Python (с winreg), TCL (который поставляется в комплекте с пакетом реестра), Windows Powershell и Windows Scripting Host, также позволяют редактировать реестр из сценариев.
Offreg.dll, доступный в Windows Driver Kit, предлагает набор API-интерфейсов для создания незагруженных кустов реестра и управления ими, аналогичных тем, которые предоставляет advapi32.dll.
Также возможно редактировать реестр (кусты) автономной системы из Windows PE или Linux (в последнем случае с помощью инструментов с открытым исходным кодом ).
До введения COM без регистрации разработчикам предлагалось добавлять код инициализации в исполняемые и внепроцессные двоичные файлы для выполнения конфигурации реестра, необходимой для работы этого объекта. Для внутрипроцессных двоичных файлов, таких как файлы.DLL и.OCX, модули обычно экспортируют функцию, называемую DllInstall (), которая может вызываться программами установки или запускаться вручную с помощью таких утилит, как Regsvr32.exe; внепроцессные двоичные файлы обычно поддерживают аргументы командной строки / Regserver и / Unregserver, которые создали или удалили необходимые параметры реестра. Приложения COM, которые ломаются из-за проблем с DLL Hell, обычно можно исправить с помощью RegSvr32.exe или переключателя / RegServer без повторного вызова программ установки.
Windows предоставляет API-интерфейсы, которые позволяют приложениям пользовательского режима регистрироваться для получения события уведомления при изменении определенного раздела реестра. Также доступны API, позволяющие приложениям в режиме ядра фильтровать и изменять вызовы реестра, сделанные другими приложениями.
Windows также поддерживает удаленный доступ к реестру другого компьютера через эту RegConnectRegistry
функцию, если служба удаленного реестра работает, правильно настроена и ее сетевой трафик не защищен брандмауэром.
Каждый ключ в реестре версий Windows NT может иметь связанный дескриптор безопасности. Дескриптор безопасности содержит список управления доступом (ACL), который описывает, каким группам пользователей или отдельным пользователям предоставлены или запрещены разрешения на доступ. Набор разрешений реестра включает 10 прав / разрешений, которые могут быть явно разрешены или запрещены пользователю или группе пользователей.
Разрешение | Описание |
---|---|
Значение запроса | Право на чтение значения ключа реестра. |
Установить значение | Право написать новое значение |
Создать подраздел | Право создавать подключи. |
Перечислить подразделы | Разрешить перечисление подключей. |
Поставить в известность | Право запрашивать уведомления об изменении ключей или подразделов реестра. |
Создать ссылку | Зарезервировано операционной системой. |
Удалить | Право на удаление ключа. |
Написать DACL | Право изменять разрешения DACL контейнера. |
Написать владельцу | Право изменять владельца контейнера. |
Читать контроль | Право читать DACL. |
Как и в случае с другими защищаемыми объектами в операционной системе, отдельные записи управления доступом (ACE) в дескрипторе безопасности могут быть явными или унаследованными от родительского объекта.
Защита ресурсов Windows - это функция Windows Vista и более поздних версий Windows, которая использует систему безопасности для отказа администраторам и систему ЗАПИСЬ доступа к некоторым конфиденциальным ключам для защиты целостности системы от вредоносных программ и случайных изменений.
Специальные ACE в дескрипторе безопасности также могут реализовать обязательный контроль целостности для раздела и подключей реестра. Процесс, работающий на более низком уровне целостности, не может записывать, изменять или удалять ключ / значение реестра, даже если учетной записи процесса был предоставлен доступ через ACL. Например, Internet Explorer, работающий в защищенном режиме, может читать ключи / значения реестра со средней и низкой степенью целостности текущего пользователя, вошедшего в систему, но он может изменять только ключи с низким уровнем целостности.
Вне безопасности ключи реестра нельзя удалить или отредактировать по другим причинам. Ключи реестра, содержащие символы NUL, не могут быть удалены стандартными редакторами реестра, и для их удаления требуется специальная утилита, например RegDelNull.
Различные выпуски Windows на протяжении многих лет поддерживали ряд различных методов резервного копирования и восстановления реестра, некоторые из которых теперь устарели:
HKLM\SYSTEM\CurrentControlSet
ключ, в котором хранится информация об оборудовании и драйверах устройств.%Windir%\Sysbckup
Scanreg.exe также может запускаться из MS-DOS.RDISK.EXE
, утилита для резервного копирования и восстановления всего реестра.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
Файл простой текст и поддерживает легкую локализацию, позволяя все строки, которые будут храниться в одном месте.
Ядра Windows NT поддерживают перенаправление API - интерфейсов, связанных с INI-файлом, в виртуальный файл в месте реестра, таком как HKEY_CURRENT_USER, с помощью функции, называемой «InifileMapping». Эта функция была введена для того, чтобы унаследованные приложения, написанные для 16-разрядных версий Windows, могли работать на платформах Windows NT, на которых системная папка больше не считается подходящим местом для пользовательских данных или конфигурации. Несовместимые 32-битные приложения также могут быть перенаправлены таким образом, даже если эта функция изначально предназначалась для 16-битных приложений.
Windows Vista представила ограниченную виртуализацию реестра, при которой плохо написанные приложения, которые не соблюдают принцип наименьших привилегий и вместо этого пытаются записать данные пользователя в системное расположение только для чтения (например, куст HKEY_LOCAL_MACHINE), незаметно перенаправляются в более подходящее место, без изменения самого приложения.
Точно так же виртуализация приложений перенаправляет все недопустимые операции реестра приложения в такое место, как файл. При использовании вместе с виртуализацией файлов это позволяет приложениям запускаться на машине без установки на нее.
Процессы с низким уровнем целостности также могут использовать виртуализацию реестра. Например, Internet Explorer 7 или 8, работающий в «Защищенном режиме» в Windows Vista и более поздних версиях, автоматически перенаправляет записи реестра с помощью элементов управления ActiveX в изолированное место, чтобы предотвратить некоторые классы уязвимостей безопасности.
Набор средств обеспечения совместимости приложений предоставляет оболочки, которые могут прозрачно перенаправлять операции реестра HKEY_LOCAL_MACHINE или HKEY_CLASSES_ROOT в HKEY_CURRENT_USER для устранения ошибок LUA, из-за которых приложения не работают для пользователей с недостаточными правами.
Критики назвали реестр в Windows 95 единственной точкой отказа, поскольку в случае повреждения реестра требовалась переустановка операционной системы. Однако Windows NT использует журналы транзакций для защиты от повреждения во время обновлений. Текущие версии Windows используют два уровня файлов журнала для обеспечения целостности даже в случае сбоя питания или аналогичных катастрофических событий во время обновления базы данных. Даже в случае неисправимой ошибки Windows может восстановить или повторно инициализировать поврежденные записи реестра во время загрузки системы.
В Windows использование реестра для хранения данных программы - это вопрос усмотрения разработчика. Microsoft предоставляет программные интерфейсы для хранения данных в файлах XML (через MSXML ) или файлах базы данных (через SQL Server Compact ), которые разработчики могут использовать вместо этого. Разработчики также могут использовать альтернативы сторонних разработчиков или разрабатывать собственные собственные хранилища данных.
В отличие от модели базы данных на основе двоичного реестра Windows, некоторые другие операционные системы используют отдельные текстовые файлы для конфигурации демона и приложения, но группируют эти конфигурации вместе для упрощения управления.
/etc/
и его подкаталогах, а иногда и в /usr/local/etc
. Информация для каждого пользователя (информация, которая была бы примерно эквивалентна информации в HKEY_CURRENT_USER) хранится в скрытых каталогах и файлах (которые начинаются с точки / точки) в домашнем каталоге пользователя. Однако приложения, совместимые с XDG, должны ссылаться на переменные среды, определенные в спецификации Base Directory./Library/
папке, тогда как файлы конфигурации для каждого пользователя хранятся в соответствующей ~/Library/
папке в домашнем каталоге пользователя, а файлы конфигурации, установленные системой, находятся в /System/Library/
. В этих соответствующих каталогах приложение обычно хранит файл списка свойств в Preferences/
подкаталоге.