La Base Du Registre
La Base Du Registre
La Base Du Registre
A) Historique
La base de registre est apparue avec Windows 3.1, comme une méthode alternative aux fichiers INI pour
stocker les paramètres de Windows et des applications. Auparavant, les fichiers textes linéaires sous DOS
(CONFIG.SYS, IO.SYS...) puis les fichiers INI permettaient de stocker les paramètres des systèmes et
applications. L’apparition d'OLE* (Objet Linking and Embedding) dans Windows 3.1 à considérablement
accru les besoins en stockage et consultation de paramètres (les fichiers INI étaient limités à 64 K).
Windows 95 a été la première version de Windows basée sur la base de registre, et toutes les versions qui
suivent (Windows7 compris) utilisent cette même base de registre (les fichiers INI sont toujours présents
pour des raisons de compatibilité, hélas toujours utilisés par certains programmes).
Toutes les versions de Windows ont apporté des innovations, celles-ci se sont parfaitement intégrées à la
base de registre (Plug and Play, stratégies systèmes, profils utilisateurs, ...).
On accède à la base de registre en ouvrant Démarrer, Exécuter et on tape regedit ou regedt32 une fenêtre
ressemblant à l’explorateur Windows s’ouvre.
Elle est constituée de cinq dossiers principaux (on les appelle aussi ruches de l’anglais hives).
*
OLE Object Linking and Embedding (OLE) est une technologie de chez Microsoft qui autorise les liens et de
documents et d’autres objets. Pour les développeurs, cela apporte les OLE Control eXtension (OCX), une méthode
pour développer et utiliser les éléments d’une interface utilisateur personnalisée.
1
En réalité la base du registre est divisée en deux parties : HKEY_LOCAL_MACHINE et HKEY_USERS,
souvent écrites en abrégé : HKLM et HKU
Les trois autres branches principales sont en réalité des liens vers des sous répertoires de ces deux clefs.
HKEY_USERS : Contient des informations sur les profils utilisateurs actuellement chargés, y compris
"defaut" qui est le profil utilisateur par défaut.
2) HKEY_USERS. Contient les préférences individuelles de chaque usager pour la station de travail
en question, chaque usager étant représenté par une sous-clé SID (Security Identification) se retrouvant sous
la branche principale.
C) l’éditeur du registre.
Il a la même apparence que l’explorateur de Windows. Cet éditeur permet de visualiser le contenu du
registre, d’y effectuer des recherches, et d’en éditer le contenu. Nous pouvons importer ou exporter
facilement des clés. Il est possible d’ajouter manuellement des clés en passant par le menu Édition-
>Nouveau, ou en passant par le menu contextuel du côté droit (côté contenu) de l’éditeur.
Il est aussi possible de modifier une clé ou une valeur, soit en la renommant (ce qui est permis pour la
plupart des clés) ou en la modifiant (au sens de changer sa valeur). On peut aussi supprimer une clé.
2
Toute suppression de clé est définitive il n’y a pas besoin d’enregistrement pour valider une action sur le
registre. Alors avant toute modification sur le registre il est important d’en effectuer une sauvegarde.
REG_BINARY :
Ce type permet de gérer dans le registre des données binaires. Les données binaires se composent d'une suite
d'octets qui peut être cryptée et donc difficile à analyser. Pour des raisons de sécurité, ne vous lancez pas
dans l'édition des données binaires. La visualisation est possible par l'éditeur. Double-cliquez sur le nom
affecté de données binaires : une boite de dialogue spéciale apparaît, offrant les données binaires converties,
si possible, en chaine de caractères. Les textes cryptés en binaires sont ainsi facilement lisibles.
3
REG_DWORD :
Toutes les données susceptibles d'êtres cryptées sur 4 octets, utilisent ce type. Si la signification des valeurs
pour un nom est connue, ces valeurs sont facilement modifiables par l'éditeur. La saisie peut donc intervenir
au choix en format hexadécimal ou décimal. Par l'accessoire calc (la calculatrice) vous pouvez
éventuellement entreprendre la conversion entre hexadécimal et décimal.
REG_EXPAND_SZ :
Ce type permet de gérer une chaîne de caractères extensible par le système. "Extensible" signifie que la
chaîne de caractères contient une variable que le système se charge de remplacer.
REG_MULTI_SZ :
Une liste de chaînes de caractères liés (en fait une chaîne de caractères en plusieurs parties) peut être gérée
par ce type. Chaque chaîne individuelle est séparée du reste par le caractère NULL(00). Le caractère de
terminaison est également un caractère NULL.
REG_SZ :
Ce type gère une chaîne de caractères de texte
simple. C'est le type le plus courant pour les
paramètres de Windows et des applications.
4
Ici le nom de l’utilisateur connecté.
D) Utilisation de REGEDIT.
L'éditeur du registre, "REGEDIT", est un outil très puissant. Peu de documentation y est consacrée,
son interface est très simple, il donne accès à des paramètres qui, pour la plupart, ne sont pas accessibles
autrement. L'outil s'est amélioré au fil des versions de Windows, permettant notamment de créer des favoris
vers des clefs souvent utilisées ou de sauvegarder l'état dans lequel il se trouvait lors de la précédente
utilisation.
5
L'utilisation principale qui est généralement faite de cet outil c'est la recherche de clefs, de valeurs et
de données. Mais Regedit ne peut effectuer de recherche sur n'importe quelle donnée. Il n'est pas capable de
rechercher une donnée REG_DWORD ou des valeurs binaires. Il ne pourra faire de recherche que sur des
noms de clefs (que le nom soit partiel ou pas) des noms de valeurs et des chaînes dans les données.
Dans ces conditions, la seule façon d'outrepasser cette limitation est d'exporter la base de registre ou
la branche de la base de registre dans un fichier REG. Là, avec votre éditeur de texte favori ou tout
simplement Notepad vous lancez cette recherche sur ce fichier. Cela suppose cependant de connaître la
façon dont Regedit formate les données dans les fichiers .REG. Parmi la dizaine de types de données que
l'on trouve dans la base de registre, Regedit n'en affiche que trois dans les fichiers REG (REG_SZ,
REG_DWORD, et REG_BINARY). En fait, les autres types sont signalés par un code signalé entre
parenthèses dans le fichier REG : une donnée de type REG_MULTI_SZ sera signalée par " hex(7)". Ainsi,
la lettre "A" en mode REG_BINARY doit être convertie en valeur Unicode ce qui donne une donnée
hexadécimale "0x0041". C'est loin d'être évident les premières fois.
Pour déployer un même paramètre ou valeur sur plusieurs machines, le plus commode est encore de
recourir à la fonction Export de Regedit. On se place sur la branche voulue ou une sous clé spécifique et on
choisit Fichier | Exporter ou un clic-droit sur la clé et Exporter. Cinq types de formats d'exportation sont
alors proposés. Par défaut, Regedit sous XP propose le format REG. Il s'agit du format REG de type 5,
compatible seulement avec Windows 2000 et XP.
Entre un fichier REG 5 et REG 4, la différence tient au codage. Le premier utilise Unicode, le
second est un texte ANSI. Dans le premier, chaque caractère REG_EXPAND_SZ et REG_MULTI_SZ est
codé sur 2 octets, contre un seul en REG 4. La lettre "A" est donc 0x0041 dans le premier cas et 0x41 dans
le second.
Importer une ruche, Regedit va préalablement détruire la branche qui est remplacée. Pour une
opération de restauration c'est appréciable dans la mesure où on ne souhaite pas que des paramètres se
superposent.
Charger une ruche permet de voir sa structure et ses valeurs sans pour autant qu'elle remplace la
ruche de même nature sur laquelle fonctionne Windows. C'est là la différence entre "charger" et "importer"
une ruche. Cette commande n’est disponible que dans la clé HKLM ET HKU.(ne pas oublier de
décharger la ruche après consultation).
En conclusion l'opération d'importation détruit les valeurs à remplacer comme devrait agir toute
opération de backup. L'opération de chargement de ruche sert à l'édition de ces paramètres et
éventuellement à la modification, Regedit étant le seul programme à permettre l'édition des ruches en
langage compréhensible.
Il est aussi possible de créer ses propres clés de registre en écrivant un fichier texte avec le bloc-note
par exemple puis en changeant son extension en .reg.
Avant de procéder à une modification de la base de registre il est important d’en faire une sauvegarde
préalable.
La manière la plus simple de procéder pour les petites modifications qui n'impliquent pas de
nombreuse clefs, c'est de renommer préalablement la valeur que l'on va modifier. Ainsi, pas exemple, si l'on
6
veut modifier "SCREENSAVE.EXE" dans HKEY_CURRENT_USER\Control Panel\Desktop, on
renommera préalablement cette valeur telle que "ancien_SCREENSAVE.EXE"...
SI les modifications dans l’arborescence, sont plus importantes, il vaut mieux préalablement
exporter la branche en question. Pour ce faire, on fait un clic droit sur la branche parent, puis on sélectionne
"Exporter". Reste plus qu'à choisir un nom et une destination.
En double-cliquant sur le fichier REG ainsi créé, on fait ce que l'on appelle une importation dans la
base de registre. Du coup, il ne faut pas perdre de vue que si les valeurs originelles que vous auriez
modifiées peuvent être rétablies de cette manière, il n'en sera cependant pas de même avec des valeurs
créées de toute pièce. Si une valeur existe dans la base de registre mais pas dans le fichier REG elle sera
laissée intacte.
F) La restauration système
La restauration système repose sur un principe assez simple selon lequel des "clichés" instantanés de
votre système sont régulièrement pris. Si vous souhaitez utiliser la restauration système pour retrouver votre
PC dans l'état dans lequel il était avant l'installation d'un programme, n'oubliez pas qu'il vaut mieux
d'abord désinstaller ce programme puis ensuite déclencher la restauration. La restauration en elle-même
ne va pas restituer votre PC exactement dans l'état dans lequel il se trouvait. Par exemple, vos données
personnelles ajoutées après le point de restauration seront conservées. En Mode Sans Echec, la restauration
système ne permet que de restaurer, pas de créer un point de restauration.
Pour aller plus loin dans la configuration de la restauration du système, il faut passer par la base de
registre et éditer la clef HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore.
Toutes les valeurs sont de type REG_DWORD. Vous pourrez ainsi définir l'intervalle de temps entre
chaque opération automatique de sauvegarde (délai par défaut de 24 heures exprimées en secondes, soit
15180 en binaire 0x15180 qui correspond à 86400 secondes en mode décimal), la durée de vie maximale
d'un point de restauration (3 mois par défaut, soit 90 jours ou encore 7.776.000 secondes en mode décimal et
76a700 secondes en mode hexadécimal), etc.
A savoir, si vous désactiver la restauration système via l'interface graphique, vous effacez du même
coup les points de restauration créés jusqu'à présent sur chaque volume (les fichiers RPxx). Si votre souhait
est de conserver ces points de restauration pour une utilisation ultérieure, vous devez désactiver la
Restauration Système uniquement par la base de registre en éditant la valeur "DisableSR" pour lui attribuer
0x01.
7
De plus vous pouvez utiliser l’onglet Favoris pour un retour rapide vers des clés que vous
modifiez souvent.
I) Exportation
Vous pouvez exporter n’importe
quelle clé du registre, branche du registre ou
même le registre entier.
Pour exporter une clé se placer sur le dossier contenant celle-ci cliquez droit Exporter ou Fichiers,
Exporter. Puis vous lui donnez un nom et un endroit de stockage.
En double-cliquant sur cette clé ou en l’important vous modifierez ou vous rétablirez vos
paramètres.
8
J) Le Nettoyage du registre