Опубликован: 15.10.2008 | Доступ: свободный | Студентов: 9933 / 2545 | Оценка: 4.37 / 4.14 | Длительность: 27:52:00
Лекция 4:

Реестр Windows Server 2003

Reg.exe

Reg.exe – это надежное и многофункциональное средство командной строки, которое вы можете использовать для управления записями реестра. Как и для команды net, для reg.exe требуется вторая команда, например, reg add. Эта программа позволяет работать как с локальными, так и с удаленными реестрами. Но если вы применяете это средство к удаленному реестру, то можете работать только с HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER.

Общие указания по работе с Reg.exe

Существует несколько общих правил и рекомендаций по работе с командами reg, и они приводятся здесь, чтобы не повторять их для каждой команды.

При вводе имени раздела или подраздела вы должны ввести полный путь к этому разделу, начиная с поддерева. Однако вы можете использовать следующие сокращения для имен поддеревьев.

Сокращение Поддерево
HKCR HKEY_CLASSES_ROOT
HKLM HKEY_LOCAL_MACHINE
HKCU HKEY_CURRENT_USER
HKCC HKEY_CURRENT_CONFIGURATION

Кроме того, вам будут полезны следующие сведения.

  • Указываемый путь не зависит от используемого регистра букв.
  • Имя нового раздела зависит от регистра букв.
  • Имена разделов, содержащие пробелы, должны быть заключены в кавычки.
  • Регистр букв не имеет значения для существующих элементов данных.
  • Имя нового элемента данных и его значение зависят от регистра букв.

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

Reg Add

Команда reg add используется для добавления в реестр раздела и/или элемента данных. Она имеет следующий синтаксис:

reg add [\\Машина\]Имя_раздела[/v Имя_значения\/ve][/t Тип]
        [/s Разделитель][/d Данные][/f]

где

\\Машина – это имя удаленного компьютера. Пропустите этот параметр, если вы работаете на локальной машине. Имя_раздела – это имя раздела, где будет помещена новая запись, или имя нового раздела, который вы добавляете в реестр. Если вы добавляете раздел, то можете не указывать все остальные параметры (см. ниже). Например, если у вас имеется раздел с именем HKEY_CURRENT_USER\Software\CompanyDatabase и вы хотите добавить подраздел с именем ColorScheme, введите следующую команду.

reg add HKCU\Software\ CompanyDatabase\ColorScheme

Система возвратит сообщение "The operation completed successfully" (Операция успешно завершена).

Примечание. Если вы используете пробел в имени, не используя для этого имени кавычек, то система предполагает, что любой текст после первого слова является параметром, и выводит сообщение об ошибке: "Too many command-line parameters" (Слишком много параметров командной строки).

Если вы вводите новый элемент данных, то используются следующие параметры. Для одновременного ввода нового раздела и нового элемента данных просто введите имя нового раздела в конце пути.

/v Имя_значения – это имя нового элемента данных. Если это имя содержит пробелы, заключите его в кавычки.

/ve указывает пустое значение.

/t Тип указывает тип данных для нового элемента данных. Если пропустить этот параметр, то по умолчанию задается тип данных REG_SZ.

/s Разделитель указывает символ, который вы хотите использовать как разделитель в случае нескольких строк данных (для типов данных REG_MULTI_SZ ).

/d Данные – это данные, которые вы хотите присвоить добавляемому элементу данных.

/f вызывает перезапись значения существующей записи.

Reg Delete

Команда reg delete используется для удаления подразделов и/или элементов данных из реестра. Она имеет следующий синтаксис.

reg delete [\\Машина\]Имя_раздела[/v Имя_значения][/va][/f]

где

\\Машина – это имя удаленного компьютера. Пропустите этот параметр, если вы работаете в локальном реестре.

Имя_раздела – это подраздел для данной записи (или подраздел, который вы хотите удалить). Указывайте полный путь.

/v Имя_значенияудаление элемента данных с этим именем. Если это имя содержит пробелы, заключите его в кавычки.

/va – удаление всех элементов данных в указанном подразделе.

/ve – удаление пустого элемента данных.

/f вызывает операцию удаления без подтверждения пользователем.

Reg Copy

Команда reg copy используется для копирования записи реестра в новое место в локальном или удаленном реестре. Она имеет следующий синтаксис.

reg copy [\\Машина\]Исходный_раздел[\\Машина\]Целевой_раздел[/s][/f]

где

\\Машина\]Исходный_раздел – это имя компьютера и путь в реестре для исходного компьютера. Пропустите параметр "Машина", если это локальный компьютер.

\\Машина\]Целевой_раздел – это имя компьютера и путь в реестре для целевого компьютера. Пропустите параметр "Машина", если это локальный компьютер.

/s – копирование всех подразделов, находящихся в последнем разделе указанного пути, вместе с элементами данных, содержащимися в этих подразделах.

/f вызывает копирование без запроса подтверждения пользователем.

Reg Compare

Команда reg compare используется для сравнения одной записи реестра с другой записью реестра на локальном или удаленном компьютере. Она имеет следующий синтаксис.

reg compare [\\Машина\]Имя_раздела_1[\\Машина\]Имя_раздела_2
            [/v Имя_значения][/s][/f] [Output]

где

Машина – это имя компьютера. Пропустите этот параметр для локального компьютера.

Имя_раздела_1, Имя_раздела_2 – указывают полный путь в реестре к первому и второму подразделам.

/v Имя_значения – сравнение значений элемента данных, указанного параметром Имя_значения (имена элементов данных, содержащих пробелы, заключайте в кавычки).

Параметр Output принимает одно из следующих значений.

  • /oa – вывод всех отличий и совпадений.
  • /od – вывод только отличий.
  • /os – вывод только совпадений.
  • /on – не выводится никаких результатов.

Система отвечает одним из следующих возвращаемых кодов.

  • 0 Сравнение прошло успешно, и нет никаких отличий.
  • 1 Сравнение провести не удалось.
  • 2 Сравнение прошло успешно, и есть отличия.

Reg Export

Команда reg export используется для экспорта записи реестра в файл. Эта команда дает такой же результат, как и команда File\Export Registry File при работе в Regedit. Эта команда работает только с локальным реестром. Она имеет следующий синтаксис.

reg export Имя_раздела Имя_файла [/y]

где

Имя_разделаполный путь в реестре к разделу, который вы хотите экспортировать.

Имя_файла – имя .reg-файла, в который вы хотите экспортировать раздел.

/y – перезапись существующего файла с именем Имя_файла без запроса подтверждения.

Reg Import

Команда reg import используется для импорта записи реестра из .reg-файла. Она имеет следующий синтаксис.

reg import Имя_файла

где

Имя_файла – имя .reg-файла, который вы хотите импортировать.

Эта команда дает такой же результат, как и команда File\Import Registry File при работе в Regedit или двойной щелчок на .reg-файле.

Reg Save

Команда reg save используется для сохранения раздела в файле улья. Она имеет следующий синтаксис.

reg save \\Машина Имя_раздела Имя_файла [/y]

где

\\Машина – это имя удаленного компьютера (пропустите этот параметр для локального компьютера).

Имя_разделаполный путь в реестре к разделу.

Имя_файла – целевой файл (с расширением .hiv).

/y – перезапись существующего файла с именем Имя_файла без запроса подтверждения перезаписи.

Reg Restore

Команда reg restore используется для восстановления какого-либо раздела из HIV-файла, созданного командой reg save. Она имеет следующий синтаксис.

reg restore [\\Машина] Имя_раздела Имя_файла

где

\\Машина – это имя удаленного компьютера (пропустите этот параметр для локального компьютера).

Имя_разделаполный путь в реестре к целевому разделу.

Имя_файла – имя сохраненного ранее файла, из которого вы хотите теперь выполнить восстановление

Reg Load

Команда reg load используется для загрузки файла улья (созданного с помощью команды reg save) в другую часть реестра. Это полезно при поиске проблемных записей реестра. Она имеет следующий синтаксис.

где

\\Машина – это имя удаленного компьютера (пропустите этот параметр для локального компьютера).

Имя_разделаполный путь к месту в реестре, которое вы хотите использовать для размещения данного улья.

Имя_файла – имя файла улья.

Примечание. Этот раздел не является постоянным, и он исчезает, когда вы перезагружаете компьютер.

Reg Unload

Команда reg unload используется для удаления улья, который вы загрузили с помощью команды reg load. Она имеет следующий синтаксис.

reg unload \\Машина Имя_раздела

где

\\Машина – это имя удаленного компьютера (пропустите этот параметр для локального компьютера).

Имя_разделаполный путь к месту в реестре, где содержится загруженный вами файл.

Reg Query

Команда reg query используется для получения информации о записи или нескольких записях в разделе или подразделе. Она имеет следующий синтаксис.

reg query \\Машина Имя_раздела [{/v Имя_значения\/ve}][/s]
          [/se Разделитель][/f Данные] [{/k\/d}][/c][/e][/t Тип][/z]

где

Машина – это имя удаленного компьютера (пропустите этот параметр для локального компьютера).

Имя_разделаполный путь к разделу, который вы запрашиваете.

/v Имя_значения – имя запрашиваемого элемента данных реестра. Если этот параметр опущен, выдаются все элементы данных из раздела Имя_раздела. Имя_значения не является обязательным параметром, если используется параметр /f.

/ve – запрашиваются пустые элементы данных.

/s – запрашиваются все подразделы и элементы данных.

/se Разделитель указывает разделитель значений, который вы хотите искать в элементах данных типа REG_MULTI_SZ. Если Разделитель не указан, то система использует \0.

RegMon

Один мой знакомый по журналу, для которого я пишу статьи (Windows & .Net Magazine), является очень хорошим специалистом по операционным системам. Я уже давно (начиная с Windows NT) использую написанную им утилиту под названием RegMon, которая позволяет мне следить за доступом приложений к реестру в реальном масштабе времени.

Вы можете задавать фильтры, чтобы ограничивать типы информации, о которой сообщает эта программа, выделять нужную запись и переходить непосредственно к подразделу реестра, на которую ссылается эта запись. Это отличный способ отслеживания элементов реестра, которые добавляются во время установки ПО. Запустите regmon.exe, прежде чем программа установки начнет копировать файлы и выполнять запись в разделы реестра, и вы узнаете все, что происходит в реестре. Сохраните результаты, и затем проверьте эти записи после того, как удалите (деинсталлируете) соответствующее ПО. Поскольку большинство процедур деинсталляции не могут целиком удалить информацию реестра, которая была записана во время установки, то вы можете очистить свой реестр вручную.

RegMon распространяется бесплатно, и вы можете загрузить ее из http://www.sysinternals.com. В дополнение к этой утилите вы найдете много полезных утилит на данном веб-сайте.