Modifications de la base de registres à partir de REGEDIT et d'un fichier .reg
Il est peut s'avérer utile de modifier la base de registres à l'aide de l'outil REGEDIT utilisé en ligne de commande (et non pas via l'interface graphique), cela essentiellement pour incorporer cette commande dans un fichier batch (.bat ou .cmd sous NT/W2K/XP), ou encore pour l'exécuter depuis un raccourci posé sur le bureau.
Pour cela, il suffit de lui passer en paramètre un fichier ayant l'extension .reg
La syntaxe est la suivante :
REGEDIT [/s] <nom_de_fichier.reg>
Le commutateur facultatif /s permet un fonctionnement en mode silencieux, c'est à dire sans apparition de la boite de dialogue de confirmation (ce mode est nécessaire dans le cas d'utilisation d'un fichier batch) :
Sous Windows 9x/ME/NT4, les fichiers .reg sont des fichiers texte de type ANSI (1 octet par caractère).
Sous Windows 2000 et XP, ils sont, par défaut, de type UNICODE (2 octets par caractère), mais le type ANSI est également supporté. On retiendra ici le type ANSI traditionnel.
La première ligne du fichier est :
Type ANSI REGEDIT4 Type UNICODE Windows Registry Editor Version 5.00
Elle est suivie d'une ligne vide, puis des lignes propres à chaque clef à ajouter, modifier ou supprimer.
Pour ajouter ou modifier une clef, on insère le nom complet de la clef, encadré par des crochets : [ et ].
REGEDIT4 [HKEY_CLASSES_ROOT\htmlfile\shell\open\command]
Pour ajouter ou modifier une entrée dans une clef on insère à la suite du nom de la clef une ligne de la forme nom_de_l'entrée>=<valeur_de_l'entrée>
On encadre le nom de l'entrée par des guillemets ” ”, sauf si l'entrée concernée est l'entrée par défaut. Dans ce cas , le nom est symbolisé par le caractère @ (sans guillemets)
REGEDIT4 [HKEY_CLASSES_ROOT\.html] @="htmlfile" "Content Type"="text/html"
La valeur d'une entrée peut être de 3 types :
@="\"D:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"
REG_DWORD (mot binaire de 4 octets)
La valeur exprimée en hexadécimal doit être précédée du mot-clef dword suivi de 2 points : “InstallDate”=dword:3a020c30
REG_BINARY (donnée binaire de longueur quelconque)
La valeur est exprimée sous la forme d'une suite d'octets exprimés en hexadécimal, séparés par des virgules, le premier étant précédé du mot-clef hex suivi de deux points. Si la ligne est trop grande, on peut la couper à l'aide du caractère \, qui indique que la valeur se continue sur la ligne suivante.
"DigitalProductId"=hex:a4,00,00,00,03,00,00,00,35,32,33,34,30,2d,30,30,35,2d,\ 30,30,34,30,31,30,32,2d,30,35,34,30,31,00,0a,00,00,00,41,32,32,2d,30,30,30,\ ... 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,43,19,d1,3a
Sous Windows NT/W2K/XP, les valeurs de type REG_EXPAND_SZ (chaîne contenant le nom d'une variable d'environnement) et REG_MULTI_SZ (plusieurs chaînes à la suite) doivent être exprimées sous la forme de valeurs binaires (hex:...)
Il suffit de faire précéder le nom de la clef à supprimer du signe - (moins)
Suppression de la clef HKEY_LOCAL_MACHINE\SOFTWARE\jcb
REGEDIT4 [-HKEY_LOCAL_MACHINE\SOFTWARE\jcb] <code> Pour supprimer une entrée, il suffit de faire suivre le signe "=" (après le nom de l'entrée) du signe - (moins) Dans la clef HKey_Current_User\Software\Policies\Microsoft\Internet Explorer\Control Panel suppression de l'entrée de nom "Home Page", (pour information, c'est cette entrée qui interdit de modifier la page d'accueil de I.E.) <code> REGEDIT4 [HKey_Current_User\Software\Policies\Microsoft\Internet Explorer\Control Panel] "Home Page"=-
Un fichier .reg doit se terminer par une ligne vide.
Il est possible également d'exporter un fichier .reg depuis la base de registres à l'aide de REGEDIT en ligne de commande.
La syntaxe est la suivante :
REGEDIT /e <nom_de_fichier.reg> [clef_à_exporter]
nom_de_fichier.reg désigne le nom (chemin complet ou non) du fichier .reg qui sera créé (ou remplacé)
clef_à_exporter désigne la clef (avec toutes les sous-clefs éventuelles) à exporter.
Elle peut être omise. Dans ce cas, c'est l'intégralité de la base de registres qui sera exportée, ce qui peut représenter un processus assez long, et entraîner la création d'un fichier .reg particulièrement volumineux (plusieurs Mo, voire dizaines de Mo)
Exemple : Exportation du contenu de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet dans le fichier ccs.reg :
regedit /e css.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32\PlacesBar] "Place0"=dword:00000011 "Place1"="C:\\" "Place2"="H:\\" "Place3"="C:\\Cubes Pilotage" "Place4"="C:\\Z Tempor"