Добавить в реестр без подтверждения

Пишите нам!
Архитектурная мастерская.
Продвижение сайтов от optimism.ru

Page generation time: 0.1624s (PHP: 18% – SQL: 82%) – SQL queries: 37 – GZIP disabled – Debug off

Как изменить значение параметра в реестре из командной строки


Добавить в реестр без подтверждения

Иногда возникает необходимость изменить какой-либо параметр в реестре с помощью командой страки или при выполнении пакетного (bat) файла. О том, как это сделать и будет рассказано в этой статье.

Описание

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

Как изменить значение параметра в реестре

Предположим, что в разделе HKCUSoftwareWindowsTest существует параметр с именем Path, типом данных REG_EXPAND_SZ и значением %systemroot%. Нам нужно изменить значение с %systemroot% на %temp%. Для этого используйте следующую команду:

REG ADD HKCUSoftwareWindowsTest /v Path /t REG_EXPAND_SZ /d %”temp”%

Таким образом, мы заменим значение параметра Path с одного на другое.
Обратите внимание на то, что команда ожидает от пользователя подтверждения. Чтобы отключить это подтверждение добавьте в указанную выше команду /f

Т.е команда принимает следующий вид:

REG ADD HKCUSoftwareWindowsTest /v Path /t REG_EXPAND_SZ /d %”temp”% /f

Есть batch-скрипт, который выполняет некие действия с файлами и каталогами, попутно запуская несколько экзешников с определенными параметрами. Все работает, но каждый раз при вызове экзешника всплывает окно UAC. В результате теряется весь смысл автоматизации: я вынужден сидеть и прожимать “Да” в окошках UAC, вместо того, чтобы пойти пить чай, например. Есть ли способ запустить программу через скрипт сразу с нужными правами? Пробовал запускать сам скрипт от имени администратора, но он при этом перестает корректно работать.

задан 28 сен 2020 в 23:21

Существует много различных вариантов запуска приложения без подтверждения UAC, самое простое – это можно отключить UAC полностью, что крайне не рекомендуется.
Так же можно добавить в реестр запись, чтобы запускалась определённая программа с повышенными правами без запроса UAC:
Создайте файл с любым именем, расширение файла .reg (file1.reg), поместите в файла информацию, которую нужно внести в реестр:

Обязательно замените путь к файлу на свой скрипт.
Выполните скрипт один раз от имени администратора.
Данный скрипт будет запускаться без подтверждение UAC только в случае, если он будет находится по указаному пути, который вы внесли в реестр.

ответ дан 28 сен 2020 в 23:59

Бывает так, что Вам нужно изменить некий параметр в реестре на компьютерах в сети. Естественно, чем больше у Вас компьютеров, тем утомительнее это делать вручную. В данном случае процесс можно автоматизировать созданием bat-файла, который и внесет все необходимые изменения на компьютеры сети. Далее этот файл можно распространить посредством групповых политик, специального ПО вроде Kaspersky Security Center или просто прописать в самом файле имена компьютеров и запустить со своей машины.

В общем виде команда reg add выглядит следующим образом:

Разберем её синтаксис подробнее. Для лучшего понимания взглянем на пример записи в реестре:

:/>  ЦИФРЫ матрицы командной строки


Добавить в реестр без подтверждения

Если запись будет добавляться в реестр другого компьютера, то перед именем раздела необходимо прописать имя компьютера, вот так: \имя_компьютераимя_раздела. Таким образом, Вы сразу можете прописать в bat-файле имена компьютеров и запустить его один раз у себя. Естественно, у Вас должны быть соответствующие права в домене.

/v имя записи. На скриншоте таких записей несколько. Например, PluginsCleaned.

/ve задаёт нулевое значение для записи, добавляемой в реестр. Не обязательно.

/t тип данных — записи реестра могут принимать один из следующих типов данных:

REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DESCRIPTOR
REG_EXPAND_SZ

/s разделитель — задает символы для разделения копий данных. Используется при типе данных REG_MULTI_SZ в случае размещения более одной записи в списке. Если разделитель не задан, то используется разделитель , заданный по умолчанию.

/d значение — значение добавляемой записи реестра.

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

Получить подробную справку в командной строке можно, введя

reg add /?

Возвращаясь к нашему примеру. Я ввел в командную строку:

В данном случае кавычки нужны, чтобы командная строка нормально восприняла пробелы в имени раздела. Как видите, я создал параметр Primer с типом REG_DWORD и значением 0.

Вот результат данной команды:


Добавить в реестр без подтверждения

Результат работы команды Reg Add

Вот, пожалуй, и всё, что нужно знать о добавлении записей в реестр через командную строку Windows. Помните, что редактирование реестра требует осторожности, но, в целом, он не так страшен, как его описывают. 🙂

Process regeditProcess = Process. Start(“key.reg”, “/S /q”); // not working
regeditProcess. WaitForExit();

41 gold badges252 silver badges292 bronze badges

asked Jan 31, 2010 at 11:09

Send the file as a parameter to regedit.exe:

Process regeditProcess = Process. Start(“regedit.exe”, “/s key.reg”);
regeditProcess. WaitForExit();

answered Jan 31, 2010 at 11:18

The code in answer 2 is correct, but not complete.
It will work when the directory where you are refering to has no spacings in the path/file you are refering to example C:ProgramFileskey.reg will work fine, but C:Program Fileskey.reg WON’T WORK
because there are spaces in the path.

answered Oct 6, 2012 at 14:37

1 silver badge2 bronze badges

I tried to invoke RegEdit, but each time I got a confirm prompt (UAC enabled, no elevated permissions). Instead of RegEdit I recommand “reg.exe” (which is included in Windows since XP)

No dialog, no prompt.

The command is something like “reg import path/to/the/reg.reg”

answered Jun 3, 2015 at 6:55

2 gold badges29 silver badges33 bronze badges

Instead of executing a .reg file, you should be able to make your changes to the registry using the functionality provided in the Microsoft. Win32 namespace.

It is quite easy to create a registry key using this API:

Maybe more important, the API lets you specify exactly (in code) how to handle cases where the key(s) you are inserting already exists in the registry. Should i delete the existing keys and insert mine, updates values within the existing keys, silently ignore or raise an exception?

:/>  Smart показывает bad

answered Jan 31, 2010 at 11:25

15 gold badges88 silver badges122 bronze badges

Is it possible to modify a registry value (whether string or DWORD) via a .bat/.cmd script?

7 gold badges81 silver badges112 bronze badges

asked Sep 24, 2008 at 21:52

Brian R. BondyBrian R. Bondy

124 gold badges595 silver badges636 bronze badges

reg add “HKCUSoftwareetcetc” /f /v “value” /t REG_SZ /d “Yes”

12 gold badges54 silver badges85 bronze badges

answered Oct 4, 2008 at 13:26

You can use the REG command. From http://www.ss64.com/nt/reg.html:

41 gold badges178 silver badges315 bronze badges

answered Sep 24, 2008 at 21:54

5 gold badges42 silver badges55 bronze badges

Yes, you can script using the reg command.
Example:

reg add HKCUSoftwareSomeProduct
reg add HKCUSoftwareSomeProduct /v Version /t REG_SZ /d v2.4.6

reg /? has the details.

16 gold badges78 silver badges95 bronze badges

Below is a real example to set internet explorer as my default browser

/f Force: Force an update without prompting “Value exists, overwrite
Y/N”

/d Data : The actual data to store as a “String”, integer etc

/v Value : The value name eg ProgId

answered May 29, 2016 at 15:41

3 gold badges25 silver badges34 bronze badges

You can make a .reg file and call start on it. You can export any part of the registry as a .reg file to see what the format is.

This can be run on any Windows machine without installing other software.

14 gold badges131 silver badges192 bronze badges

Yes. You can use reg.exe which comes with the OS to add, delete or query registry values. Reg.exe does not have an explicit modify command, but you can do it by doing delete and then add.

answered Sep 24, 2008 at 21:56

18 gold badges132 silver badges169 bronze badges

In addition to reg.exe, I highly recommend that you also check out powershell, its vastly more capable in its registry handling.

answered Sep 24, 2008 at 22:23

9 gold badges55 silver badges92 bronze badges


Добавить в реестр без подтверждения

Нужно добавить запись в реестр с помощью BAT файла? Хотите по расписанию править ветки реестра? Нужно исправить значение реестра из командной строки? Нужно поправить реестр компьютера по сети? Легко!

В первую очередь следует знать, что работа с реестром требует прав администратора, так что командную строку запускаем от имени администратора, а BAT файл выполняем с наивысшими привилегиями.

Параметры команд

reg add — добавление и изменение данных в реестре.

REG ADD \ABCHKLMSoftwareMyCo
Добавляет раздел HKLMSoftwareMyCo на удаленном компьютере ABC

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

REG ADD HKLMSoftwareMyCo /v MRU /t REG_MULTI_SZ /d faxmail
Добавляет параметр (имя: MRU, тип: REG_MULTI_SZ, данные: faxmail)

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

Пример BAT файла, который разрешает запуск неподписанных PowerShell скриптов:

:/>  kaktusenok: Настройка параметров сетевого адаптера из командной строки

reg delete — удаление данных в реестре.

REG DELETE HKLMSoftwareMyCoMyAppTimeout
Удаляет раздел реестра Timeout и все его подразделы и параметры.

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

reg query — считать данные из реестра.

REG QUERY HKLMSoftwareMicrosoftResKit /v Version
Отображение значения параметра реестра Version

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

REG QUERY HKLMSoftwareMicrosoftResKitNtSetup /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 HKLMSOFTWARE /ve
Отображение параметра и данных для пустого значения (по умолчанию)
  в разделе HKLMSOFTWARE

reg copy — копировать данные из одной ветки реестра в другую.

REG COPY HKLMSoftwareMyCoMyApp HKLMSoftwareMyCoSaveMyApp /s
Копирует все подразделы и параметры раздела MyApp в раздел SaveMyApp

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

reg compare — сравнить две ветки реестра.

REG COMPARE HKLMSoftwareMyCoMyApp HKLMSoftwareMyCoSaveMyApp
Сравнивает все значения в разделе MyApp со значениями раздела SaveMyApp

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

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

reg export — экспорт данных реестра в REG файл.

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

reg import — импорт данных в реестр из REG файла.

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

reg flags— работа с флагами реестра.

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

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

reg save, reg restore, reg load, reg unload — бэкап и восстановление реестра с помощью файлов HIV.

REG SAVE HKLMSoftwareMyCoMyApp AppBkUp.hiv
Сохранение куста MyApp в файл AppBkUp.hiv текущей папки

REG RESTORE HKLMSoftwareMicrosoftResKit NTRKBkUp.hiv
Восстановление файла NTRKBkUp.hiv заменой раздела ResKit

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

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