Windows все Основы работы с реестром - Утилита reg.exe

Может относиться для любой версии Windows

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,069
Реакции
5,784
оглавление:
Основы работы с реестром
1)что такое реестр?
2)ситаксис,структура,назначение элементов реестра.
3)редактор реестра (regedit.exe)
4)синтаксис,структура reg-файла.
5)утилита reg.exe




утилита reg.exe





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

Что требуется?
Запустить командную строку (cmd) от имени администратора-
выберите меню "пуск" в левом нижнем углу рабочего стола-
в строке поиска введите:cmd-
по найденному правой кнопкой мыши -
"запустить от имени администратора".
Это в windows 7 и vista.
В windows ХР немного различается написание но принцип тот же.

Еще метод:
для русской версии windows

Код:
runas /user:Администратор cmd
Вводим ее в поле Выполнить (Win+R).
После откроется командная строка с привилегиями администратора. Если администраторский аккаунт называется по другому в команде, соответственно, Администратор меняется на вашего пользователя с админискими правами.

Для английской версии
Код:
runas /user:Administrator cmd

Есть и еще один способ:
Загрузить операционную систему в безопасном режиме с поддержкой командной строки.


справка: Утилита REG нужна для редактирования реестра, работая из командной строки cmd.exe, поддерживает все возможности, которые имеет программа regedit.exe. И более того- она также поддерживает несколько особенных функций. Полезна в том случае когда работа с regedit по каким либо причинам не возможна.

Например ,если ваша операционная система поражена troyan winlok(баннер).

Основной синтаксис выглядит примерно так:
Код:
reg.exe команда \\компьютер\раздел реестра параметры.

Если же вы изменяете реестр компьютера за которым сидите, то название компьютера указывать необязательно.

А,кстати!
Разделы реестра указываем по такому вот шаблону:


Ну,погнали...


Я не буду сильно оригинальничать и сразу же обращусь к справке cmd,запустив командную строку и введя команду reg /?
Тут же я увидел все команды,о доступности которых мне радостно сообщила справка консоли)))


REG <операция> [Список параметров]

<операция> [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMPARE | EXPORT | IMPORT | FLAGS ]

Код возврата: (за исключением REG COMPARE)

0 - Успешно
1 - С ошибкой


А теперь рассмотрим все это счастье более детально.

Утилита reg.exe предоставляет нам широчайшие возможности для работы с реестром.
Основной список используемых команд таков:




    • REG QUERY
    • REG ADD
    • REG DELETE
    • REG COPY
    • REG SAVE
    • REG RESTORE
    • REG LOAD
    • REG UNLOAD
    • REG COMPARE
    • REG EXPORT
    • REG IMPORT
    • REG FLAGS
Давайте попробуем научиться пользоваться ими?

REG QUERY

Как правило используется для реализации поиска по реестру.

Синтаксис команды таков:

REG QUERY имя_раздела [/v [имя_параметра] | /ve] [/s] [/f данные [/k] [/d] [/c] [/e]] [/t тип] [/z] [/se разделитель]

имя_раздела [\\компьютер\]полное_имя_раздела
компьютер - имя удаленного компьютера, по умолчанию используется текущий компьютер.
На удаленных компьютерах доступны только разделы HKLM и HKU
полное_имя_раздела - путь в форме корневой_раздел\подраздел
корневой раздел - [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел - полное имя раздела реестра в указанном корневом_разделе
Примеры:


REG QUERY HKLM\Software\Microsoft\ResKit /v Version
Отображение значения параметра реестра Version

REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
Отображение всех подразделов и их параметров в разделе реестра Setup
удаленного компьютера ABC

REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
Отображение всех подразделов и параметров со знаком "#" в качестве
разделителя для всех параметров типа REG_MULTI_SZ.

REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
Отображение раздела, параметра и данных с учетом реестра букв для точных
совпадений с "SYSTEM" типа REG_SZ из корневого раздела HKLM

REG QUERY HKCU /f 0F /d /t REG_BINARY
Отображение раздела, параметра и данных для совпадений с "0F" типа
REG_BINARY среди данных в корневом разделе HKCU

REG QUERY HKLM\SOFTWARE /ve
Отображение параметра и данных для пустого значения (по умолчанию)
в разделе HKLM\SOFTWARE



Например,давайте проверим,все ли вы удалили при написании твика удаления пункта контексного меню "моя первая фигня..."
(мы его создавали в прошлой теме)
Вводим
Код:
reg query HKEY_CLASSES_ROOT\DesktopBackground\Shell
Вот что я увидел в результате-

Код:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Display]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Gadgets]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalize]
То есть все что нужно мой твик удалил.
А ваш?


REG ADD

Эта команда используется для добавления разделов реестра,параметров и значений параметров.

Синтаксис команды:

REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>] [/d <данные>] [/f]

имя_раздела [\\<компьютер>\]<раздел>

Компьютер - имя удаленного компьютера. Если оно опущено, то по умолчанию используется локальный компьютер. На удаленном компьютере доступны только корневые разделы HKLM и HKU.

Раздел - КОРЕНЬ\<подраздел>

КОРЕНЬ - [ HKLM | HKCU | HKCR | HKU | HKCC ]

Подраздел - полное имя подраздела реестра в указанном корневом разделе.

Примеры:


REG ADD \\ABC\HKLM\Software\MyCo
Добавление раздела HKLM\Software\MyCo на удаленном компьютере ABC

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
Добавление параметра (имя: Data, тип: REG_BINARY, данные: fe340ead)

REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
Добавление параметра (имя: MRU, тип: REG_MUTLI_SZ, данные: fax\0mail\0\0)

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
Добавление параметра (имя: Path, тип: REG_EXPAND_SZ, данные: %systemroot%)
Примечание: в расширяемой строке используйте знак вставки ( ^ ).

REG DELETE

Эта команда используется для удаления разделов,параметров и значений параметров реестра.

Синтаксис команды следующий:

REG DELETE <имя_раздела> [/v <имя_параметра> | /ve | /va] [/f]

имя_раздела [\\<компьютер>\]<раздел>
компьютер Имя удаленного компьютера, если оно опущено, по умолчанию используется локальный компьютер. На удаленном компьютере можно использовать только корневые разделы HKLM и HKU.
раздел КОРЕНЬ\<подраздел>
КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов.

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

Примеры:


REG DELETE HKLM\Software\MyCo\MyApp\Timeout
Удаление раздела реестра Timeout и всех его подразделов и параметров.

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
Удаление параметра реестра MTU в разделе MyCo на компьютере ZODIAC.


REG COPY

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

Синтаксис команды следующий:

REG COPY <раздел1> <раздел2> [/s] [/f]

раздел Имя раздела в формате: [\\Компьютер\]Путь
компьютер Имя удаленного компьютера: если оно опущено, то по умолчаyю считается равным имени локального компьютера. Для удаленных компьютеров доступны только HKLM и HKU.
путь Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел.
КОРЕНЬ Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ].
подраздел Полный путь к разделу реестра в выбранном корневом разделе.

Примеры:


REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
Копирует все подразделы и параметры раздела MyApp в раздел SaveMyApp

REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
Копирует все параметры раздела MyCo с компьютера ZODIAC в раздел MyCo1 на локальном компьютере


REG SAVE

Эта команда необходима для того,что бы сохранить разделы реестра в hiv файл.

Синтаксис команды:

REG SAVE <имя_раздела> <имя_файла> [/y]

имя_раздела КОРЕНЬ\<подраздел>
КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел Полное имя подраздела реестра в одном из выбранных корневых файлов.

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


REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
Сохранение раздела MyApp в файл AppBkUp.hiv текущей папки


REG RESTORE

Эта команда поможет восстановить раздел реестра из файла .hiv

Синтаксис команды:

REG RESTORE <имя_раздела> <имя_файла>

имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер)
КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел Полное имя подраздела реестра, в который восстанавливается файл раздела.При этом происходит замена существующих параметров разделов и подразделов.

имя_файла Имя файла раздела, подлежащего восстановлению. Чтобы создать данный файл, необходимо использовать REG SAVE.

Примеры:
REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv
Восстановление файла NTRKBkUp.hiv заменой раздела ResKit


REG LOAD

Эта команда поможет загрузить в раздел реестра данные из файлов .hiv

REG LOAD <имя_раздела> <имя_файла>

имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер)
КОРЕНЬ [ HKLM | HKU]
подраздел Имя подраздела реестра, в который загружается файл.Должно происходить создание нового раздела,если такое имя отсутствует.
имя_файла Имя файла, подлежащего загрузке.
Чтобы создать данный файл, необходимо использовать REG SAVE.

Примеры:

REG LOAD HKLM\TempHive TempHive.hiv
Загрузка файла TempHive.hiv в раздел HKLM\TempHive

REG UNLOAD

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

REG UNLOAD <имя_раздела>

имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер)
КОРЕНЬ [ HKLM | HKU]
подраздел Имя подраздела куста, в который выгружается файл.

Примеры:

REG UNLOAD HKLM\TempHive
Выгрузка куста реестра TempHive в HKLM


REG COMPARE

Эта замечательная команда позволяет выполнить сравнение данных в реестре.

Синтаксис команды:


REG COMPARE <имя_раздела_1> <имя_раздела_2> [/v <имя_параметра> | /ve] [вывод] [/s]

имя_раздела [\\<компьютер>\]<раздел>
компьютер Имя удаленного компьютера, если оно опущено, по умолчанию используется локальный компьютер. На удаленном компьютере можно использовать только корневые разделы HKLM и HKU.
имя_раздела КОРЕНЬ\<подраздел>
Если имя раздела 1 не указано, то имя раздела 2 равно имени раздела 1.
КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов.

имя_параметра Имя параметра в выбранном разделе, подлежащее сравнению.
Если опущено, то сравниваются все параметры в разделе.

Код возврата:


0 - Успешно, сравниваемые данные идентичны
1 - При обработке произошла ошибка
2 - Успешно, сравниваемые данные отличаются

Примечание:
Символы в начале каждой строки читаются следующим образом:
= данные FullKey1 равны данным FullKey2
< относится к данным FullKey1, если они отличаются от данных FullKey2
> относится к данным FullKey2, если они отличаются от данных FullKey1

Пример:
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
Сравнивает все значения в разделе MyApp со значениями раздела SaveMyApp

REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
Сравнивает значения Version в разделах MyCo и MyCo1

REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s
Сравнивает все подразделы и значения параметров в разделе
HKLM\Software\MyCo реестра на компьютере ZODIAC с аналогичным разделом
на текущем компьютере


REG EXPORT

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

Синтаксис команды:
REG EXPORT <имя_раздела> <имя_файла> [/y]

имя_раздела КОРЕНЬ\<подраздел> (только локальный компьютер).
КОРЕНЬ [ HKLM | HKCU | HKCR | HKU | HKCC ]
подраздел Полное имя подраздела реестра в одном из выбранных корневых разделов.

имя_файла Имя диска, на который экспортируется файл

Параметр /y в конце команды позволяет выполнение замены существующего файла без запроса подтверждения.

Примеры:

REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
Экспорт всех подразделов и параметров раздела MyApp в файл AppBkUp.reg

REG IMPORT

С помощью этой команды выполняется импорт файлов реестра.

Синтаксис команды:
REG IMPORT <имя_файла>

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

Примеры:

REG IMPORT AppBkUp.reg
Импорт записей реестра из файла AppBkUp.reg


REG FLAGS

Эта команда предназначена для работы с флагами реестра.

Синтаксис команды:

REG FLAGS имя_раздела [QUERY | SET [DONT_VIRTUALIZE] [DONT_SILENT_FAIL] [RECURSE_FLAG]]

Имя_раздела "HKLM\Software"[\подраздел] (ограничено этими разделами только на локальном компьютере).
Подраздел Полное имя раздела реестра в узле HKLM\Software.
DONT_VIRTUALIZE DONT_SILENT_FAIL RECURSE_FLAG
Используется вместе с параметром SET; флаги, указанные в командной строке, будут установлены, не указанные - удалены.

Примеры:

REG FLAGS HKLM\Software\MyCo\MyApp QUERY
Отображает текущие флаги раздела MyApp.

REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s
Устанавливает флаг DONT_VIRTUALIZE (и удаляет флаги DONT_SILENT_FAIL и
RECURSE_FLAG) для раздела MyApp и всех его подразделов





Виртуализация каталогов реестра с помощью утилиты REG
_________________________________________________________


Важно!!!

Операционная система Windows 7 с включенным механизмом UAC поддерживает новую возможность, называемую виртуализацией каталогов и разделов реестра. Она позволяет решить проблему установки приложений учетными записями пользователей, которые не имеют административных прав (точнее, не имеют прав на модификацию определенных разделов реестра и каталогов).

Виртуализация реестра.
Если механизм виртуализации включен, то при попытке какой-либо программы модифицировать раздел реестра, находящийся в разделе HKLM\SOFTWARE, доступ к которой запрещен текущему пользователю, операционная система перенаправляет запрос программы в раздел реестра HKCU\Software\Classes\VirtualStore\MACHINE и выполняет модификацию в нем.

Например, если программа пытается записать данные в раздел: HKLM\SOFTWARE\program_folder,то операционная система перенаправляет ее в раздел:
HKCU\Software\Classes\VirtualStore\MACHINE\Software\program_folder.

При последующих запусках программы она будет работать с данными, хранящимися не в разделе реестра, доступ к которому пользователю запрещен, а в разделе реестра
HKCU\Software\Classes\VirtualStore\MACHINE.

Виртуализация каталогов.
Аналогично механизм виртуализации работает и с папками. Только в этом случае операционная система перенаправляет запрос программы в каталог вида:
%userprofile%\AppData\Local\VirtualStore.

Виртуализация каталогов действует для следующих папок операционной системы: %ProgramFiles%, %Windir%; %Windir%\system32.

Отключение механизма виртуализации.
_________________________________________________


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

Чтобы запретить механизм виртуализации, нужно запустить консоль gpedit.msc, перейти к разделу:
Конфигурация компьютера/Конфигурация Windows/Параметры безопасности/Локальные политики/Параметры безопасности
и в контекстном меню политики
Контроль учетных записей: при сбоях записи в файл или реестр виртуализация в размещение пользователя выбрать команду Свойства. После этого в появившемся окне нужно установить переключатель в положение Отключен.

Чтобы отключить механизм виртуализации при помощи реестра, нужно параметру REG_DWORD-типа EnableVirtualization, расположенному в разделе реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System, присвоить значение 0.



Использование нескольких команд
_______________________________________

Можно использовать одновременно несколько команд, используя между ними специальный разделитель - символы &&, при этом все сочетание нескольких команд должно быть заключено в кавычки, например, "команда&&команда&& команда".

Применение команд утилиты REG.EXE к
разделам и параметрам реестра имеющим пробелы

________________________________________________

Наверняка вы столкнулись с такой проблемкой:
Код:
REG QUERY HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon /s
И получаем такую вот дулю:
Код:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\System32>REG QUERY HKCU\Software\Microsoft\Windows NT\CurrentVersion\
Winlogon /s
Ошибка. Неверный синтаксис.
Введите "REG QUERY /?" для получения справки по использованию.

C:\Windows\System32>
Чтобы исправить ситуацию,заключаем имя раздела в кавычки.
Код:
REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion
\Winlogon" /s
И вот уже результат веселее:
Код:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\System32>REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion
\Winlogon" /s

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
    ExcludeProfileDirs    REG_SZ    AppData\Local;AppData\LocalLow;$Recycle.Bin
    BuildNumber    REG_DWORD    0x1db1
    FirstLogon    REG_DWORD    0x0
    ParseAutoexec    REG_SZ    1


C:\Windows\System32>


Если что то не понятно или нужна справка под рукой
_______________________________________________________


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

Если нужна справка, а статьи под рукой нет-воспользуйтесь справкой cmd (команда_ /? )

Справка по утилите reg.exe (команда: reg.exe /?)
Код:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\System32>reg.exe /?

REG <операция> [Список параметров]

  <операция> [ QUERY   | ADD    | DELETE  | COPY    |
                   SAVE    | LOAD   | UNLOAD  | RESTORE |
                   COMPARE | EXPORT | IMPORT  | FLAGS ]

Код возврата: (за исключением REG COMPARE)

  0 - Успешно
  1 - С ошибкой

Для получения справки по определенной операции введите:

  REG <операция> /?

Примеры:

  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?
  REG FLAGS /?

C:\Windows\System32>
А вот,например справка по команде REG QUERY.

Водим такую команду:
REG QUERY /?

Получаем вот такой подробный список:
Код:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Windows\System32>REG QUERY /?

REG QUERY имя_раздела [/v [имя_параметра] | /ve] [/s]
          [/f данные [/k] [/d] [/c] [/e]] [/t тип] [/z] [/se разделитель]

  имя_раздела [\\компьютер\]полное_имя_раздела
              компьютер          - имя удаленного компьютера, по умолчанию
                                   используется текущий компьютер.
                                   На удаленных компьютерах доступны только
                                   разделы HKLM и HKU
              полное_имя_раздела - путь в форме корневой_раздел\подраздел
                 корневой раздел - [ HKLM | HKCU | HKCR | HKU | HKCC ]
                 подраздел       - полное имя раздела реестра в указанном
                                   корневом_разделе

  /v          Запросы требуемых параметров в указанном разделе реестра.
              Если не указано, запрашиваются все параметры раздела.

              Аргумент этого параметра может быть необязательным, только если
              задан параметр /f. Это указывает на поиск только в именах
              параметров реестра.

  /ve         Запросы параметра по умолчанию или с пустым именем (по
              умолчанию).

  /s          Запрос всех вложенных подразделов и их параметров (аналогично
              команде dir /s).

  /se         Указание разделителя (длиной в 1 знак) в строке данных для
              REG_MULTI_SZ. По умолчанию в качестве разделителя используется
              "\0".

  /f          Данные или шаблон для поиска.
              Если строка содержит пробелы, заключайте ее в кавычки.
              Значение по умолчанию: "*".

  /k          Указывает на поиск только в именах разделов.

  /d          Указывает на поиск только в данных.

  /c          Указывает на учет регистра знаков при поиске.
                По умолчанию при поиске регистр знаков не учитывается.

  /e          Указывает на возврат только точных совпадений.
                По умолчанию возвращаются все совпадения.

  /t          Указывает тип данных параметра реестра.
              Допустимые типы:
                REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,
                REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE
              По умолчанию будут использоваться все типы.

  /z          Подробности: отображение числового кода типа имени значения.

Примеры:

  REG QUERY HKLM\Software\Microsoft\ResKit /v Version
    Отображение значения параметра реестра Version

  REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
    Отображение всех подразделов и их параметров в разделе реестра Setup
    удаленного компьютера ABC

  REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
    Отображение всех подразделов и параметров со знаком "#" в качестве
     разделителя для всех параметров типа REG_MULTI_SZ.

  REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
    Отображение раздела, параметра и данных с учетом реестра букв для точных
    совпадений с "SYSTEM" типа REG_SZ из корневого раздела HKLM

  REG QUERY HKCU /f 0F /d /t REG_BINARY
    Отображение раздела, параметра и данных для совпадений с "0F" типа
    REG_BINARY среди данных в корневом разделе HKCU

  REG QUERY HKLM\SOFTWARE /ve
    Отображение параметра и данных для пустого значения (по умолчанию)
    в разделе HKLM\SOFTWARE

C:\Windows\System32>


Использование утилиты reg.exe в cmd скриптах


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


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

Можно сделать это вручную через редактор реестра.
Можно использовать несколько команд reg.exe по очереди.
Но в данном случае нам пригодится такой скрипт:

Код:
echo off &Chcp 1251 >nul
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:
if not exist %cdrom%\win51.* (chcp 1251 >nul& msg * Вам необходимо вставить диск с вашей копией Windows XP и запустить файл заново,либо смонтировать образ диска в виртуальный привод!& chcp 866>nul&exit) else goto koz

:koz


chcp 1251 >nul
echo Сохраняю резервную копию реестра...
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" %systemdrive%\install.reg
echo Проверяю путь к диску...
echo Устанавливаю значения реестра...
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v ServicePackSourcePath /t reg_sz /d %cdrom%\ /f
echo Устанавливаю значения реестра...
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v "Installation Sources" /t reg_sz /d %cdrom%\ /f
echo Устанавливаю значения реестра...
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v SourcePath /t reg_sz /d %cdrom%\ /f


msg * Дождитесь окончания проверки,потом нажмите любую клавишу(кликнув мышью по окну консоли сделайте его активным).Если проверка остановилась на одном месте более 15 минут -сообщите хэлперу.
chcp 866 >nul
ping 127.0.0.1 -n 3 >nul
sfc /scannow
pause

reg import %systemdrive%\install.reg
del /q %systemdrive%\install.reg
exit

Утилиту reg.exe можно с пользой использовать при написании разного рода скриптов.

Заострять внимание на том,как научиться писать скрипты самостоятельно в этой теме я не стану,могу лишь порекомендовать команду help для изучения.


Если в процессе чтения или при неудачных попытках применить полученную информацию в теме вы столкнулись с какими нибудь сложностями -то можете задавать свои вопросы в этом разделе.
 
Последнее редактирование модератором:
Последнее редактирование модератором:
подскажите , что делает команда reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f, вернее, подчёркнутые буквы и цифры?
 
Справка есть и в этой теме.
Код:
 Команда записи в реестр - создание
reg add

Указан раздел. В кавычках - что бы правильно отработаны были имена разделов с пробелами
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

/v   Имя параметра, добавляемого в выбранный раздел.
/v FeatureSettingsOverride

/t   Тип данных
       [ REG_SZ    | REG_MULTI_SZ | REG_EXPAND_SZ |
         REG_DWORD | REG_QWORD    | REG_BINARY    | REG_NONE ]
        Если не указывается, то по умолчанию используется REG_SZ.
/t REG_DWORD

/d       Значение, присваиваемое добавляемому параметру реестра.
/d 0

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

А суть команды, судя по всему, это частичное включение фикса CVE-2017-5715 и CVE-2017-5754 (Spectre и Meltdown)
 
Последнее редактирование:
Назад
Сверху Снизу