Опубликован: 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-файл для удаления подразделов и элементов данных. Это настолько просто, что даже вызывает опасения.

  • Чтобы удалить подраздел, введите знак "минус" в начале имени этого подраздела.
  • Чтобы удалить отдельный элемент данных, введите знак "минус" вместо его значения ("Имя_элемента_данных=-").
Шушана Бабаджанян
Шушана Бабаджанян
Для использования Remote Assistance необходимо, чтобы компьютеры
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Арцун Акопян
Арцун Акопян
Россия, Кисловодск