web-dev-qa-db-fra.com

Est-il possible de modifier une entrée de registre via un script .bat / .cmd?

Est-il possible de modifier une valeur de registre (chaîne ou DWORD) via un script .bat/.cmd?

44
Brian R. Bondy

Vous pouvez utiliser la commande REG. De 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)
38
Rui Vieira

@Franci Penov - modifier est possible dans le sens écraser avec /f, par exemple

reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"
99
nray

Oui, vous pouvez créer un script à l'aide de la commande reg. Exemple:

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

Cela créerait la clé HKEY_CURRENT_USER\Software\SomeProduct, et ajoutez une valeur de chaîne "v2.4.6" nommée "Version" à cette clé.

reg /? a les détails.

26
Factor Mystic

Voici comment vous pouvez modifier le registre, sans invite oui ou non et n'oubliez pas d'exécuter en tant qu'administrateur

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

Voici un exemple réel pour définir Internet Explorer comme navigateur par défaut

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

/ f Forcer: forcer une mise à jour sans demander "La valeur existe, écraser O/N"

/ d Data: les données réelles à stocker sous forme de "chaîne", entier, etc.

/ v Value: le nom de la valeur, par exemple ProgId

/ t DataType: REG_SZ (par défaut) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

En savoir plus sur Lire, définir ou supprimer des clés et des valeurs de registre, enregistrer et restaurer à partir d'un fichier .REG. de ici

10
Shersha Fn

Vous pouvez créer un fichier .reg et appeler start dessus. Vous pouvez exporter n'importe quelle partie du registre en tant que fichier .reg pour voir quel est le format.

Format ici:

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

Cela peut être exécuté sur n'importe quelle machine Windows sans installer d'autres logiciels.

4
Lou Franco

En plus de reg.exe, je vous recommande vivement de consulter également powershell, son beaucoup plus capable dans sa gestion du registre.

1
Tim Jarvis

Oui. Vous pouvez utiliser reg.exe fourni avec le système d'exploitation pour ajouter, supprimer ou interroger des valeurs de registre. Reg.exe n'a pas de commande de modification explicite, mais vous pouvez le faire en supprimant puis en ajoutant.

1
Franci Penov