Introduction

1.1 Historique

Apparu pour la première fois dans Windows 3.1, sous le nom de base de registre, cet ensemble est apparu pour faciliter l’administration et centraliser les paramètres du système d’exploitation.

Depuis, le registre a connu quelques modifications comme le changement de forme de stockage sur le disque dur, ou le changement de nom : la base de registre est devenue le registre Windows.

De ce fait la formation à l’exploration du Registre Windows pour la version Windows 7, reste applicable sur les versions antérieures du system d’exploitation.

1.2 Le rôle du registre

Le registre Windows est, comme son nom l’indique, un support conservant la quasi-intégralité des paramètres du système d’exploitation Microsoft Windows. Il centralise et facilite l’administration des machines d’un parc informatique.

1.3 Les risques de la perte ou l’altération du Registre

Etant le seul support de configuration Windows, si le registre est trop endommagé et ne peux être récupéré. Cela entraine une réparation par la réinstallation du registre avec le DVD Windows voire la réinstallation complète du système d’exploitation.

La protection du registre est alors cruciale.

1.4 Configuration requise et utilisée

Au long de cet article nous avons utilisé comme seul système d’exploitation Windows 7 et parce qu’ils ont les mêmes bases, tout ce qui est dit ici est valable pour Windows Server 2008 R2.

Vous pourrez cependant trouver de nombreuses similitudes avec les systèmes d’exploitation comme Windows Vista et Windows Server 2008.

A première vue, l’édition de ce dernier parait très complexe, mais nous verrons ensemble que l’architecture de la base de registre est en réalité très simple à assimiler.

Pour naviguer dans le registre nous nous servirons de l’éditeur intégré dans Windows : regedit.

Comment fonctionne le Registre ?

2.1 Son architecture

2.1.1 Les poignées de clés

Dans le registre Windows, les données sont organisées dans ce que l’on appelle des HKEY. HKEY signifiant « handle key » soit « poignée de clés ». Ces poignées de clés sont comparables aux dossiers racines du registre.

Il existe six poignées de clés nommées HLEY_{nom} soit : HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS et HKEY_CURRENT_CONFIG et HKEY_PERFORMANCE_DATA.

On peut constater que le nom de ces dernières est très explicite.

2.1.1.1 HKEY_USERS

Cette poignée de clés est autonome, elle contient les paramètres de chaque utilisateur. Les utilisateurs se présentent sous la forme S-X-X-XX. Les paramètres couvre les taches planifiées, le thème, le panneau de configuration, les variables d’environnement et d’autres paramètres comme le réseau, les imprimantes et paramètres d’applications.

2.1.1.2 HKEY_CURRENT USERS

Cette poignée de clés est un mappage vers la clé de l’utilisateur qui a ouvert la session dans HKEY_USER.

2.1.1.3 HKEY_LOCAL_MACHINE

Cette poignée de clés est autonome, elle contient les paramètres liés à la machine. L’intégrité des données de cette clé est donc extrêmement importante ! Nous pouvons trouver ici les paramètres matériels sur lequel se base le système d’exploitation, les paramètres d’application et du système d’exploitation.

2.1.1.4 HKEY_CLASSES_ROOT

Cette poignée de clés est un mappage vers les clés HKEY_LOCAL_MACHINE\SOFTWARE\Classes et HKEY_CURRENT_USER\Software\Classes. On pourra y trouver des paramètres d’application et surtout les propriétés d’ouverture de fichier suivant leurs extensions.

2.1.1.5 HKEY_CURRENT_CONFIG

Cette poignée de clés est un mappage vers la clé HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles.

2.1.1.6 HKEY_PERFORMANCE_DATA

Cette poignée de clés est invisible. Elle contient les informations des performances du noyau NT et de ses services. Ces données, bien qu’invisible dans l’éditeur de registre sont visible dans le moniteur de performances.

2.1.2 Les clés (et sous-clés) de registre

Les clés de registres sont comparables à des fichiers. Elles sont stockées dans les HKEY et comportent toujours une valeur par défaut.

Des clés peuvent stocker d’autres clés. Nous pourrons appeler ces dernières des sous-clés.

Enfin les clés peuvent êtres mappées en poignée de clés pour apparaitre dans la racine du registre.

Ainsi « Hardware Profiles », est une sous clé de « HKEY_LOCAL_MACHINE\System\CurrentControlSet » et la poignée de clé mappée « HKEY_CURRENT_CONFIG ».

2.1.3 Les valeurs

Il existe une dizaine de types de valeurs, se nomment REG_{nom} et chacune d’entre elles à un encodage ou une taille spécifique.

2.1.3.1 REG_SZ

Cette valeur est une valeur string, donc chaine de caractères. C’est la valeur la plus utilisée dans les clés. De plus, chaque clé a une valeur string « par défaut »

2.1.3.2 REG_EXPAND_SZ

Cette valeur est une valeur expand string, donc chaine de caractères étendue. Elle permet de stocker des variables. Nous pouvons donc utiliser, par exemple, la variable %APPDATA% afin d’accéder au répertoire AppData suivant l’utilisateur.

2.1.3.3 REG_MULTI_SZ

Cette valeur est une valeur multi strings, donc chaine de caractères multiple. Elle permet de stocker plusieurs chaines de caractère.

2.1.3.4 REG_BINARY

Cette valeur est une valeur binary, donc binaire. Elle permet de stocker n’importe quelle donnée en binaire.

2.1.3.5 REG_DWORD

Cette valeur est une valeur dual word, donc deux mots. Un mot occupant 2 octets, cette valeur supporte donc jusqu’à 4 octets soit 32 Bits.

2.1.3.6 REG_QWORD

Cette valeur est une valeur quad word. Avec la même logique que nous avons utilisé pour la valeur DWORD, nous en déduisant que la valeur supporte jusqu’à 64 Bits. Attention, l’utilisation de cette valeur nécessite un système d’exploitation 64 Bits.

2.1.3.7 Divers

Il existe d’autres valeurs, que nous ne pourrons pas traiter avec l’éditeur de registre, comme REG_NONE (valeur nulle), REG_LINK (lien vers une autre clé), REG_RESOURCE_LIST (utilisé pour lister le matériel), REG_FULL_RESOURCE_DESCRIPTOR (utilisé pour décrire le matériel).

Nous venons de découvrir l’architecture du registre Windows. Mais il comment ceci est stocké sur le disque dur ?

2.2 Où est-il stocké ?

2.2.1 Structure des ruches

Les clés et poignées de clés sont stockées dans des ruches. Ces ruches sont composées de bloc de 4096 octets. Le premier octet étant appelé Bloc de Base, il comporte des informations d’identification, de datation, de version, de somme de contrôle de sécurité et enfin un fichier interne à la ruche.

Les blocs suivant stockent les cellules, qui elles même stockent les données du registre.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\Présentation1\Diapositive1.jpg

Il existe cinq types de cellules :

Type de cellule

Contenu

Clé

Clé, nom de la clé, date de la dernière modification, index des sous-clés et signature.

Valeur

Valeur, type de valeur, sous-clés et signature.

Liste sous-clé

Liste des sous-clés de la clé parente et liste des cellules indexées.

Liste valeur

Liste valeur de la clé parente et liste des cellules indexées.

Description sécurité

Signature et compteur de clé utilisant cette description.

Les clés, sous-clés, valeurs et autres sont donc enregistrés dans ces cellules et qui sont stockés dans les ruches.

2.2.2 Liaison aux ruches

Les ruches sont, elles, stockées dans des fichiers. Pour trouver quelles ruches sont stockées dans les fichiers, une clé a comme valeur leur position : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Hivelist  Remarque : les noms de clés sont très explicites et en règle générale les noms comportant le mot « Current » sont des clés mappées.

La liste des fichiers nous est alors présentée.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\Sans titre.png

Le \Device\HarddiskVolume2 est le deuxième volume. Sur Windows 7, le premier est un volume de 100Mo, non monté, utilisé pour garantir l’intégrité des fichiers. Le second volume est alors le Volume C: .

Nous pouvons donc ici, voir les fichiers de ruches.

Visualiser et éditer le contenu du Registre

3.1 Naviguer dans le Registre

Windows possède un éditeur de registre nommé regedit.exe. Vous pouvez l’exécuter depuis l’outil d’exécution Windows en entrant regedit ou regedit.exe.

L’éditeur de registre se présente sous une forme assez proche de l’explorateur Windows. Les poignées de registres (HKEY) sont affichées comme des dossiers racines, les clés, des dossiers et les valeurs des fichiers.

3.2 Editer le Registre

Attention, toute édition du registre peut entrainer des dégâts, réversible seulement après avoir fait les sauvegardes nécessaires, sauvegardes que vous pouvez consulter au quatrième chapitre.

En double-cliquant sur une valeur d’un clé, une fenêtre permet d’éditer celle-ci.

Il est possible, par un simple clic droit dans une clé, de créé une clé dans cette dernière (donc une sous-clé), ou ajouter des valeurs.

Sauvegarder et Restaurer le Registre

4.1 Avec système d’exploitation fonctionnel

4.1.1 Par restauration du système

A chaque modification significative des paramètres systèmes, donc valeurs dans le registre, Windows effectue un point de restauration. Ce point de restauration effectue une sauvegarde complète du registre.

En cas d’incident mineure, vous pouvez restaurer votre registre en lançant la « restauration du système » soit l’application restore.exe. Il vous suffit de choisir la date antérieure la plus proche de celle de l’accident pour restaurer votre registre sans difficultés.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\HEHE.png

4.1.2 Par import de clés de registre

Il est aussi possible d’importer simplement l’intégralité des clés et valeur de registre.

Mais cela nécessite que les clés de registre aient été exportées auparavant. Pour cela effectuez clic-droit sur l’entité Ordinateur puis en sélectionnant « Exporter » vous avec une copie des clés de registre.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\HEHE.png

Le fichier créé pourra être intégré au registre actuel en effectuant un import. Pour cela dans l’éditeur de registre Fichier > Importer.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\AHA.png

4.2 Sans système d’exploitation fonctionnel

4.2.1 Par restauration du système

Cependant si le registre est corrompu au point de ne plus pouvoir permettre à Windows 7 de démarrer, vous pouvez toujours booter sur la partition d’intégrité que Windows 7 prend soit d’installer lors son installation.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\Windows 7 x64-2010-09-17-00-54-03.png

Si vous n’avez pas la possibilité de booter depuis cette partition vous pouvez toujours booter sur un DVD Windows 7 et sélectionner la réparation de votre système d’exploitation.

Dans les deux cas vous poursuivrez votre opération avec une fenêtre « options de récupération système ».

Il n’y a plus qu’à sélectionner « Restaurer le système » et le tour est joué.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\Windows 7 x64-2010-09-17-01-02-33.png

Si cependant la restauration n’est pas possible il reste une dernière possibilité.

4.2.2 Par import de clés de registre

Pour importer des clés de registre il faut toutefois que les clés aient été exportées au préalable (voir plus haut). Il suffit d’exécuter l’invite de commande et d’exécuter regedit.exe. Vous pourrez importer la base de registre en effectuant fichier > importer.

Description: C:\Users\Mathieu.SYSTEMS-MX\Desktop\Windows 7 x64-2010-09-17-01-28-36.png

Paramétrer Windows de A à Z

5.1 De l’apparence de Windows…

Nous avons vu précédemment que le registre contient l’intégralité des paramètres de Windows. Nous pouvons donc paramétrer pratiquement tout ce que nous voulons. Ainsi nous allons paramétrer, pour commencer, l’interface de graphique de Windows.

5.1.1 User ou Local Machine ?

Le registre possède deux poignées de clés (HKEY) autonome éditables, HKEY_USERS et HKEY_LOCAL_MACHINE. La personnalisation des thèmes Windows et spécifique à un utilisateur. On en déduit donc que la poignée de clé à dans laquelle nous devons aller sera HKEY_USERS.

Je souhaite avoir dans la partie droite de mon menu démarrer les outils d’administration Windows. Pour trouver l’emplacement de la clé il faut être méthodique : quel sera le programme impacté ? De quel éditeur ? De quel type ? Le menu démarrer est dépendant de l’explorateur Windows. L’explorateur est un composant de base de Windows. Windows est un logiciel.

5.1.2 Mais où est la clé ?

Nous pouvons donc en déduire le chemin suivant : Windows est un logiciel : HKEY_CURRENT_USER\SoftwareL’explorateur est un composant de base de Windows : HKEY_CURRENT_USER\Software\WindowsLe menu démarrer est dépendant de l’explorateur Windows : HKEY_CURRENT_USER\Software\Windows\CurrentVersion\ExplorerAu final la clé sera : HKEY_CURRENT_USER\Software\Windows\CurrentVersion\Explorer\Advanced

En cliquant sur la clé nous avons une liste de valeur DWORD (donc 32 Bits)

Une valeur se nomme StartMenuAdminTools. Il suffit de passer sa valeur de 0 (non en booléen) à 1 (oui en booléen) pour activer la fonctionnalité.

Afin d’appliquer les modifications sur cet utilisateur, il faut redémarrer la session.

5.2 … au cœur de Windows

Cette fois ci, je veux changer les serveurs de temps de mon ordinateur.

5.2.1 User ou Local Machine ?

Nous allons changer des paramètres propres à l’ordinateur. Changer de session ne changera en rien les paramètres. Il s’agira d’ici d’une clé situé dans HKEY_LOCAL_MACHINE.

5.2.2 Mais où est la clé ?

Nous pourrions trouver la clé en utilisant la méthode vu précedement mais cette fois-ci nous effectuerons une recherche. Nous allons donc chercher, dans HKEY_LOCAL_MACHINE, la valeur actuelle du serveur de temps. Par défaut celui-ci est time.windows.com.Le résultat de la recherche nous mène donc à la clé HKEY\LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers

La clé Servers a 5 valeurs nommées de 1 à 5, le système d’exploitation va utiliser le serveur qui a le nom de valeur le plus bas. On modifiera donc la valeur nommé 1 pour lui mettre notre serveur de temps : ntp.monserveur.local par exemple.

5.3 En plus

Il n’y a pas que Windows qui est paramétrable dans le registre. Il y a évidemment Windows Media Player, Internet Explorer et les autres applications Windows, mais on peut aussi y trouver d’autres applications tierces.

Stratégie de groupe et registre

Lorsqu’un ordinateur rejoint un domaine, il est automatiquement contraint à la stratégie de groupes. Ces stratégies de groupe permettent de paramétrer toutes les fonctionnalités de Windows et ses applications. Les stratégies de groupe sont relative a deux valeurs, la machine et l’utilisateur… Et si les stratégies de groupe opéraient sur le registre ? C’est effectivement le cas. Lorsque les GPO se mettent a jour sur les PC clients, l’exécutable gpudate effectue en réalité un import dans le Registre Windows.

Conclusion

Nous venons de voir que le registre Windows a une architecture particulière, stocké dans des fichiers de ruches, et ne comportant que des clés, ce dernier et le gardien des paramètres de Windows. Il est donc très important de protéger ce dernier contre les éventuelles incident humain et altérations de données. De ce fait, bien que Windows sauvegarde votre configuration dès que celle-ci est attente avec une point de restauration, il n’est pas non-négligeable de sauvegarder ce dernier sur un support amovible.

Si nous comparons l’organisation des paramètres Windows et Linux, la différence majeure est à leur forme de stockage et d’accessibilité. Alors que linux stocke ses configurations dans des fichiers, permettant aux utilisateurs expérimenter de s’attaque plus facilement dans les configurations de leur system d’exploitation, le registre Windows est le meilleur pour configurer et administrer les machines d’un parc Windows et donc le meilleur ami de l’administrateur systèmes et réseaux.