Est-il possible de modifier une valeur de registre (chaîne ou DWORD) via un script .bat/.cmd?
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)
@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"
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.
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
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.
En plus de reg.exe, je vous recommande vivement de consulter également powershell, son beaucoup plus capable dans sa gestion du registre.
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.