Jump to content

Реестр Windows

(Перенаправлено с SYSTEM.DAT )

Реестр Windows
Разработчик(и) Майкрософт
Первоначальный выпуск 6 апреля 1992 г .; 32 года назад ( 6 апреля 1992 г. ) с Windows 3.1
Операционная система Microsoft Windows
Платформа IA-32 , x86-64 и ARM (и исторически DEC Alpha , Itanium , MIPS и PowerPC )
Входит в комплект Microsoft Windows
Тип Иерархическая база данных
Лицензия Собственный
Веб-сайт учиться .microsoft /en-нас /окна /win32 /sysinfo /регистрация  Edit this on Wikidata

Реестр Windows — это иерархическая база данных , в которой хранятся низкоуровневые настройки операционной системы Microsoft Windows и приложений, которые предпочитают использовать реестр. Ядро и , драйверы устройств , службы , диспетчер учетных записей безопасности пользовательские интерфейсы могут использовать реестр. Реестр также обеспечивает доступ к счетчикам для профилирования производительности системы.

Другими словами, реестр или реестр Windows содержит информацию, настройки, параметры и другие значения для программ и оборудования, установленных во всех версиях операционных систем Microsoft Windows. Например, при установке программы в реестр Windows добавляется новый подраздел, содержащий такие параметры, как расположение программы, ее версия и способ запуска программы.

представленный в Windows 3.1 Реестр Windows, , в основном хранил информацию о конфигурации для компонентов на основе COM . Windows 95 и Windows NT расширили возможности использования для рационализации и централизации информации в большом количестве INI-файлов , которые содержали конфигурации отдельных программ и хранились в различных местах. [ 1 ] [ 2 ] Приложения Windows не обязаны использовать реестр Windows. Например, приложения .NET Framework используют XML- для конфигурации файлы, тогда как переносимые приложения обычно хранят файлы конфигурации вместе со своими исполняемыми файлами .

Обоснование

[ редактировать ]

До реестра Windows . В файлах INI настройки каждой программы хранятся в виде текстового или двоичного файла , часто расположенного в общем месте, которое не предоставляет пользовательских настроек в многопользовательском сценарии. Реестр Windows, напротив, хранит все настройки приложения в одном логическом репозитории (но в нескольких отдельных файлах) и в стандартизированной форме. По словам Microsoft , это дает несколько преимуществ по сравнению с файлами .INI. [ 2 ] [ 3 ] Поскольку анализ файла в двоичном формате выполняется гораздо эффективнее, его можно прочитать или записать быстрее, чем текстовый файл 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, или синонимичными сокращениями (в зависимости от приложения): [ 4 ]

  • HKEY_LOCAL_MACHINE или HKLM
  • HKEY_CURRENT_CONFIG или HKCC
  • HKEY_CLASSES_ROOT или HKCR
  • HKEY_CURRENT_USER или HKCU
  • HKEY_USERS или HKU
  • HKEY_PERFORMANCE_DATA (только в Windows NT, но невидим в редакторе реестра Windows) [ 5 ]
  • HKEY_DYN_DATA (только в Windows 9x и виден в редакторе реестра Windows)

Как и другие файлы и службы в Windows, все ключи реестра могут быть ограничены списками управления доступом (ACL) в зависимости от привилегий пользователя или токенов безопасности, полученных приложениями, или системных политик безопасности, применяемых системой (эти ограничения могут быть заранее определены). самой системой и настраивается локальными системными администраторами или администраторами домена). Разные пользователи, программы, службы или удаленные системы могут видеть только некоторые части иерархии или отдельные иерархии из одних и тех же корневых ключей.

реестра Значения — это пары имя/данные, хранящиеся в ключах. Значения реестра упоминаются отдельно от ключей реестра. Каждое значение реестра, хранящееся в разделе реестра, имеет уникальное имя, регистр букв которого не имеет значения. Функции Windows API , которые запрашивают значения реестра и манипулируют ими, принимают имена значений отдельно от пути к ключу или дескриптора, идентифицирующего родительский ключ. Значения реестра могут содержать обратную косую черту в своих именах, но из-за этого их трудно отличить от путей к ключам при использовании некоторых устаревших функций Windows Registry API (использование которых не рекомендуется в Win32).

Терминология несколько вводит в заблуждение, поскольку каждый ключ реестра аналогичен ассоциативному массиву , где в стандартной терминологии часть имени каждого значения реестра будет называться «ключом». Эти термины являются исключением из 16-битного реестра Windows 3, в котором ключи реестра не могли содержать произвольные пары имя/данные, а содержали только одно безымянное значение (которое должно было быть строкой). В этом смысле реестр Windows 3 представлял собой единый ассоциативный массив, в котором ключи (в смысле как «ключа реестра», так и «ключа ассоциативного массива») образовывали иерархию, а все значения реестра представляли собой строки. Когда был создан 32-битный реестр, появилась дополнительная возможность создания нескольких именованных значений для каждого ключа, а значения имен были несколько искажены. [ 6 ] Для совместимости с предыдущим поведением каждый раздел реестра может иметь значение «по умолчанию», именем которого является пустая строка.

Каждое значение может хранить произвольные данные с переменной длиной и кодировкой, но оно связано с символьным типом (определенным как числовая константа), определяющим способ анализа этих данных. Стандартные типы: [ 7 ]

Список стандартных типов значений реестра
Идентификатор типа Символическое имя типа Значение и кодировка данных, хранящихся в значении реестра.
0 РЕГ_НЕТ Нет типа (сохраненное значение, если есть)
1 РЕГ_НО Строковое . значение, обычно хранящееся и предоставляемое в UTF-16 LE (при использовании версии функций Win32 API в Юникоде), обычно завершающееся символом 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_NO Многострочное значение, представляющее собой упорядоченный список непустых строк , обычно хранящихся и отображаемых в Юникоде, каждая из которых заканчивается нулевым символом, причем список обычно завершается вторым нулевым символом. [ 8 ]
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 ). [ 9 ]

Корневые ключи

[ редактировать ]

Ключам на корневом уровне иерархической базы данных обычно присваиваются имена в соответствии с их определениями Windows API , которые начинаются с «HKEY». [ 2 ] Их часто сокращают до трех- или четырехбуквенных коротких названий, начинающихся с «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 предъявляет особые требования к тому, где могут храниться различные типы пользовательских данных, а также к соблюдению концепции минимальных привилегий , чтобы для использования приложения не требовался доступ на уровне администратора. [ а ] [ 10 ]

HKEY_LOCAL_MACHINE (HKLM)

[ редактировать ]

Сокращенно HKLM, HKEY_LOCAL_MACHINE хранит настройки, специфичные для локального компьютера. [ 11 ]

Ключ, найденный HKLM, на самом деле не хранится на диске, а поддерживается в памяти ядром системы для сопоставления всех остальных подразделов. Приложения не могут создавать дополнительные подразделы. В Windows NT этот ключ содержит четыре подраздела: «SAM», «SECURITY», «SYSTEM» и «SOFTWARE», которые загружаются во время загрузки в соответствующих файлах, расположенных в папке %SystemRoot%\System32\config. Пятый подраздел, «HARDWARE», является энергозависимым, создается динамически и, как таковой, не сохраняется в файле (он предоставляет представление обо всех обнаруженных в данный момент устройствах Plug-and-Play). В Windows Vista и более поздних версиях шестой и седьмой подразделы «COMPONENTS» и «BCD» отображаются в памяти ядром по требованию и загружаются из %SystemRoot%\system32\config\COMPONENTS или из данных конфигурации загрузки \boot. \BCD в системном разделе.

  • Ключ «HKLM\SAM» обычно отображается пустым для большинства пользователей (если им не предоставлен доступ администраторами локальной системы или администраторами доменов, управляющих локальной системой). Он используется для ссылки на все базы данных « Диспетчер учетных записей безопасности » (SAM) для всех доменов, в которых локальная система была административно авторизована или настроена (включая локальный домен работающей системы, чья база данных SAM хранится в подразделе, также называемом « SAM": при необходимости будут созданы другие подразделы, по одному для каждого дополнительного домена). Каждая база данных SAM содержит все встроенные учетные записи (в основном псевдонимы групп) и настроенные учетные записи (пользователи, группы и их псевдонимы, включая гостевые учетные записи и учетные записи администратора), созданные и настроенные в соответствующем домене. Для каждой учетной записи в этом домене она, в частности, содержит пользователя. имя, которое можно использовать для входа в этот домен, внутренний уникальный идентификатор пользователя в домене, криптографический хеш пароля каждого пользователя для каждого включенного протокола аутентификации. , место хранения куста реестра пользователей, различные флаги состояния (например, если учетная запись может быть пронумерована и видна на экране приглашения на вход в систему), а также список доменов (включая локальный домен), в которых была настроена учетная запись. .
  • Ключ «HKLM\SECURITY» обычно отображается пустым для большинства пользователей (если им не предоставлен доступ от пользователей с административными привилегиями) и связан с базой данных безопасности домена, в который вошел текущий пользователь (если пользователь вошел в систему). домен локальной системы, этот ключ будет связан с кустом реестра, хранящимся на локальном компьютере и управляемым локальными системными администраторами или встроенной учетной записью «Система» и установщиками Windows). Ядро получит к нему доступ для чтения и применения политики безопасности, применимой к текущему пользователю и всем приложениям или операциям, выполняемым этим пользователем. Он также содержит подраздел «SAM», который динамически связан с базой данных SAM домена, в который вошел текущий пользователь.
  • Ключ «HKLM\SYSTEM» обычно доступен для записи только пользователям с правами администратора в локальной системе. Он содержит информацию о настройке системы Windows, данные для безопасного генератора случайных чисел (RNG), список подключенных в данный момент устройств, содержащих файловую систему, несколько пронумерованных «HKLM\SYSTEM\Control Sets», содержащих альтернативные конфигурации для системных драйверов оборудования и запущенных служб. в локальной системе (включая используемый в данный момент и резервный), подраздел «HKLM\SYSTEM\Select», содержащий состояние этих наборов элементов управления, и «HKLM\SYSTEM\CurrentControlSet», который динамически связывается во время загрузки с Набор элементов управления, который в данный момент используется в локальной системе. Каждый настроенный набор управления содержит:
    • подраздел «Enum», перечисляющий все известные устройства Plug-and-Play и связывающий их с установленными системными драйверами (и сохраняющий конфигурации этих драйверов для конкретных устройств),
    • подраздел «Службы», в котором перечислены все установленные системные драйверы (с конфигурацией, не зависящей от устройства, и перечисление устройств, для которых они созданы) и все программы, работающие как службы (как и когда они могут запускаться автоматически),
    • подраздел «Управление», организующий различные драйверы оборудования и программы, работающие как службы, а также все другие общесистемные конфигурации,
    • подраздел «Профили оборудования», в котором перечислены различные настроенные профили (каждый из которых имеет настройки «Система» или «Программное обеспечение», используемые для изменения профиля по умолчанию либо в системных драйверах и службах, либо в приложениях), а также раздел «Аппаратное обеспечение». Profiles\Current», который динамически связан с одним из этих профилей.
  • Подраздел «HKLM\SOFTWARE» содержит настройки программного обеспечения и Windows (в профиле оборудования по умолчанию). В основном он модифицируется установщиками приложений и системы. Он организован поставщиком программного обеспечения (с подразделом для каждого), но также содержит подраздел «Windows» для некоторых настроек пользовательского интерфейса Windows, подраздел «Классы», содержащий все зарегистрированные ассоциации из расширений файлов, типов MIME, идентификаторов классов объектов. и идентификаторы интерфейсов (для OLE, COM/DCOM и ActiveX) для установленных приложений или DLL, которые могут обрабатывать эти типы на локальном компьютере (однако эти ассоциации настраиваются для каждого пользователя, см. ниже), а также подраздел «Политики». (также организованный поставщиком) для обеспечения соблюдения общих политик использования приложений и системных служб (включая центральное хранилище сертификатов, используемое для аутентификации, авторизации или запрета удаленных систем или служб, работающих за пределами домена локальной сети).
  • Ключ «HKLM\SOFTWARE\Wow6432Node» используется 32-разрядными приложениями в 64-разрядной ОС Windows и эквивалентен ключу «HKLM\SOFTWARE», но отличается от него. Путь к ключу прозрачно представляется 32-битным приложениям WoW64 как HKLM\SOFTWARE. [ 12 ] (аналогично тому, как 32-битные приложения видят %SystemRoot%\Syswow64 как %SystemRoot%\System32)

HKEY_CLASSES_ROOT (HKCR)

[ редактировать ]
Сокращенно HKCR, HKEY_CLASSES_ROOT содержит информацию о зарегистрированных приложениях, например ассоциации файлов и идентификаторы классов объектов OLE , привязывая их к приложениям, используемым для обработки этих элементов. В Windows 2000 и более поздних версиях HKCR представляет собой компиляцию пользовательских HKCU\Software\Classes и машинных HKLM\Software\Classes. Если заданное значение существует в обоих подразделах выше, значение в HKCU\Software\Classes имеет приоритет. [ 13 ] Конструкция позволяет регистрировать COM- объекты как для машины, так и для пользователя.

HKEY_USERS (HKU)

[ редактировать ]
Сокращенно HKU, HKEY_USERS содержит подразделы, соответствующие ключам HKEY_CURRENT_USER для каждого профиля пользователя, активно загруженного на компьютер, хотя пользовательские кусты обычно загружаются только для пользователей, вошедших в систему в данный момент.

HKEY_CURRENT_USER (HKCU)

[ редактировать ]
Сокращенно HKCU, HKEY_CURRENT_USER хранит настройки, специфичные для текущего пользователя, вошедшего в систему. [ 14 ] Ключ HKEY_CURRENT_USER — это ссылка на подраздел HKEY_USERS, соответствующий пользователю; одна и та же информация доступна в обоих местах. Конкретный подраздел, на который ссылаются, — это «(HKU)\(SID)\...», где (SID) соответствует SID Windows ; если ключ «(HKCU)» имеет следующий суффикс «(HKCU)\Software\Classes\...», то он соответствует «(HKU)\(SID)_CLASSES\...», т.е. строке суффикса «_CLASSES» добавляется к (SID).
В системах Windows NT настройки каждого пользователя хранятся в отдельных файлах с именами NTUSER.DAT и USRCLASS.DAT в их собственной подпапке «Документы и настройки» (или в собственной подпапке «Пользователи» в Windows Vista и выше). Настройки в этом кусте следуют за пользователями с перемещаемым профилем от компьютера к компьютеру.

HKEY_PERFORMANCE_DATA

[ редактировать ]
Этот ключ предоставляет информацию времени выполнения в данные о производительности, предоставляемые либо самим ядром NT, либо запущенными системными драйверами, программами и службами, которые предоставляют данные о производительности. Этот ключ не хранится ни в одном кусте и не отображается в редакторе реестра, но он виден через функции реестра в Windows API или в упрощенном виде на вкладке «Производительность» диспетчера задач (только для некоторых данных о производительности на локальной системы) или через более продвинутые панели управления (такие как Performance Monitor или Performance Analyser, которые позволяют собирать и регистрировать эти данные, в том числе из удаленных систем).

ДАННЫЕ_HKEY

[ редактировать ]
Этот ключ используется только в Windows 95, Windows 98 и Windows ME . [ 15 ] Он содержит информацию об аппаратных устройствах, включая Plug and Play и статистику производительности сети. Информация в этом улье также не хранится на жестком диске; Информация Plug and Play собирается и настраивается при запуске и сохраняется в памяти. [ 16 ]

Несмотря на то, что реестр представляет собой интегрированную иерархическую базу данных, его ветви фактически хранятся в нескольких дисковых файлах, называемых ульями . [ 17 ] (Слово «улей» представляет собой шутку . ) [ 18 ]

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

Системы Windows NT хранят реестр в формате двоичного файла, который можно экспортировать, загружать и выгружать с помощью редактора реестра в этих операционных системах. Следующие файлы системного реестра хранятся в %SystemRoot%\System32\Config\:

  • Sam – HKEY_LOCAL_MACHINE\SAM
  • Security – HKEY_LOCAL_MACHINE\SECURITY
  • Software – HKEY_LOCAL_MACHINE\SOFTWARE
  • System – HKEY_LOCAL_MACHINE\SYSTEM
  • Default – HKEY_USERS\.DEFAULT
  • Userdiff – Не связан с ульем. Используется только при обновлении операционных систем. [ 19 ]

Следующий файл хранится в папке профиля каждого пользователя:

В Windows 2000, Server 2003 и Windows XP для ассоциаций файлов и информации COM используется следующий дополнительный пользовательский файл:

  • %USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat (путь локализован) – HKEY_USERS\<SID пользователя>_Classes (HKEY_CURRENT_USER\Software\Classes)

Для Windows Vista и более поздних версий путь был изменен на:

  • %USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat (путь не локализован) псевдоним %LocalAppData%\Microsoft\Windows\Usrclass.dat – HKEY_USERS\<SID пользователя>_Classes (HKEY_CURRENT_USER\Software\Classes)

Windows 2000 хранит альтернативную копию кустов реестра (.ALT) и пытается переключиться на нее при обнаружении повреждения. [ 20 ] Windows XP и Windows Server 2003 не поддерживают System.alt hive, поскольку NTLDR в этих версиях Windows может обрабатывать System.log файл для обновления куста System, который стал несогласованным во время завершения работы или сбоя. Кроме того, %SystemRoot%\Repair Папка содержит копию кустов реестра системы, созданных после установки и первого успешного запуска Windows.

Каждый файл данных реестра имеет связанный файл с расширением «.log», который действует как журнал транзакций и используется для обеспечения возможности завершения любых прерванных обновлений при следующем запуске. [ 21 ] Внутри файлы реестра разделены на «ячейки» по 4 КБ , которые содержат коллекции «ячеек». [ 21 ]

Файлы реестра хранятся в папке %WINDIR% каталог под именами USER.DAT и SYSTEM.DAT с добавлением CLASSES.DAT в Windows ME. Кроме того, каждый профиль пользователя (если профили включены) имеет свой собственный USER.DAT файл, который находится в каталоге профиля пользователя в %WINDIR%\Profiles\<Username>\.

Единственный файл реестра называется REG.DAT и он хранится в %WINDIR% каталог.

Windows 10 Мобильная

[ редактировать ]

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

  • WpInternals (Переведите устройство в режим прошивки.)
  • InterOp Tools (смонтируйте раздел MainOS с помощью MTP.)

Если какой-либо из вышеперечисленных методов сработал, файлы реестра устройства можно найти в следующем месте:

 {Phone}\EFIESP\Windows\System32\config

Редактирование

[ редактировать ]

Редакторы реестра

[ редактировать ]

Реестр содержит важную информацию о конфигурации операционной системы, установленных приложений, а также индивидуальные настройки для каждого пользователя и приложения. Неосторожное изменение конфигурации операционной системы в реестре может привести к необратимому повреждению, поэтому обычно только программы установки вносят изменения в базу данных реестра во время установки/настройки и удаления. Если пользователь хочет редактировать реестр вручную, Microsoft рекомендует выполнить резервное копирование реестра перед изменением. [ 22 ] Когда программа удаляется с панели управления, она может быть не удалена полностью, и в случае ошибок или сбоев, вызванных ссылками на отсутствующие программы, пользователю может потребоваться вручную проверить внутренние каталоги, такие как программные файлы. После этого пользователю может потребоваться вручную удалить все ссылки на неустановленную программу в реестре. Обычно это делается с помощью RegEdit.exe. [ 23 ] Редактирование реестра [ 24 ] иногда необходимо при решении проблем, специфичных для Windows, например, проблемы при входе в домен можно решить путем редактирования реестра. [ 25 ]

Реестр Windows можно редактировать вручную с помощью таких программ, как RegEdit.exe, хотя эти инструменты не раскрывают некоторые метаданные реестра, такие как дата последнего изменения.

Редактором реестра для операционных систем серии 3.1/95 является RegEdit.exe, а для Windows NT — RegEdt32.exe; функциональные возможности объединены в Windows XP. Дополнительные и сторонние инструменты, подобные RegEdit.exe, доступны для многих версий Windows CE.

Редактор реестра позволяет пользователям выполнять следующие функции:

  • Создание, манипулирование, переименование [ 26 ] и удаление ключей реестра, подразделов, значений и данных значений.
  • Импорт и экспорт. REG файлы, экспортирующие данные в формате двоичного улья
  • Загрузка, управление и выгрузка файлов формата куста реестра (только для систем Windows NT)
  • Установка разрешений на основе списков ACL (только для систем Windows NT)
  • Добавление выбранных пользователем ключей реестра в избранное
  • Поиск определенных строк в именах ключей, именах значений и данных значений.
  • Удаленное редактирование реестра на другом сетевом компьютере

.REG файлы

[ редактировать ]

.REG Файлы (также известные как регистрационные записи) представляют собой текстовые, удобочитаемые файлы для экспорта и импорта частей реестра с использованием синтаксиса на основе INI . В Windows 2000 и более поздних версиях они содержат строку «Редактор реестра Windows версии 5.00» в начале, а в системах Windows 9x и NT 4.0 они содержат строку REGEDIT4 . [ 27 ] Файлы REG в Windows 2000 и более поздних версиях основаны на Unicode , а в системах Windows 9x и NT 4.0 — на основе ANSI . [ нужна ссылка ] Формат Windows 9x .REG файлы совместимы с Windows 2000 и более поздними версиями. [ 27 ] Редактор реестра в Windows в этих системах также поддерживает экспорт .REG файлы в формате Windows 9x/NT. [ нужна ссылка ] Данные хранятся в .REG файлы, используя следующий синтаксис: [ 27 ]

[<Hive name>\<Key name>\<Subkey name>]
"Value name"=<Value type>:<Value data>

Значение ключа по умолчанию можно изменить, используя «@» вместо «Имя значения»:

[<Hive name>\<Key name>\<Subkey name>]
@=<Value type>:<Value data>

Строковые значения не требуют <Тип значения> (см. пример), но обратную косую черту ('\') необходимо записывать как двойную обратную косую черту ('\\'), а кавычки ('"') как обратную косую черту-кавычку ( '\"').

Например, чтобы добавить значения «Значение 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"="<String value data with escape characters>"
"Value B"=hex:<Binary data (as comma-delimited list of hexadecimal values)>
"Value C"=dword:<DWORD value integer>
"Value D"=hex(0):<REG_NONE (as comma-delimited list of hexadecimal values)>
"Value E"=hex(1):<REG_SZ (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)>
"Value F"=hex(2):<Expandable string value data (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)>
"Value G"=hex(3):<Binary data (as comma-delimited list of hexadecimal values)> ; equal to "Value B"
"Value H"=hex(4):<DWORD value (as comma-delimited list of 4 hexadecimal values, in little endian byte order)>
"Value I"=hex(5):<DWORD value (as comma-delimited list of 4 hexadecimal values, in big endian byte order)>
"Value J"=hex(7):<Multi-string value data (as comma-delimited list of hexadecimal values representing UTF-16LE NUL-terminated strings)>
"Value K"=hex(8):<REG_RESOURCE_LIST (as comma-delimited list of hexadecimal values)>
"Value L"=hex(a):<REG_RESOURCE_REQUIREMENTS_LIST (as comma-delimited list of hexadecimal values)>
"Value M"=hex(b):<QWORD value (as comma-delimited list of 8 hexadecimal values, in little endian byte order)>

Данные из .REG файлы можно добавить/объединить с реестром, дважды щелкнув эти файлы или используя ключ /s в командной строке. REG файлы также можно использовать для удаления данных реестра.

Чтобы удалить ключ (и все подразделы, значения и данные), имени ключа должен предшествовать знак минус («-»). [ 27 ]

Например, чтобы удалить ключ HKLM\SOFTWARE\Foobar (и все подразделы, значения и данные),

[-HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]

Чтобы удалить значение (и его данные), удаляемые значения должны иметь знак минус («-») после знака равенства («="). [ 27 ]

Например, чтобы удалить только значения «Значение A» и «Значение 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 минут. [ 28 ]

В рамках своей области политика определяет, к каким машинам и пользователям должна применяться политика. Подпадает ли машина или пользователь под действие политики или нет, определяется набором правил, которые могут фильтровать местоположение машины или учетной записи пользователя в каталоге организации, конкретных пользователей или учетных записей компьютеров или групп безопасности. Более сложные правила можно настроить с помощью выражений инструментария управления Windows . Такие правила могут фильтровать такие свойства, как имя поставщика компьютера, архитектура ЦП, установленное программное обеспечение или подключенные сети.

Например, администратор может создать политику с одним набором параметров реестра для компьютеров в бухгалтерии и политику с другим (блокирующим) набором параметров реестра для киоск-терминалов в зоне посетителей. Когда машина перемещается из одной области в другую (например, изменяется ее имя или перемещается в другое организационное подразделение), автоматически применяется правильная политика. При изменении политики она автоматически повторно применяется ко всем компьютерам, находящимся в настоящее время в ее области действия.

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

Редактирование командной строки

[ редактировать ]
рег
Разработчик(и) Майкрософт
Операционная система Microsoft Windows
Тип Команда
Лицензия Собственное коммерческое программное обеспечение
Веб-сайт документы .microsoft /en-нас /Windows-сервер /администрация /Windows-команды /рег
королевы
Разработчик(и) Майкрософт
Операционная система Microsoft Windows
Тип Команда
Лицензия Собственное коммерческое программное обеспечение
Веб-сайт документы .microsoft /en-нас /Windows-сервер /администрация /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 в UNICODE .REG файл, в то время как любой из

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>]

экспортируйте только указанный (под)ключ (который должен быть заключен в кавычки, если он содержит пробелы).

RegEdit.exe /a file

экспортирует весь реестр в формате V4 в ANSI .REG файл.

RegEdit.exe /a file <key>

экспортирует только указанный (под)ключ (который должен быть заключен в кавычки, если он содержит пробелы).

Также возможно использовать Reg.exe. Ниже приведен пример отображения значения параметра реестра Версия:

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

Команды и сценарии PowerShell

[ редактировать ]
Использование PowerShell для навигации по реестру

Windows PowerShell поставляется с поставщиком реестра, который представляет реестр как тип расположения, аналогичный файловой системе. Те же команды, которые используются для управления файлами и каталогами в файловой системе, можно использовать для управления ключами и значениями реестра. [ 29 ]

Также, как и файловая система, PowerShell использует концепцию текущего местоположения , которая определяет контекст, в котором по умолчанию работают команды. Get-ChildItem (также доступно через псевдонимы ls, dir или gci) извлекает дочерние ключи текущего местоположения. С помощью Set-Location (или псевдоним cd) команда пользователь может изменить текущее местоположение на другой ключ реестра. [ 29 ] Команды, которые переименовывают элементы, удаляют элементы, создают новые элементы или устанавливают содержимое элементов или свойств, могут использоваться для переименования ключей, удаления ключей или целых поддеревьев или изменения значений.

С помощью файлов сценариев PowerShell администратор может подготовить сценарии, которые при выполнении вносят изменения в реестр. Такие сценарии можно передать администраторам, которые смогут выполнять их на отдельных машинах. Поставщик реестра PowerShell поддерживает транзакции, т. е. несколько изменений в реестре могут быть объединены в одну атомарную транзакцию. Атомарная транзакция гарантирует, что либо все изменения будут зафиксированы в базе данных, либо, в случае сбоя сценария, ни одно из изменений не будет зафиксировано в базе данных. [ 29 ] [ 30 ]

Программы или скрипты

[ редактировать ]

Реестр можно редактировать с помощью API расширенной базовой библиотеки API Windows 32 (advapi32.dll). [ 31 ] Список функций API реестра:

  • RegCloseKey
  • РегКоннектРегистр
  • Регкреатекей
  • Регкреатекейекс
  • Регделетекей
  • Регделетевалуе
  • РегЕнумКей
  • Регэнумкейекс
  • Регэнумвалуе
  • RegFlushKey
  • RegGetKeySecurity
  • РегЛоадКей
  • RegNotifyChangeKeyValue
  • РегОпенКей
  • RegOpenKeyEx
  • Регкуеринфокей
  • RegQueryMultipleValues
  • Регкуервалуе
  • Регкуервалуеекс
  • RegReplaceKey
  • RegRestoreKey
  • RegSaveKey
  • RegSetKeySecurity
  • Регсетвалуе
  • Регсетвалуеекс
  • RegUnLoadKey

Многие языки программирования предлагают встроенные библиотеки времени выполнения функции или классы , которые обертывают базовые API-интерфейсы Windows и тем самым позволяют программам хранить настройки в реестре (например, Microsoft.Win32.Registry в VB.NET и C# или TRegistry в Delphi и Free Pascal ). COM Приложения с поддержкой , такие как Visual Basic 6, могут использовать WSH. WScript.Shell объект. Другой способ — использовать инструмент Windows Resource Kit. Reg.exe выполнив его из кода, [ 32 ] хотя это считается плохой практикой программирования.

Аналогично, языки сценариев, такие как Perl Win32::TieRegistry), Python (с Winreg), TCL (поставляется в комплекте с реестром), [ 33 ] Windows Powershell и Windows Scripting Host также позволяют редактировать реестр с помощью сценариев.

Автономное редактирование

[ редактировать ]

Offreg.dll [ 34 ] Доступный в комплекте драйверов Windows, предлагает набор API для создания и управления незагруженными в настоящее время ветвями реестра, аналогичными тем, которые предоставляются advapi32.dll.

Также возможно редактировать реестр (ульи) автономной системы из Windows PE или Linux (в последнем случае с помощью инструментов с открытым исходным кодом ).

COM саморегистрация

[ редактировать ]

До появления COM без регистрации разработчикам предлагалось добавлять код инициализации во внутрипроцессные и внепроцессные двоичные файлы для выполнения конфигурации реестра, необходимой для работы этого объекта. Для внутрипроцессных двоичных файлов, таких как файлы .DLL и .OCX, модули обычно экспортируют функцию DllInstall(). [ 35 ] его можно вызвать с помощью программ установки или вручную с помощью таких утилит, как Regsvr32.exe; [ 36 ] Двоичные файлы вне процесса обычно поддерживают аргументы командной строки /Regserver и /Unregserver, которые создавали или удаляли необходимые параметры реестра. [ 37 ] COM-приложения, которые выходят из строя из-за проблем с DLL Hell , обычно можно восстановить с помощью RegSvr32.exe или переключателя /RegServer без необходимости повторного запуска программ установки. [ 38 ]

Расширенная функциональность

[ редактировать ]

Windows предоставляет API, которые позволяют приложениям пользовательского режима регистрироваться для получения события уведомления в случае изменения определенного раздела реестра. [ 39 ] Также доступны API, позволяющие приложениям режима ядра фильтровать и изменять вызовы реестра, сделанные другими приложениями. [ 40 ]

Windows также поддерживает удаленный доступ к реестру другого компьютера через RegConnectRegistry функция [ 41 ] если служба удаленного реестра запущена, правильно настроена и ее сетевой трафик не защищен брандмауэром. [ 42 ]

Безопасность

[ редактировать ]

Каждый ключ в реестре версий Windows NT может иметь связанный с ним дескриптор безопасности . Дескриптор безопасности содержит список управления доступом (ACL) , который описывает, каким группам пользователей или отдельным пользователям предоставлены или запрещены разрешения на доступ. Набор разрешений реестра включает 10 прав/разрешений, которые можно явно разрешить или запретить пользователю или группе пользователей.

Разрешения реестра
Разрешение Описание
Значение запроса Право на чтение значения ключа реестра.
Установить значение Право на запись нового значения
Создать подраздел Право на создание подразделов.
Перечислить подразделы Разрешить перечисление подразделов.
Уведомить Право запрашивать уведомления об изменении разделов и подразделов реестра.
Создать ссылку Зарезервировано операционной системой.
Удалить Право на удаление ключа.
Написать DACL Право изменять разрешения DACL контейнера.
Написать владельца Право изменить владельца контейнера.
Чтение контроля Право на чтение DACL.

Как и в случае с другими защищаемыми объектами в операционной системе, отдельные записи управления доступом (ACE) в дескрипторе безопасности могут быть явными или унаследованы от родительского объекта. [ 43 ]

Защита ресурсов Windows — это функция Windows Vista и более поздних версий Windows, которая использует систему безопасности, чтобы запретить администраторам и системе ЗАПИСАТЬ доступ к некоторым конфиденциальным ключам, чтобы защитить целостность системы от вредоносных программ и случайных модификаций. [ 44 ]

Специальные элементы управления доступом в дескрипторе безопасности также могут реализовать обязательный контроль целостности ключа и подразделов реестра. Процесс, работающий на более низком уровне целостности, не может записывать, изменять или удалять ключ/значение реестра, даже если учетной записи процесса в противном случае был предоставлен доступ через ACL. Например, Internet Explorer, работающий в защищенном режиме, может считывать ключи/значения реестра средней и низкой целостности текущего пользователя, но он может изменять только ключи низкой целостности. [ 45 ]

За пределами безопасности ключи реестра не могут быть удалены или отредактированы по другим причинам. Ключи реестра, содержащие символы NUL, невозможно удалить с помощью стандартных редакторов реестра, и для их удаления требуется специальная утилита, например RegDelNull . [ 46 ] [ 47 ]

Резервные копии и восстановление

[ редактировать ]

Различные выпуски Windows на протяжении многих лет поддерживали ряд различных методов резервного копирования и восстановления реестра, некоторые из которых сейчас устарели:

  • Функция восстановления системы позволяет создать резервную копию реестра и восстановить его, пока Windows загружается, или из среды восстановления Windows (начиная с Windows Vista).
  • NTBackup может создать резервную копию реестра как часть состояния системы и восстановить его. Автоматическое восстановление системы в Windows XP также позволяет восстановить реестр.
  • В Windows NT параметр «Последняя удачная конфигурация» в меню запуска повторно связывает HKLM\SYSTEM\CurrentControlSet ключ, в котором хранится информация об оборудовании и драйверах устройств.
  • Windows 98 и Windows ME включают инструменты проверки реестра с командной строкой (Scanreg.exe) и графическим интерфейсом пользователя (Scanregw.exe) для проверки и исправления целостности реестра, создания до пяти автоматических регулярных резервных копий по умолчанию и восстановления их вручную или в случае повреждения. обнаружен. [ 48 ] Инструмент проверки реестра по умолчанию создает резервную копию реестра в %Windir%\Sysbckup Scanreg.exe также может запускаться из MS-DOS . [ 49 ]
  • Компакт-диск Windows 95 включал в себя утилиту аварийного восстановления (ERU.exe) и средство резервного копирования конфигурации (Cfgback.exe) для резервного копирования и восстановления реестра. Кроме того, Windows 95 создает резервную копию реестра в файлы system.da0 и user.da0 при каждой успешной загрузке.
  • Windows NT 4.0 включена RDISK.EXE, утилита для резервного копирования и восстановления всего реестра. [ 50 ]
  • Windows 2000 Resource Kit содержал неподдерживаемую пару утилит под названием Regback.exe и RegRest.exe для резервного копирования и восстановления реестра. [ 51 ]
  • Периодическое автоматическое резервное копирование реестра теперь по умолчанию отключено в обновлении Windows 10 May 2019 Update (версия 1903). Microsoft рекомендует вместо этого использовать восстановление системы. [ 52 ] [ 53 ]

Политика

[ редактировать ]

Групповая политика

[ редактировать ]

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

[ редактировать ]

связанных с INI-файлами, Ядра Windows NT поддерживают перенаправление API-интерфейсов, в виртуальный файл в таком месте реестра, как HKEY_CURRENT_USER, с использованием функции «InifileMapping». [ 55 ] Эта функция была введена, чтобы позволить устаревшим приложениям, написанным для 16-разрядных версий Windows, работать на платформах Windows NT, на которых системная папка больше не считается подходящим местом для хранения пользовательских данных или конфигурации. Несовместимые 32-битные приложения также можно перенаправить таким образом, хотя изначально эта функция предназначалась для 16-битных приложений.

Виртуализация реестра

[ редактировать ]

В Windows Vista введена ограниченная виртуализация реестра, при которой плохо написанные приложения, которые не соблюдают принцип наименьших привилегий и вместо этого пытаются записать пользовательские данные в системный каталог, доступный только для чтения (например, куст HKEY_LOCAL_MACHINE), автоматически перенаправляются в более подходящее место. , без изменения самого приложения.

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

с низким уровнем целостности Процессы также могут использовать виртуализацию реестра. Например, Internet Explorer 7 или 8, работающий в «Защищенном режиме» в Windows Vista и более поздних версиях, автоматически перенаправляет записи реестра, выполняемые элементами управления ActiveX, в изолированное расположение, чтобы препятствовать некоторым классам уязвимостей безопасности .

Набор инструментов для обеспечения совместимости приложений [ 56 ] предоставляет прокладки , которые могут прозрачно перенаправлять операции реестра HKEY_LOCAL_MACHINE или HKEY_CLASSES_ROOT на HKEY_CURRENT_USER для устранения ошибок « LUA », из-за которых приложения не работают для пользователей с недостаточными правами.

Недостатки

[ редактировать ]

Критики назвали реестр Windows 95 единственной точкой отказа , поскольку в случае повреждения реестра требовалась переустановка операционной системы. Однако Windows NT использует журналы транзакций для защиты от повреждения во время обновлений. Текущие версии Windows используют два уровня файлов журналов, чтобы обеспечить целостность даже в случае сбоя питания или подобных катастрофических событий во время обновлений базы данных. [ 57 ] Даже в случае неисправимой ошибки Windows может восстановить или повторно инициализировать поврежденные записи реестра во время загрузки системы. [ 57 ]

Эквиваленты и альтернативы

[ редактировать ]

В Windows использование реестра для хранения данных программы остается на усмотрение разработчика. Microsoft предоставляет программные интерфейсы для хранения данных в файлах XML (через MSXML ) или файлах базы данных (через SQL Server Compact ), которые вместо этого могут использовать разработчики. Разработчики также могут использовать альтернативы сторонних производителей или разрабатывать собственные хранилища данных.

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

  • В Unix-подобных операционных системах (включая Linux ), соответствующих стандарту иерархии файловой системы , общесистемные файлы конфигурации (информация аналогична той, что отображается в HKEY_LOCAL_MACHINE в Windows) традиционно хранятся в файлах в /etc/ и его подкаталоги, а иногда и в /usr/local/etc. Информация для каждого пользователя (информация, которая примерно эквивалентна информации в HKEY_CURRENT_USER) хранится в скрытых каталогах и файлах (которые начинаются с точки/ точки пользователя ) в домашнем каталоге . Однако приложения, совместимые с XDG, должны ссылаться на переменные среды, определенные в спецификации базового каталога. [ 58 ]
  • В macOS общесистемные файлы конфигурации обычно хранятся в /Library/ папка, тогда как файлы конфигурации для каждого пользователя хранятся в соответствующей ~/Library/ папке в домашнем каталоге пользователя, а файлы конфигурации, установленные системой, находятся в /System/Library/. В этих соответствующих каталогах приложение обычно хранит файл списка свойств в папке Preferences/ подкаталог.
  • ОС RISC (не путать с MIPS RISC/os ) использует каталоги для данных конфигурации, что позволяет копировать приложения в каталоги приложений , в отличие от отдельного процесса установки, который типичен для приложений Windows; этот подход также используется в ROX Desktop для Linux. [ 59 ] Эта конфигурация на основе каталогов также позволяет использовать разные версии одного и того же приложения, поскольку настройка выполняется «на лету». [ 60 ] Если вы хотите удалить приложение, можно просто удалить папку, принадлежащую приложению. [ 61 ] [ 62 ] компьютера Часто это не приводит к удалению параметров конфигурации, которые хранятся независимо от приложения, обычно в структуре !Boot , в !Boot.Choices или, возможно, где-либо на сетевом файловом сервере. Можно копировать установленные программы между компьютерами под управлением ОС RISC, копируя каталоги приложений, принадлежащие программам, однако некоторые программы могут потребовать переустановки, например, когда общие файлы размещаются вне каталога приложения. [ 60 ]
  • IBM AIX (вариант Unix) использует компонент реестра, называемый диспетчером объектных данных (ODM). ODM используется для хранения информации о конфигурации системы и устройства. Обширный набор инструментов и утилит предоставляет пользователям средства расширения, проверки и исправления базы данных ODM. ODM хранит свою информацию в нескольких файлах, расположение по умолчанию — /etc/objrepos.
  • Среда рабочего стола GNOME использует интерфейс, похожий на реестр, называемый dconf, для хранения настроек конфигурации рабочего стола и приложений.
  • Elektra Initiative предоставляет альтернативные серверные части для различных текстовых файлов конфигурации.
  • не является операционной системой Wine Хотя уровень совместимости , который позволяет программному обеспечению Windows работать в Unix-подобной системе, он также использует реестр, подобный Windows, в виде текстовых файлов в папке WINEPREFIX: system.reg (HKEY_LOCAL_MACHINE), user.reg ( HKEY_CURRENT_USER) и userdef.reg. [ 63 ]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Когда приложения не запускаются, потому что они запрашивают больше привилегий, чем им требуется (и им отказывают в этих привилегиях), это называется ошибкой приложения с ограниченным пользователем (LUA).
  1. ^ Эспозито, Дино (ноябрь 2000 г.). «Реестр Windows 2000: новейшие функции и API дают возможность настраивать и расширять ваши приложения» . Журнал MSDN . Майкрософт. Архивировано из оригинала 15 апреля 2003 года . Проверено 19 июля 2007 г.
  2. ^ Перейти обратно: а б с «Системный реестр» .
  3. ^ «Компоненты архитектуры Windows 95» . www.microsoft.com . Архивировано из оригинала 7 февраля 2008 года . Проверено 29 апреля 2008 г. В следующей таблице показаны другие трудности или ограничения, вызванные использованием файлов .INI, которые можно преодолеть с помощью реестра.
  4. ^ Хипсон 2002 , с. 5, 41–43.
  5. ^ Рихтер, Джеффри; Назар, Кристоф (2008). Windows через C/C++ (Пятое изд.). Майкрософт Пресс . ISBN  9780735642461 . Проверено 28 августа 2021 г.
  6. ^ Раймонд Чен , «Почему ключи реестра имеют значение по умолчанию?»
  7. ^ Хипсон 2002 , стр. 207, 513–514.
  8. ^ Хипсон 2002 , стр. 520–521.
  9. ^ Хипсон 2002 , с. 7.
  10. ^ «Разработано для спецификации приложений Windows XP» . Майкрософт . 20 августа 2002 года . Проверено 8 апреля 2009 г.
  11. ^ «HKEY_LOCAL_MACHINE» . Гаутама. 2009 . Проверено 8 апреля 2009 г.
  12. ^ «Ключи реестра, на которые влияет WOW64 (Windows)» . Msdn.microsoft.com . Проверено 10 апреля 2014 г.
  13. ^ «Описание реестра Microsoft Windows» . Проверено 25 сентября 2008 г.
  14. ^ «HKEY_CURRENT_USER» . Майкрософт . 2009 . Проверено 8 апреля 2009 г.
  15. ^ «Описание ключа реестра HKEY_DYN_DATA в Windows 95, Windows 98 и Windows 98 SE» . support.microsoft.com .
  16. ^ «Более внимательный взгляд на HKEY_DYN_DATA» . Ринет.ру . Архивировано из оригинала 9 мая 2008 года.
  17. ^ «Ульи реестра» . Проверено 19 июля 2007 г.
  18. ^ Чен, Раймонд (8 августа 2011 г.). «Почему файл реестра называется «ульем»?» . Старая новая вещь . Проверено 29 июля 2011 г.
  19. ^ «Обзор реестра Windows NT» . Проверено 2 декабря 2011 г.
  20. ^ «Внутри реестра» . Проверено 28 декабря 2007 г.
  21. ^ Перейти обратно: а б Норрис, Питер (февраль 2009 г.). «Внутренняя структура реестра Windows» (PDF) . Крэнфилдский университет. Архивировано из оригинала (PDF) 29 мая 2009 г.
  22. ^ «Для файлов .ico отображаются неправильные значки» . 15 ноября 2009 года . Проверено 31 марта 2012 г.
  23. ^ «Как полностью удалить/удалить программу в Windows без использования стороннего программного обеспечения? - AskVG» . www.askvg.com . 26 августа 2011 г.
  24. ^ «Исправление проблемы, при которой редактирование реестра было отключено вашим администратором» . WiseCleaner . Проверено 8 марта 2023 г.
  25. ^ «При попытке войти в домен вы можете получить сообщение об ошибке «STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS» . 9 октября 2011 года . Проверено 31 марта 2012 г. На этой странице пользователю предлагается отредактировать реестр при решении проблемы.
  26. ^ переименование ключей реализовано как удаление и добавление с сохранением подразделов/значений, поскольку базовые API не поддерживают функцию переименования напрямую.
  27. ^ Перейти обратно: а б с д и «Как добавлять, изменять или удалять подразделы и значения реестра с помощью файла .reg» . support.microsoft.com .
  28. ^ «Применение групповой политики» . Майкрософт.
  29. ^ Перейти обратно: а б с Пайетт, Брюс; Сиддэуэй, Ричард (2018). Windows PowerShell в действии (Третье изд.). Публикации Мэннинга . стр. 7–8, 24, 608, 708–710. ISBN  9781633430297 . Проверено 28 августа 2021 г.
  30. ^ Уорнер, Тимоти Л. (май 2015 г.). Windows PowerShell за 24 часа, Самс научит себя . Издательство Самс . п. 19 , 211 . ISBN  9780134049359 . Проверено 28 августа 2021 г.
  31. ^ «Чтение и запись значений реестра с помощью Visual Basic» . Проверено 19 июля 2007 г.
  32. ^ «Команда REG в Windows XP» . Проверено 19 июля 2007 г.
  33. ^ «Страница руководства по реестру — Пакеты Tcl» . www.tcl.tk. ​Проверено 14 декабря 2017 г.
  34. ^ «Библиотека автономного реестра» . Проверено 4 июня 2014 г.
  35. ^ «Функция DllInstall» . Майкрософт . 7 марта 2012 года . Проверено 22 марта 2012 г.
  36. ^ «Регсвр32» . Майкрософт . Проверено 22 марта 2012 г.
  37. ^ «Как зарегистрировать серверы автоматизации» . Майкрософт . Проверено 22 марта 2012 г.
  38. ^ «Как перерегистрировать PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 и PowerPoint 2010» . Майкрософт . Январь 2012 года . Проверено 22 марта 2012 г.
  39. ^ «Функция RegNotifyChangeKeyValue» . Майкрософт.
  40. ^ «Регистрация на уведомления» . Майкрософт.
  41. ^ «Функция RegConnectRegistry» . Майкрософт.
  42. ^ «Как управлять удаленным доступом к реестру» . Майкрософт.
  43. ^ Гибсон, Дэррил (28 июня 2011 г.). «Глава 4: Защита доступа с помощью разрешений». Безопасность Microsoft Windows: основы . Индианаполис, Индиана: Уайли. ISBN  978-1-118-01684-8 .
  44. ^ «Совместимость приложений: защита ресурсов Windows (WRP)» . Майкрософт . Проверено 8 августа 2012 г.
  45. ^ Марк Силби, Питер Брандретт. «Понимание и работа в защищенном режиме Internet Explorer» . Проверено 8 августа 2012 г.
  46. ^ «РегДелНулл v1.1» . 1 ноября 2006 года . Проверено 8 августа 2012 г.
  47. ^ «Невозможно удалить определенные ключи реестра — ошибка при удалении ключа» . 23 марта 2010 года . Проверено 8 августа 2012 г. Страница поддержки Microsoft.
  48. ^ «Описание средства проверки реестра Windows (Scanreg.exe)» .
  49. ^ «Параметры командной строки для средства проверки реестра» .
  50. ^ «Как создать резервную копию, редактировать и восстановить реестр в Windows NT 4.0» . support.microsoft.com .
  51. ^ «Технический справочник по реестру: сопутствующие ресурсы» . Майкрософт . Проверено 9 сентября 2011 г.
  52. ^ Уитвам, Райан (июль 2019 г.). «Microsoft прекращает автоматическое резервное копирование реестра в Windows 10» . ЭкстримТех . Проверено 1 июля 2019 г.
  53. ^ «Повторно включить периодическое автоматическое резервное копирование реестра в Windows 10» . WiseCleaner . Проверено 18 июля 2019 г.
  54. ^ «Как работает основная групповая политика» . Майкрософт . 2 сентября 2009 года . Проверено 13 августа 2012 г.
  55. ^ «Глава 26 – Файлы инициализации и реестр» . Майкрософт . Проверено 3 марта 2008 г.
  56. ^ «Набор средств обеспечения совместимости приложений Microsoft 5.0» . Майкрософт . Проверено 26 июля 2008 г.
  57. ^ Перейти обратно: а б Ионеску, Марк Руссинович, Дэвид А. Соломон, Алекс (2012). «Внутреннее устройство реестра». Внутренние устройства Windows (6-е изд.). Редмонд, Вашингтон: Microsoft Press. ISBN  978-0-7356-4873-9 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  58. ^ «Спецификация базового каталога XDG» . Standards.freedesktop.org .
  59. ^ «Каталоги приложений» . Архивировано из оригинала 27 мая 2012 года . Проверено 17 мая 2012 г.
  60. ^ Перейти обратно: а б «Примеры 132 основных проблем с операционными системами, отличными от RISC OS» . Проверено 3 апреля 2012 г. Страница с сайта riscos.com. Упоминается в пунктах 82 и 104.
  61. ^ «Тур по ОС RISC» . Проверено 19 июля 2007 г.
  62. ^ «Каталог продуктов ОС RISC» . 2 ноября 2006 года. Архивировано из оригинала 19 февраля 2007 года . Проверено 1 апреля 2012 г.
  63. ^ 3.2. Использование реестра и Regedit (Руководство пользователя Wine)
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9f583d5afac03274b441152be0a4baad__1723073700
URL1:https://arc.ask3.ru/arc/aa/9f/ad/9f583d5afac03274b441152be0a4baad.html
Заголовок, (Title) документа по адресу, URL1:
Windows Registry - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)