2008-09-24 5 views
40

Возможно ли изменить значение реестра (будь то строка или DWORD) с помощью сценария .bat/.cmd?Можно ли изменить запись в реестре с помощью скрипта .bat/.cmd?

+0

Как указывает @Shersha Fn, вы должны быть Администратором, чтобы использовать REG.EXE. Есть ли способ сделать это как не-админ и избежать сообщения «Отказано в доступе»? – 2017-03-15 18:21:08

ответ

37

Вы можете использовать команду REG. От http://www.ss64.com/nt/reg.html:

Syntax: 

    REG QUERY [ROOT\]RegKey /v ValueName [/s] 
    REG QUERY [ROOT\]RegKey /ve --This returns the (default) value 

    REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f] 
    REG ADD [ROOT\]RegKey /ve [/d Data] [/f] -- Set the (default) value 

    REG DELETE [ROOT\]RegKey /v ValueName [/f] 
    REG DELETE [ROOT\]RegKey /ve [/f] -- Remove the (default) value 
    REG DELETE [ROOT\]RegKey /va [/f] -- Delete all values under this key 

    REG COPY [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey 

    REG EXPORT [ROOT\]RegKey FileName.reg 
    REG IMPORT FileName.reg 
    REG SAVE [ROOT\]RegKey FileName.hiv 
    REG RESTORE \\MachineName\[ROOT]\KeyName FileName.hiv 

    REG LOAD FileName KeyName 
    REG UNLOAD KeyName 

    REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s] 
    REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s] 

Key: 
    ROOT : 
     HKLM = HKey_Local_machine (default) 
     HKCU = HKey_current_user 
     HKU = HKey_users 
     HKCR = HKey_classes_root 

    ValueName : The value, under the selected RegKey, to edit. 
       (default is all keys and values) 

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

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

    \\Machine : Name of remote machine - omitting defaults to current machine. 
       Only HKLM and HKU are available on remote machines. 

    FileName : The filename to save or restore a registry hive. 

    KeyName : A key name to load a hive file into. (Creating a new key) 

    /S  : Query all subkeys and values. 

    /S Separator : Character to use as the separator in REG_MULTI_SZ values 
        the default is "\0" 

    /t DataType : REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ 

    Output : /od (only differences) /os (only matches) /oa (all) /on (no output) 
+16

этот ответ очень расплывчатый, и хотя он перечисляет все возможности (что приятно), он явно не отвечает на вопрос OP в отличие от ответа @ nray. – 2013-06-06 19:13:42

4

Вы можете создать REG-файл и начать с него. Вы можете экспортировать любую часть реестра в качестве .reg-файла, чтобы узнать, какой формат.

Формат здесь:

http://support.microsoft.com/kb/310516

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

24

Да, вы можете использовать скрипт с помощью команды reg. Пример:

reg add HKCU\Software\SomeProduct 
reg add HKCU\Software\SomeProduct /v Version /t REG_SZ /d v2.4.6 

Это позволило бы создать ключ HKEY_CURRENT_USER\Software\SomeProduct и добавьте строковое значение «v2.4.6» с именем «Version» в этом ключе.

reg /? имеет информацию.

1

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

1

В дополнение к reg.exe, я настоятельно рекомендую вам также проверить PowerShell, что значительно облегчает его обработку реестра.

+0

Сценарии PowerShell должны быть сначала разрешены на клиентской машине с помощью `Set-ExecutionPolicy`. У меня есть пакетный скрипт, который изменяет реестр, чтобы установить политику выполнения для RemoteSigned. Преимущество заключается в том, что пользователь может включать и запускать сценарии PowerShell без ввода каких-либо команд. Они могут просто дважды щелкнуть командный файл. – 2011-04-12 13:11:48

88

@Franci Penov - изменение является возможно в смысле перезапись с /f, например

reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes" 
+11

+1 для/f Я написал пару сценариев для этого, но без/f это была такая боль; потребовал, чтобы я был там, когда запускал скрипт для ввода «y + [return]» – amyassin 2012-02-16 11:45:52

6

Это, как вы не можете изменить реестр, без да или нет приглашения и не забудьте Запуск от имени администратора

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc /v Valuename /t REG_SZ /d valuedata /f 

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

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice /v ProgId /t REG_SZ /d IE.HTTPS /f 

/F Сила: Принудительное обновление без запроса "Значение существует, перезаписать Y/N"

/д данных: Фактические данные для хранения в качестве "String", целое число, и т.д.

/v Значение: Имя значения, например ProgId

/t Тип данных: REG_SZ (по умолчанию) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

Узнайте больше о прочитанном, Set или удалить ключи и значение реестра, сохранение и восстановление из файла .REG.от here

 Смежные вопросы

  • Нет связанных вопросов^_^