Qu’est-ce que la base de registre Windows ?
Sommaire
I. Présentation
Que ce soit sous Windows Server ou les éditions clientes de Windows, telles que Windows 7, Windows 8.1 ou Windows 10, il y a un composant du système qui se nomme la base de registre. Mais alors, qu'est-ce que la base de registre Windows ? Je vais répondre à cette question dans cet article synthétique où vous verrons également à quoi elle sert.
II. Le Registre Windows
C'est un composant incontournable, un composant à connaître, car tout informaticien a besoin de le manipuler un jour ou l'autre ! La base de registre Windows est une base de données structurée où le système et les applications stockent de nombreuses informations, notamment sur leur configuration. Des données indispensables au bon fonctionnement du système et des applications que vous installez sont stockées dans la base de registre.
Vous l'aurez compris, le Registre Windows est un composant charnière du système d'exploitation Windows. D'ailleurs, pour parler de ce composant, on emploie différents termes : le registre, la base de registre ou le Registre Windows, ce dernier étant le terme officiel.
Bien souvent, on l'utilise sans s'en rendre compte à partir de l'interface graphique de Windows : la modification d'un paramètre peut modifier la valeur associée dans la base de registre.
Il contient les paramètres liés aux services Windows, aux associations de fichiers (par exemple, associer Microsoft Word à l'extension "docx"), la configuration et les données des applications, la configuration matérielle de votre machine, des informations sur les profils des utilisateurs, ou encore sur les stratégies de groupe.
A. Les ruches du Registre Windows
La base de données du Registre Windows est organisée en plusieurs sections que l'on appelle des ruches. Une machine Windows dispose de ruches par défaut avec chacune un rôle spécifique.
Plus précisément, voici le nom et le rôle de chaque ruche principale à connaître au sein de la base de registre Windows :
- HKEY_CLASSES_ROOT (HKCR) :
Cette ruche contient les informations sur les associations de fichiers, ce qui fait qu'elle contient beaucoup de valeurs différentes. Elle contient également des données sur les bibliothèques DLL, COM et ActiveX.
- HKEY_CURRENT_USER (HKCU) :
Cette ruche contient les paramètres correspondants à l'utilisateur actuellement connecté sur la machine. Si un logiciel stocke des données propres à l'utilisateur connecté sur la machine, il va les stocker dans cette ruche.
Cette ruche se matérialise par l'existence du fichier "NTUser.dat" pour stocker les données de l'utilisateur en cours, nous y reviendrons. Lorsqu'on l'explore, on remarque qu'elle se décompose en plusieurs catégories, notamment des données relatives aux logiciels installés et à Windows dans "SOFTWARE" (c'est bien souvent là-dedans que l'on fait des modifications).
- HKEY_LOCAL_MACHINE (HKLM) :
Cette ruche stocke les informations liées à la machine en elle-même et ces valeurs sont prioritaires par rapport à celles définies dans la ruche HKEY_CURRENT_USER. Grâce à cela, l'administrateur peut garder le contrôle sur la machine plus facilement.
Nous retrouvons des informations sur le matériel, mais aussi sur les paramètres des logiciels communs à tous les utilisateurs.
- HKEY_USERS (HKU) :
Cette ruche contient la liste des utilisateurs et offre une vue globale. En fait, HKEY_CURRENT_USER et une sous-ruche de HKEY_USERS. Un utilisateur standard connecté peut modifier seulement les valeurs dans HKEY_CURRENT_USER alors qu'un administrateur pourra modifier l'ensemble des valeurs en passant par HKEY_USERS.
- HKEY_CURRENT_CONFIG (HKCC) :
Cette ruche intègre des informations relatives à la configuration courante de Windows.
B. Le stockage du Registre Windows
Je vous parle de cette base de données depuis toute à l'heure, mais en fait où est-elle stockée et sous quelle forme ? En fait, toutes les ruches ne sont pas stockées au même endroit.
Par exemple, la ruche HKEY_CURRENT_USERS est représentée par un fichier nommé "NTUSER.dat" et ce dernier est stocké à l'emplacement suivant : C:\Users\<utilisateur>\NTUSER.dat. Chaque utilisateur dispose de ce fichier dans sa session et il est indispensable au bon fonctionnement de la session.
En complément et pour le reste, les données sont stockées dans des fichiers qui sont dans le dossier suivant de Windows : C:\Windows\System32\Config\
C. Ruches, clés, et valeurs
Nous avons vu cette notion de ruches qui représente les éléments de la racine du Registre Windows. Ces ruches contiennent deux types d'éléments : des clés et des valeurs.
Les clés sont comme des dossiers : elles vont permettre d'organiser la base de registre et de créer l'arborescence. Ensuite, au sein des clés nous retrouvons des valeurs. Chaque dispose d'un type, d'un nom et d'une valeur associée.
Pour que ce soit plus parlant :
Les valeurs sont de différents types : tout dépend du format de la valeur à stocker à l'intérieur. Il peut s'agir tout simplement d'une valeur binaire qui aura "0" ou "1" et qui agira comme un booléen, ou alors d'une chaîne de caractères simple ou alors avec plusieurs valeurs.
Les types supportés sont :
- Chaîne (string)
- Binaire
- DWORD 32 bits
- QWORD 64 bits
- Chaînes multiples
- Chaîne extensible
D. Le Registre Windows et les GPO
En entreprise, sur les postes de travail et serveurs intégrés à un domaine Active Directory, on utilise les stratégies de groupe (GPO) pour déployer des paramètres de configuration.
Ces paramètres de GPO permettent d'agir directement sur la machine ou alors au sein de la session de l'utilisateur. Il faut savoir que les GPO modifient le registre ! La GPO va modifier (voire créer) la valeur correspondante sur votre système pour vous permettre d'appliquer la configuration que vous souhaitez. D'ailleurs, lorsque l'on cherche à créer son propre paramètre de GPO, on doit indiquer quelle clé de registre il cible.
Lorsque l'on utilise un paramètre utilisateur, on va venir écrire dans la ruche HKEY_CURRENT_USER. Par contre, lorsqu'il s'agit d'un paramètre ordinateur, c'est la ruche HKEY_LOCAL_MACHINE qui est modifiée.
D'ailleurs, la base de registre Windows peut être modifiée par GPO directement pour créer ou modifier des valeurs à l'aide des paramètres "Préférences" (GPP).
III. Comment accéder à la base de registre Windows ?
Que ce soit pour personnaliser son système de façon avancée ou pour réaliser un dépannage, on peut être amené à modifier la base de registre Windows. J'entends par modifier : ajouter une nouvelle valeur, modifier une valeur existante ou supprimer une valeur existante.
Windows intègre un éditeur de registre que l'on peut ouvrir facilement grâce à la commande "regedit". On peut appeler cet utilitaire dans "Exécuter", dans la zone de recherche du menu Démarrer de Windows (cela va retourner "Éditeur du Registre" ou encore dans une Invite de commande / console PowerShell.
Ci-dessous l'interface de l'éditeur du registre intégré à Windows. À gauche, on va parcourir l'arborescence, et à droite on la liste des valeurs contenues dans la clé sélectionnée.
La partie supérieure qui commence par "Ordinateur" indique le chemin complet de la clé sélectionnée. On appelle ce chemin une branche. Si vous connaissez le chemin de la ruche à atteindre, vous pouvez le copier-coller dans cette zone pour gagner du temps. ?
Pour créer une clé ou une valeur, il suffit d'effectuer un clic droit à l'endroit souhaité et de choisir. Il faudra nommer l'élément. Dans le cas où c'est une valeur, un double-clic sur la valeur permettra de la modifier. Ceci est vrai pour modifier les données d'une valeur existante ou d'une nouvelle valeur.
Au sein de la base de registre Windows, il est à noter qu'une clé peut être renommée, une valeur aussi, mais que le type d'une valeur ne peut pas être changé.
IV. Comment sauvegarder la base de registre Windows ?
Avant de modifier le registre, notamment lorsqu'il s'agit d'effectuer des modifications importantes, il est recommandé d'effectuer une sauvegarde. En cas de mauvaise manipulation et de crash de Windows, cette sauvegarde peut s'avérer utile.
Pour sauvegarder la base de registre Windows, il faut exporter son contenu dans un fichier REG. On peut exporter tout ou partie du registre : le registre complet, une ruche complète ou simplement une clé.
À l'aide de l'éditeur du registre, il faut cliquer sur "Fichier" puis "Exporter". Le bouton "Importer" permettra de faire l'opération inverse, à savoir restaurer le registre.
Il suffit de nommer le fichier, et de sélectionner l'étendue de l'exportation. Il faut sélectionner "Tout" pour sauvegarder tout le registre, sinon on peut se contenter de la branche sélectionnée.
La sauvegarde de la base de registre Windows peut s'avérer relativement longue, car il y a beaucoup de données à exporter. La sauvegarde donne lieu à un fichier REG qui fera facilement plusieurs centaines de Méga-octets.
En ligne de commande, et sans passer par PowerShell, la commande ci-dessous sert à importer un fichier REG pour réaliser une restauration :
REG IMPORT "mon-fichier.reg"
Ceci s'avère particulièrement utile si votre système est crashé, que vous souhaitez restaurer la base de registre Windows et que vous avez seulement accès à l'Invite de commande.