Реестр Windows Server 2003
Настройка и устранение проблем с помощью реестра
Иногда единственный способ устранения проблемы – это работа с реестром. Во многих случаях это результат консультаций со службами поддержки Microsoft или компании, разрабатывающей ПО, либо результат инструкций, которые вы нашли в какой-либо статье Microsoft Knowledge Base. Вы можете добавлять, удалять или изменять подразделы и элементы данных реестра.
Экспорт разделов
Прежде чем работать с данными реестра, всегда создавайте резервную копию подраздела, в котором вы работаете, чтобы можно было восстановить прежние данные, если ваши изменения неверны. Для этого выберите подраздел, с которым планируете работать, и выберите File\Export. В диалоговом окне Export Registry File (Экспорт файла реестра) задайте имя файла и выберите тип файла Registration File (*.reg). Windows Server 2003 выбирает папку My Documents как место по умолчанию, но вы можете сохранять этот файл где угодно.
Тип файла по умолчанию для экспорта – это файл регистрации, имеющий расширение .reg. Файл регистрации содержит все данные выбранного раздела и его подразделов. Например, при экспорте раздела HKCU\Network (содержащего подразделы для двух отображаемых дисков моего компьютера) получается следующий текст.
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Network] [HKEY_CURRENT_USER\Network\Y] "RemotePath"="\\\\Admin\\NET Server CR" "UserName"=dword:00000000 "ProviderName"="Microsoft Windows Network" "ProviderType"="dword:00020000" "ConnectionType"=dword:00000001 "DeferFlags"=dword:00000004 [HKEY_CURRENT_USER\Network\Z] "RemotePath"="\\\\Admin\\NETcomprefFigs" "UserName"=dword:00000000 "ProviderName"="Microsoft Windows Network" "ProviderType"="dword:00020000" "ConnectionType"=dword:00000001 "DeferFlags"=dword:00000004
Результат действия по умолчанию для .reg-файла (при двойном щелчке на этом файле) – это слияние, то есть запись содержимого этого файла в реестр (то же самое происходит при выборе File\Import в линейке меню Regedit). На самом деле распространение .reg-файла – это удобный способ внесения необходимых изменений в реестр на нескольких компьютерах (см. ниже раздел "Использование файлов регистрации").
Но если вам нужен только просмотр содержимого .reg-файла, щелкните правой кнопкой на этом файле и выберите пункт Edit, в результате чего этот файл откроется в Notepad.
Если вы внесли изменения в какой-либо раздел, но затем решили отказаться от них, то можете дважды щелкнуть на созданном .reg-файле, чтобы восстановить прежние данные в этом разделе и его подразделах. Windows попросит вас подтвердить ваши действия.
При слиянии .reg-файла с реестром все данные этого файла записываются в реестр. Но если вы добавили новый подраздел или новый элемент данных в существующий подраздел, то при слиянии новый элемент не будет удален. Windows не удаляет текущее содержимое раздела, с которым вы работаете, прежде чем выполнить слияние с данными .reg-файла. Если вы добавили что-либо в реестр и затем решили вернуться к прежним данным, то должны вручную удалить новые объекты.
Добавление элементов в реестр
Работая в Regedit, вы можете добавлять разделы или элементы данных в реестр. В большинстве случаев добавляемые пользователем элементы – это данные в каком-либо подразделе, но иногда требуется добавить новый подраздел и наполнить его элементами данных.
Для добавления подраздела сделайте следующее.
- Щелкните правой кнопкой на родительском разделе и выберите New\Key (Создать\Раздел).
- Задайте имя этого нового раздела (следуя инструкциям из документации или из службы поддержки).
Для добавления элемента данных сделайте следующее.
- Щелкните правой кнопкой на его разделе-контейнере и выберите New\<Тип-значения> (вы должны знать нужный тип значения элемента данных, который добавляете в реестр).
- Задайте имя этого элемента данных (следуя инструкциям из документации или из службы поддержки).
- Дважды щелкните на этом элементе данных и введите подходящее значение.
Удаление элементов реестра
Вы можете удалить из реестра любой раздел или элемент данных, за исключением поддеревьев. Щелкните правой кнопкой на элементе, который хотите удалить, и выберите в контекстном меню пункт Delete. Windows попросит вас подтвердить ваши действия. Удаление элемента реестра – это опасная операция, поэтому убедитесь в правильности полученных инструкций и в точности следуйте этим инструкциям.
Изменение значений элементов реестра
Значения реестра могут иметь различный формат: текстовый, шестнадцатеричный, десятичный и двоичный. Тип значения обычно (но не всегда) связан с типом элемента данных. Вы можете изменить значение элемента данных, дважды щелкнув на этом элементе в правой панели, чтобы открыть диалоговое окно его редактирования.
Использование файлов регистрации
Чаще всего .reg-файлы используются для восстановления раздела, который вы экспортировали как резервную копию, прежде чем внести в него изменения. Это достаточно несложный способ восстановления поврежденного пользователем реестра.
Приложения часто содержат .reg-файлы в своей группе файлов установки и используют их для регистрации информации конфигурирования. Любой пользователь может написать .reg-файл (этап написания не представляет сложностей; опасной частью может оказаться результат пересылки этого файла в реестр).
Вы можете использовать .reg-файлы, чтобы поручать администрирование реестров вашей системы. Ознакомившись с тем, как они действуют и что они делают, вы можете использовать их для управления пользователями, настройками ПО, настройками компьютеров или другими элементами, хранящимися в реестре.
Написание и использование .reg-файлов – это способ отправки изменений реестра на один или несколько компьютеров вашей системы вместо открытия реестра на каждом компьютере и внесения изменений интерактивным способом. Такие изменения реестра очень эффективны и обычно используются в следующих обстоятельствах.
- Вы хотите освободить определенные компьютеры и определенных пользователей от политик уровня домена, которые были к ним применены.
- Вы хотите ограничить определенных пользователей, чтобы не позволять им использовать определенные средства.
- Вы хотите предложить пользователям возможность внесения поправок в их системы.
Обладая возможностями групповых политик для своих компьютеров Windows Server 2003, вы можете также использовать .reg-файлы, чтобы вносить изменения в реестр для управления доступом и поведением пользователей на компьютерах с более ранними версиями Windows.
Если вы пишете программы, то даже в случае написания кода только для внутреннего использования (в отличие от крупных компаний по разработке ПО) вы можете использовать .reg-файлы, чтобы конфигурировать реестр для своей программы.
Архитектура .reg-файла
Файлы регистрации – это текстовые файлы с расширением .reg, использующие следующий формат.
Имя инструментального средства пустая строка [Путь в реестре] "Имя элемента данных"=Тип данных:значение "Имя элемента данных"=Тип данных:значение "Имя элемента данных"=Тип данных:значение
Имя инструментального средства. Первая строка идентифицирует средство, которое используется для выполнения этой процедуры.
- Для Windows Server 2003/2000/XP: Windows Registry Editor Version 5.00.
- Для всех версий Windows 9x/NT: REGEDIT4.
После этой строки следует пустая строка.
Путь в реестре. Путь в реестре к разделу, содержащему значения, которые вы импортируете, заключается в прямоугольные скобки, причем каждый уровень в иерархии отделяется обратным слэшем, например, [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]. У вас может быть несколько путей в файле регистрации.
Данные. Данные, которые вы пересылаете в реестр, вводятся в следующем виде:
"Имя элемента данных"=Тип элемента данных:Значение элемента данных
- Имя элемента данных заключается в кавычки.
- После элемента данных непосредственно следует знак равенства (=).
- Тип элемента данных непосредственно следует после знака равенства и заканчивается символом двоеточие (:).
- Значение элемента данных должно вводиться в подходящем формате (строчный, шестнадцатеричный, десятичный или двоичный).
Вы можете ввести несколько строк элементов данных для одного пути в реестре, например:
"GroupPolicyRefreshTime"=dword:00000014 "GroupPolicyRefreshTimeOffset"=dword:0000000f
В этих двух строках представлены шестнадцатеричные значения для значений данных: 00000014 – это шестнадцатеричный эквивалент 20, и 0000000f – это шестнадцатеричный эквивалент 15. Если вы не очень хорошо разбираетесь в шестнадцатеричных и других трудночитаемых данных, ограничьтесь при создании элементов данных в своем .reg-файле элементами данных, которые содержат строки, либо используют 0 и 1 для отключения и включения политики или какого-либо запрещения. В реестре нет булева типа данных. Но вы можете пересылать булевы данные в реестр, используя в .reg-файле элементы типа DWORD (4 байта) или STRING (2 байта), и при этом не обязательно вводить полную строку. Просто введите 1, и вы увидите в реестре значение 0x00000001(1).
Слияние файла регистрации с реестром
Файлы регистрации используются путем слияния .reg-файла с реестром, осуществляемого в Regedit. Имеется три способа пересылки содержимого этого файла в реестр.
- Дважды щелкнуть на этом файле (действие по умолчанию для .reg-файла – это слияние).
- Ввести Regedit <имя_файла>.reg в командной строке.
- Выбрать File\Import в линейке меню Regedit.
Во время пересылки .reg-файла в реестр происходят следующие действия.
- Если путь в этом файле не указан, он добавляется.
- Если какой-либо элемент данных еще не существует, он добавляется (вместе с его значением).
- Если какой-либо элемент данных уже существует, его значение заменяется значением из .reg-файла.
Файлы регистрации действуют, даже если вы применили групповую политику, отключающую средства редактирования реестра (в противном случае программы и система не могли бы вносить изменения в реестр, если это требуется).
Вы можете распространять .reg-файл через электронную почту или позволять пользователям копировать его из разделяемой точки сети во время входа (с помощью какой-либо команды в скрипте входа). Затем вы можете предоставлять каждому пользователю возможность его использования.
Пример файла регистрации
В качестве примера здесь приводится текст .reg-файла, слияние которого я выполняю на всех компьютерах моей сети. Он добавляет в контекстное меню для папок опцию, позволяющую открывать окно командной строки. Я предпочитаю открывать окно Command Prompt для конкретного места вместо использования команды CD для перехода в структуре папок.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\OpenNew] @="Command Window Here" (здесь окно командной строки) [HKEY_CLASSES_ROOT\Directory\shell\OpenNew\Command] @="cmd.exe /k cd %1"
Чтобы создать этот .reg-файл путем изменений в реестре и экспорта раздела, выполните следующие действия в Regedit.
- Выберите раздел HKEY_CLASSES_ROOT\Directory\shell.
- Создайте новый подраздел с именем OpenNew.
- Откройте элемент данных Default в правой панели и присвойте ему значение Command Window Here. (Это значение реестра представляет фразу, которая будет появляться в контекстном меню, поэтому вы можете заменить фразу нужным для вас образом.)
- Создайте новый подраздел с именем Command в подразделе OpenNew.
- Откройте элемент данных Default в подразделе Command и введите значение cmd.exe /k cd %1.
- Выделите подраздел OpenNew и выберите File\Export для создания .reg-файла, который содержит эти новые подразделы вместе с их данными.
Если на вашем компьютере несколько дисков, то вы можете добавить аналогичную команду в контекстное меню, которое появляется при щелчке правой кнопкой на каком-либо диске в Windows Explorer или в My Computer. Выполняются те же шаги, что и при создании команды для папок, со следующими изменениями.
- В качестве начальной точки используйте раздел HKEY_CLASSES_ROOT\Drive\shell.
- Для элемента данных Default в подразделе HKEY_CLASSES_ROOT\Drive\shell\OpenNew\Command введите значение cmd.exe /k.
Экспортируйте раздел HKEY_CLASSES_ROOT\Drive\shell и распространяйте этот .reg-файл всем пользователям, которые хотели бы использовать это удобное средство.
Удаление элементов реестра с помощью .reg-файла
Вы можете также использовать .reg-файл для удаления подразделов и элементов данных. Это настолько просто, что даже вызывает опасения.