Est-il possible de modifier une entrée de registre via un script .bat / .cmd?
-
02-07-2019 - |
Question
Est-il possible de modifier une valeur de registre (chaîne ou DWORD) via un script .bat / .cmd?
La solution
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)
Autres conseils
@Franci Penov - modifier est possible dans le sens d'une écraser avec / f
, par exemple
reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"
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
Ceci créerait la clé HKEY_CURRENT_USER \ Software \ SomeProduct
et ajouterait une valeur de chaîne "quot v2.4.6". nommé " Version " à cette clé.
reg /?
contient les détails.
Voici comment modifier le registre, sans invite Oui ou Non et n'oubliez pas de vous lancer en tant qu'administrateur
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc /v Valuename /t REG_SZ /d valuedata /f
Ci-dessous, 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 Force: force une mise à jour sans demander "La valeur existe, écrasez Y / N "
/ d Data: données réelles à stocker sous forme de "chaîne", nombre 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 les clés et les valeurs de registre Lire, Définir ou Supprimer, enregistrer et restaurer à partir d'un fichier .REG. à partir de ici
Vous pouvez créer un fichier .reg et appeler start dessus. Vous pouvez exporter n’importe quelle partie du registre sous forme de fichier .reg pour connaître le format.
Formater ici:
http://support.microsoft.com/kb/310516
Ceci peut être exécuté sur n’importe quel ordinateur Windows sans installer d’autres logiciels.
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 effectuant delete puis add.
En plus de reg.exe, je vous recommande vivement de consulter également powershell, qui est beaucoup plus capable de gérer le registre.