Опубликован: 15.10.2008 | Уровень: специалист | Доступ: платный
Лекция 4:

Реестр 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.

Примечание. Файлы регистрации – это текстовые файлы Unicode.

Если вы внесли изменения в какой-либо раздел, но затем решили отказаться от них, то можете дважды щелкнуть на созданном .reg-файле, чтобы восстановить прежние данные в этом разделе и его подразделах. Windows попросит вас подтвердить ваши действия.

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

Примечание. Вы можете также сохранять файлы реестра в файлах другого типа: для реестров в-9x/NT в виде двоичных файлов ульев или в виде текстовых файлов. Кроме того, вы можете загружать или удалять (unload) файлы ульев. Подобные подробности выходят за рамки изложения данного курса, но вы можете подробнее ознакомиться с реестром в моей книге "Admin911: Windows 2000 Registry", изданной в McGraw-Hill/ Os-orne (2000). Почти все в этой книге применимо также к Windows Server 2003.

Добавление элементов в реестр

Работая в Regedit, вы можете добавлять разделы или элементы данных в реестр. В большинстве случаев добавляемые пользователем элементы – это данные в каком-либо подразделе, но иногда требуется добавить новый подраздел и наполнить его элементами данных.

Для добавления подраздела сделайте следующее.

  1. Щелкните правой кнопкой на родительском разделе и выберите New\Key (Создать\Раздел).
  2. Задайте имя этого нового раздела (следуя инструкциям из документации или из службы поддержки).

Для добавления элемента данных сделайте следующее.

  1. Щелкните правой кнопкой на его разделе-контейнере и выберите New\<Тип-значения> (вы должны знать нужный тип значения элемента данных, который добавляете в реестр).

  2. Задайте имя этого элемента данных (следуя инструкциям из документации или из службы поддержки).
  3. Дважды щелкните на этом элементе данных и введите подходящее значение.

Удаление элементов реестра

Вы можете удалить из реестра любой раздел или элемент данных, за исключением поддеревьев. Щелкните правой кнопкой на элементе, который хотите удалить, и выберите в контекстном меню пункт 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]. У вас может быть несколько путей в файле регистрации.

Примечание. Если нижний уровень иерархии, которую вы вводите в .reg-файле, отсутствует в текущем реестре, то вы создаете новый подраздел. Содержимое файлов регистрации пересылается в реестр в порядке его ввода: если вы создаете новый раздел и подраздел в этом разделе, вводите строки в соответствующем порядке.

Данные. Данные, которые вы пересылаете в реестр, вводятся в следующем виде:

"Имя элемента данных"=Тип элемента данных:Значение элемента данных
  • Имя элемента данных заключается в кавычки.
  • После элемента данных непосредственно следует знак равенства (=).
  • Тип элемента данных непосредственно следует после знака равенства и заканчивается символом двоеточие (:).
  • Значение элемента данных должно вводиться в подходящем формате (строчный, шестнадцатеричный, десятичный или двоичный).

Вы можете ввести несколько строк элементов данных для одного пути в реестре, например:

"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-файлов с реестром без вмешательства пользователя, используйте команду Regedit со следующим синтаксисом: Regedit /s <имя_файла>.reg.

Во время пересылки .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.

  1. Выберите раздел HKEY_CLASSES_ROOT\Directory\shell.
  2. Создайте новый подраздел с именем OpenNew.
  3. Откройте элемент данных Default в правой панели и присвойте ему значение Command Window Here. (Это значение реестра представляет фразу, которая будет появляться в контекстном меню, поэтому вы можете заменить фразу нужным для вас образом.)
  4. Создайте новый подраздел с именем Command в подразделе OpenNew.
  5. Откройте элемент данных Default в подразделе Command и введите значение cmd.exe /k cd %1.
  6. Выделите подраздел 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-файл для удаления подразделов и элементов данных. Это настолько просто, что даже вызывает опасения.

  • Чтобы удалить подраздел, введите знак "минус" в начале имени этого подраздела.
  • Чтобы удалить отдельный элемент данных, введите знак "минус" вместо его значения ("Имя_элемента_данных=-").
Araz Heyderov
Araz Heyderov
Россия
iketommoe ike
iketommoe ike
Тайвань (Китай)