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ètres contenus dans le fichier.reg dans
le registre
/s - Mode silencieux, pas de confirmation lors de l'import dans le registre
/e - Exporte dans un fichier
par exemple regedit /e fic.reg HKEY_USERS\.DEFAULT
/L:system - Précise l'endroit du fichier system.dat à utiliser
/R:user - Précise l'endroit du fichier user.dat à utiliser
/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.
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
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 :
- Applications : permet la définition d'extensions de menus
contextuels
- Briefcase : définit les icônes de logiciels
- Directory : Gestion des entrées de menu contextuel du bouton
Démarrer
- Drive : Menu contextuel des lecteurs de disques, disquettes, CD/DVD
- Folder : Affectation d'icônes et définition du menu
contextuel pouir les dossiers
- Hlpfile : Affectation d'icônes et définition du lenu
contextuel pour les fichiers d'aide.
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
- CLSID: Identificateurs de classes des objets COM, propriétés,
serveurs ActiveX et Dll ActiveX
- Interfaces : Identification de classe des définitions d'interfaces
installées
- Licences : Licences des composants installés. Si les licences
des composants ActiveX ne sont pas inscrites dans le registre, ceux-ci ne
seront pas accessibles en développement, mais uniquement exécutables.
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.
- AppEvents: Paramètres des sons associés aux
évènements du système (EventLabels), modèles de
sons (Schemes).
- Control Panel: Paramètres du Panneau de Configuration
similaires à ceux définis par System.ini, Win.ini et Control.ini
dans Windows 3.xx. Cela détermine la configuration de l'affichage,
des paramètres régionaux, et les options d'accessibilités
de l'utilisateur.
- Accessibility : Assistance à l'utilisation de l'ordinateur
- Appearance : Apparence de Windows
- Colors : Paramètres de couleurs
- CustomColors : Couleurs personalisées définies par l'utilisateur
- Desktop : Apparence et affichage de Windows
- Don't load : Modules du panneau de configuration qui ne doivent pas
être affichés
- International : réglage nationaux
- Keyboard : Paramètres du clavier
- Mouse: Valeurs de configuration de la souris
- Patterns : Définition des motifs du papier peint
- Powercfg : Paramètres d'économie d'énergie
- Screensaver : Paramètres de l'écran de veille
- Sound et Sounds : paramètres de sons système.
- Desktop: Apparence de l'arrière-plan, des icônes et
de l'écran de veille.
- Environnement : Varaibles d'environnement de Windows
- InstallLocationsMRU: Contient les chemins pour les programmes du
Menu Démarrer.
- Keyboard/layout: Configuration du clavier.
- Network: Informations sur les connexions réseau.
- Printers : Paramètres d'impression (Settings) et de
l'assistant Ajout d'imprimante (Wizard)
- RemoteAccess: Informations de l'utilisateur courant pour l'Accès
Réseau à Distance (ARD).
- Software: Paramètres des applications utilisées par
l'utilisateur courant.
- Software/Microsoft/Windows/CurrentVersion et Software/Microsoft/WindowsNT/CurrentVersion
: Paramètres actuels et options spéciales de Windows.
- Software/Microsoft/Windows/CurrentVersion/Explorer: Paramètres
de l'explorateur qui influent sur son comportement et son apparence.
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é.
- Config: Information sur la configuration/Paramètres (voir
+loin HKCC).
- Enum: Information sur le matériel/Paramètres.
- Hardware: Information sur les ports de communication et CPU/Paramètres,
pilotes de périphériques. Ces données sont volatiles
et sont recalculées à chaque redémarrage du système,
perdues lorsque le système est hors tension.
- Network: Information sur les réseaux utilisés.
- Sam et Security: Paramètre de sécurité pour
les réseaux, stratégies de sécurité(droits de
users, comptes, groupes, etc...). Ces données ne sont pas lisibles
- Software: Informations et paramètres spécifiques aux
applications. On peut remarquer les sous-branches ci-dessous :
- Classes: C'est une copie de HKCR, et gère les
classes et les objets.
- hardware: Description et informations sur le processeur,
le coprocesseur, les cartes filles, les ressources du système.
- Microsoft: composants et applications Microsoft.
- Microsoft/Shared Tools: Modules et composants complémentaires
utilisés par les applications Microsoft
- Microsoft/Windows: Paramètres d'exécution de Windows.
- Microsoft/Windows/CurrentVersion/App Paths: Chemins d'accès
pour toutes les applications.
- Microsoft/Windows/CurrentVersion/Uninstall: Informations de
désinstallation des applications, Windows inclus.
- System: Mise en route du système (CurrentControlSet)
, informations des pilotes et de l'OS, dernière bonne configuration
connue (LasKnowGoodRecovery).
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.