LE REGISTRE WINDOWS

Le registre de Windows ou base de Registre (BDR), contient toutes les informations et paramètres liés aux applications installées, ainsi que ceux nécessaires aux éléments et composants physique de votre ordinateur.

Cette base, apparue sous Windows 95, et présente sous toutes les version ultérieures, est le remplacement des fichiers de paramètres utilisés sous Windows 3.x. Les fichiers *.ini fonctionnent toujours pour des raisons de compatibilité descendante, mais les programmes n'y ont plus recours.


Editer le registre avec regedit.exe


Livré avec Windows, RegEdit est éditeur spécifique pour lire et modifier le contenu du registre.Pour le lancer, il faut recourir à la ligne de commande :Démarrer -> Exécuter et saisir regedit.exe.
On peut voir alors le contenu du registre (attention c'est une ouverture en édition et non en lecture seule, toute modification est effective dès lors qu'on sort de regedit)
dans une fenêtre ressemblant à celle de l'explorer de Windows.
Voici les options que l'on peut utiliser avec regedit :
regedit.exe [options] [fichier] fichier - Importe les param&egrave;tres contenus dans le fichier.reg dans le registre<br> /s - Mode silencieux, pas de confirmation lors de l'import dans le registre<br> /e - Exporte dans un fichier<br> par exemple regedit /e fic.reg HKEY_USERS\.DEFAULT<br> /L:system - Précise l'endroit du fichier system.dat &agrave; utiliser<br> /R:user - Précise l'endroit du fichier user.dat &agrave; utiliser<br> /C - Compresse [fichier] (Windows 98)

Avant de manipuler le registre, il convient de prendre certaines précautions de sauvegarde.

Regedit permet d'exporter ou d'importer des valeurs du registre dans un fichier texte d'extension.reg

Il existe d'autres éditeurs de registre, dont Regedt32.exe, lui aussi fourni avec Windows.

Structure générale du registre


Chaque élément présent dans la fenêtre de gauche s'appelle une clé. A droite, c'est le panneau des valeurs


Le nom d'une clef est limité à 512 caractères ANSI ou 256 caractères UNICODE (ce langage étant celui pas défaut pour XP). On peut utiliser tout symbole ASCII autre que (\), (*), et (?). Tous les noms commençant par un (.) sont réservés à XP.

Les valeurs de chaque clef ou sous-clef de la base de registre ont toutes un nom, un type ou valeur et des données.
Le nom d'une valeur a les même limites que le nom des clefs. Les données contenues dans les valeurs, peuvent être des données nulles ("null" en anglais), vides ("empty" en anglais) ou définies.
Une donnée nulle est exprimée par "valeur non définie" dans l'éditeur de la base de registre. Si la donnée est vide, on trouvera deux guillemets ("").

Type de données Description
REG_BINARY Donnée binaire affichée en numération hexadécimale.
REG_DWORD Affichant souvent des valeurs booléennes (0 pour VRAI et 1 pour FAUX), exprimant parfois l'unité de temps en millisecondes (où la donnée "1000" signifiera donc 1 seconde).
REG_DWORD_BIG_ENDIAN Idem que ci-dessus avec l'octet de poids fort stocké en premier en mémoire. Très rare sur une plate-forme i386.
REG_DWORD_LITTLE_ENDIAN L'inverse que ci-dessus, et c'est en fait la présentation classique de REG_DWORD.
REG_EXPAND_SZ Texte contenant une longueur variable. Par exemple, un programme s'appuyant sur une donnée REG_EXPAND_SZ qui contient %USERPROFILE% interprêtera cette valeur comme étant "C:\Documents and Settings\"User_encours"\.
REG_FULL_RESOURCE_DESCRIPTOR Liste les ressources utilisées par un pilote ou un périphérique. Voir par exemple ici : HKLM\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\0.
REG_LINK C'est un lien. On ne peut pas en créer.
REG_MULTI_SZ Valeur contenant une liste de données qui sont séparées par une donnée nulle (0x00). La fin de liste est définie par deux caractères nuls.
REG_NONE Valeur sans donnée définie.
REG_QWORD REG_DWORD sur 64 au lieu de 32 bits (XP pour plateformes 64 bits).
REG_RESOURCE_REQUIREMENTS_LIST Listes des resources requises par un périphérique. On ne peut que voir ces ressources, pas les éditer ou les modifier.
REG_SZ Texte de taille fixe.


Structure détaillée du registre


Voici les clés racines, regroupant un ensemble de sous-clés.

POSTE DE TRAVAIL :


*   HKEY_CLASSES_ROOT :
Informations de configuration des programmes pour les opérations de glisser-déposer, les informations relatives aux raccourcis, celles relatives à l'interface. On y trouve une clef pour chaque association de fichiers qui a été définie. C'est ce qui permet à Windows d'appeler la bonne application lors d'un double clic sur un fichier pour l'ouvrir.
Exemple :

La clé .doc correspond à l'association des fichiers .doc avec l'application Word.

 Extrait de HKCR

La valeur par défaut contient la donnée Word.Document.8. Si on recherche cette clé (toujours dans HKCR) et qu'ondéveloppe cette clé pour regarder dans la clé par défaut, on voit le nom du programme associé : winword.exe


 Extrait de HKCR

La clé .* définit le comportement attribué au double-clic sur des fichiers dont l'extention est inconnue du système.

HKCR contient aussi les sous-branches :
Enfin, on trouve aussi dans HKCR la gestion des composants communs de Windows et des objets COM (Component Object Model) de façon à les rendre accessibles (identificateur de classe, version, ...).
Ils sont décrits dans les sous-branches

*  HKEY_CURRENT_USER:
Informations relatives à l'utilisateur courant de la machine. Elle fait partie de la racine HKEY_USERS qui décrit les paramètres de tous les utilisateurs. * HKEY_LOCAL_MACHINE
Informations génériques sur le matériel et les logiciels applicables à tous les utilisateurs de cette machine, ainsi que les paramètres de sécurité.

* HKEY_USERS
Informations sur les paramètres du Bureau et des utilisateurs sur cette machine.
.DEFAULT contient les paramètres affectés par défaut à chaque création d'un utilisateur.


* HKEY_CURRENT_CONFIG
Informations sur la configuration matérielle énumérée par HKEY_LOCAL_MACHINE. Elle fait partie de HKEY_LOCAL_MACHINE :
Dans le cas d'un utilisateur unique de la machine, HKCC est le reflet exact de HKLM/Config/001. Si plusieurs utilisateurs ont été définis, HKCC contient les paramètres de l'utilisateur actif (celui qui est connecté). Si cet utilisateur change un paramètres, ce changement est enregistré dans HKCC. Si ce changement est jugé valide par Windows, il est ensuite reporté dans HKLM.


* HKEY_DYN_DATA
Informations dynamiques à propos des périphériques plug-and-play installés sur le système. Ces informations sont modifiées en fonction de l'ajout ou du retrait de ces périphériques.

Structure du registre sous Windows 2000/Xp/2003 serveur


* HKEY_LOCAL_MACHINE (HKLM)
Informations globales sur la matériel et l'OS, type de Bus, mémoire système, pilotes de périphériques et toutes informations requises lors de la séquence de démarrage de l'OS. Ces paramètres s'appliquent à l'ensemble des utilisateurs de la machine.
Cette clef ne correspond à aucun fichier stocké sur le disque dur, mais certaines de ses sous-clefs correspondent bien à des fichiers ("ruches") : HKEY_LOCAL_MACHINE\SYSTEM, HKEY_LOCAL_MACHINE\SAM, HKEY_LOCAL_MACHINE\SECURITY, HKEY_LOCAL_MACHINE\SOFTWARE.


* HKEY_CLASSES_ROOT (HKCR)
Comme pour les versions précédentes, elle contient les informations relatives aux associations de fichiers, aux informations OLE associés aux objets COM et aux classes d'association de fichiers (que l'on retrouve sous HKEY_LOCAL_MACHINE\Software\Classes.


* HKEY_CURRENT_CONFIG (HKCC)
Contient les paramètres de configuration du profil matériel actuel (en cours d'utilisation). Elle ne fait apparaître que les modifications apportées par rapport à la configuration de base qui est détaillée dans HKEY_LOCAL_MACHINE et ses sous-clefs.

Ces mêmes modifications sont répertoriées dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\HardwareProfiles\Current key.


* HKEY_CURRENT_USER (HKCU)

Contient le profil utilisateur de l'utilisateur actuellement connecté. Clef qui fait référence à la clef HKEY_USERS\user_SID.


* HKEY_USERS (HKU)

Contient tous les profils actifs des utilisateurs de la machine, sauf ceux accédant via le LAN puisque leurs profils sont alors stockés sur leurs stations respectives.

Changements du registre sous Xp/2000

Windows XP a introduit quelques changements majeurs dans la structure de la base de registre.

* HKEY_CLASSES_ROOT (HKCR)

HKCR contient deux types de paramètres, le premier affectant les association de fichiers avec les programmes et le second affectant les enregistrements de classes pour les objets COM.

Avant Windows 2000 et XP, HKCR était un lien de la clef HKLM\SOFTWARE\Classes.
XP fusionne les deux clefs HKLM\SOFTWARE\Classes (associations par défaut des fichiers et registration des classes) HKCU\Software\Classes (idem que la précédente mais en fonction de l'utilisateur). Pour une même valeur, celle énumérée dans HKCU\Software\Classes primera sur son équivalent de HKLM\SOFTWARE \Classes.

Cela permet la personnalisation des associations de fichiers selon un modèle par ordinateur et surtout par utilisateur. On partage un seul PC pouvant avoir différentes associations de fichiers d'un utilisateur à l'autre.
Si un profil itinérant est utilisé, ces paramètres personnalisés suivent l'utilisateur sur chaque PC ou il se connecte.


* STOCKAGE PHYSIQUE

La base de registre sous Windows 9x est constituée des deux fichiers user.dat et system.dat

Sous XP on parle de ruches (Hive) auxquelles correspondent des fichiers stockés dans %SYSTEMROOT%\System32\config pour la plupart (HKLM) et dans les dossiers des profils utilisateurs (pour HKU). Il suffit de sauvegarder ce répertoire (chez moi 30 Mo) pour garder son registre.

On trouve la liste des ruches chargées dans la base de registre par XP à la clef : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist.
Les fichiers ruches ne comportent pas d'extension. Pour chaque ruche, XP crée des fichiers de sauvegarde avec l'extension .SAV. L'extension .LOG correspond retrace les changements affectant la ruche en cause. On ne trouve des ruches que dans HKLM et HKU, les autres clefs racines étant des liens vers des sous clefs de HKLM et HKU. Les ruches afférentes à HKU sont dans les dossiers utilisateurs, dans les fichiers Ntuser.dat et UsrClass.dat. En fait, HKU\.DEFAULT a sa ruche dans %SYSTEMROOT%\System32\config\default mais les autres ruches de HKU vont se trouver dans les fichiers cités ci-avant.

L'extension ALT a été supprimée sous Windows XP/ 2003 Server. Elle correspond à HKEY_LOCAL_MACHINE\System pour Windows NT/2000.