Accueil > Tutoriels & astuces > La base de registre sous Windows Vista

La base de registre sous Windows Vista

  • SOMMAIRE :
    Historique

    Structure et organisation
    Structure physique
    A quoi servent les clefs ?
    Outils
    Sauvegarde
    Nouveautés de Windows Vista
    Utilitaires

    Autre page : Principales clefs de la registry

  • Historique

La base de registre (registry) est née sous 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, …) puis les fichiers INI permettaient de stocker les paramètres des systèmes et applications.

Mais l’apparition d’OLE 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 lui suivent 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).

Chaque version de Windows apporte son lot de nouveautés et permettent de découvrir tous les avantages et bénéfices de la base de registre (Plug and Play, stratégies systèmes, profils utilisateurs, …).

  • Structure et organisation

La base de registre est divisée en deux parties : HKEY_LOCAL_MACHINE et HKEY_USERS, désignées par la suite HKLM et HKCU.Les autres branches sont en réalité des liens vers des sous répertoires de ces deux clefs.

HKEY_CLASSES_ROOT (HKCR) : il s’agit de la fusion de HKLMSoftwareClasses et HKCUSoftwareClasses (priorité à HKCU).

HKEY_CURRENT_USER : il s’agit de HKUSID de l’utilisateur

HKEY_CURRENT_CONFIG : il s’agit de HKLMSystemCurrentControlSetHardware ProfilesCurrent

Regedit : arborescence
  • Structure physique

La base de registre est une méthode de stockage hiérarchiques (et sécurisée depuis Windows NT 4) de paramètres.

Physiquement ce sont des fichiers, appelés ruches (hives) :

HKLM est stocké dans %SYSTEMROOT%System32Config, les fichiers ne possèdent pas d’extension :HKLMBCD00000000, représenté par bcd-template
HKLMComponents ???????
HKLMSAM, représenté par les fichiers sam et sam.log
HKLMSOFTWARE, représenté par software, software.log et software.sav(créé pendant l’installation)
HKLMSYSTEM : system, system.log
HKLMHARDWARE est uniquement chargé en mémoire (Plug and Play)
HKLM Vista
HKU est stocké dans différents endroits :HKU.DEFAULT, est stocké dans %SYSTEMROOT%System32Configsystemprofile, sous le nom ntuser.dat

Les autres branches sont stockés dans chaque profil utilisateur :

HK
HKUSID est dans %USERPROFILE%Ntuser.dat
HKUSID_Classes est dans
%USERPROFILE%Local SettingsApplication DataMicrosoftWindowsUsrClass.Dat

Ces fichiers sont bien entendus cachés par défaut.La sécurité est appliquée sur certaines clefs, vous pouvez visualiser celle ci en utilisant le composant Modèle de sécurité dans la MMC.

  • Clefs utiles

Vous trouverez dans cette page la liste des principales clefs et valeurs de la base de registre.

  • UAC et Virtualisation

Une des grandes nouveautés de Windows Vista est UAC : en résumé UAC est un ensemble de service dont l’objectif est de sécuriser l’utilisation du PC. Ainsi une application non marquée pour Windows Vista (l’application, pour être marquée, doit s’annoncer au moyen d’un manifest qui décrira les droits nécessaire à son exécution ou installation).

Si une application inconnue essaie d’écrire dans certains dossiers et dans HKLM, alors Vista ne la bloquera pas mais « virtualisera » les accès : au lieu d’écrire dans HKLMSoftware, les paramètres seront enregistrés dans HKCU.

  • Outils

ATTENTION : Modifier la base de registre n’est pas sans risque, il est conseillé de sauvegarder le registre avant de faire des modifications !!!

1. Le plus connu est REGEDIT, un outil permettant presque de faire -presque- toutes les opérations sur la base de registre :
_ visualiser les clefs et valeurs
_ exporter les clefs et valeurs :
soit sous la forme de fichier REG (au format NT4 / ANSI ou 2000 / Unicode)
soit sous la forme de ruches (hive en Anglais)
soit sous forme de texte (peu utile en fait, les fichiers REG sont parfaitement lisibles)
_ importer les fichiers pour modifier des valeurs, le moyen le plus simple étant de double cliquer sur un fichier REG, et si vous voulez éviter le message de confirmation alors faites ceci : regedit /s fichier.reg
_ visualiser ou modifier les droits sur la base de registre.

Pour supprimer une clef, il suffit d’ajouter un-devant la clef : exemple : [-HKEY_CURRENT_USERSoftware....]

Attention : REGEDIT n’est pas un outil de sauvegarde de la base de registre, en effet certaines clefs sont inaccessibles, même aux administrateurs (HKLMSAM et HKLMSecurity par exemple). D’autre part importer un fichier REG n’efface pas les clefs qui ne s’y trouvent pas… Consultez le chapitre Sauvegarde.

2. REG.EXE :
REG est un outil de ligne de commande qui permet de créer, ajouter, supprimer, copier, sauvegarder, visualiser, comparer, modifier, exporter des clefs ou des branches de la base de registre.
Syntaxe :
REG Opération [liste_paramètres]
Opération : [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMPARE | EXPORT | IMPORT ]
De plus REG.EXE génère un code de retour : (à l’exception de REG COMPARE), 0 – Réussite, 1 – Échec.

Nouveau : REG /FLAGS : premet de consulter ou modifier l’état de virtualisation de la clef
Exemple :
reg flags hklmsoftwaremicrosoft query

HKEY_LOCAL_MACHINEsoftwaremicrosoft
REG_KEY_DONT_VIRTUALIZE: CLEAR
REG_KEY_DONT_SILENT_FAIL: CLEAR
REG_KEY_RECURSE_FLAG: CLEAR
Opération réussie.

Voici un exemple de batch, qui vérifie la présence d’un flag, si celui ci est présent, certaines clefs de la base de registre sont nettoyées (les historiques), sinon le programme est installé et le flag est ajouté à la base de registre.

@Echo Off

Reg QUERY HKCUSoftwareExample /v Flag >nul

goto %ERRORLEVEL%

:1

Echo Installation du logiciel pour la premiere fois.
serveurOfficeSetup.exe /settings setup.ini

Reg ADD HKCUSoftwareExemple /v Flag /t REG_DWORD /d « 1″
goto CONTINUE

:0

Echo Logiciel deja installe, passage a la suite.

:CONTINUE

Set HKMS=HKCUSoftwareMicrosoft
Set HKCV=HKCUSoftwareMicrosoftWindowsCurrentVersion

REM Efface les historiques

Reg DELETE %HKCV%ExplorerMenuOrder /f
Reg DELETE %HKCV%ExplorerRunMRU /f
Reg DELETE %HKCV%ExplorerRecentDocs /f
Reg DELETE %HKCV%ExplorerComDlg32LastVisitedMRU /f
Reg DELETE « %HKMS%Search AssistantACMru » /f
Reg DELETE « %HKMS%Internet ExplorerTypedURLs » /f

3. Fichiers .INF :
Voici la méthode la plus puissante de modification de la base de registre. Les fichiers INF (qu’on associe souvent aux drivers) permettent de modifier la base de registre (et beaucoup plus encore) de manière puissante, et claire.
Les principales commandes sont AddReg, DelReg, BitReg.

Pour exécuter les fichiers INF automatiquement depuis un batch, il faut lancer la commande suivante : RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:/WINDOWS/INF/SHELL.INF
Ceci exécutera le paragraphe [Install].
La valeur 132 peut varier suivant les règles suivantes :

128 Le chemin de l’installation est le chemin du fichier INF.
+0 Ne jamais redémarrer le PC.
+1 Toujours redémarrer le PC.
+2 Toujours demander avant de redémarrer le PC.
+3 Redémarre le PC si nécessaire sans demander.
+4 Si un redémarrage est nécessaire, demander avant de redémarrer le PC.

Par exemple :

[Version]
Signature= »$CHICAGO$ »

[DefaultInstall]
DelReg=DelReg

[DelReg]
HKCU, »SoftwareMicrosoftWindowsCurrentVersionExtSettingsXXXXXX »

Consultez le lien suivant, pour plus de détails : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/setupapi/setup/installhinfsection.asp

4. Fichiers REG :
Si l’environnement est homogène (Windows XP / 2003 et Vista) il est souhaitable de faire des fichiers REG Unicode (format par défaut de REGEDIT), l’en tête du fichier est alors : Windows Registry Editor Version 5.00

Pour insérer des caractères spéciaux :

: faire saut de ligne : faire n
 » : faire «  retour : faire r
  • Sauvegarde

Non REGEDIT n’est pas un outil de sauvegarde de la base de registre, en effet certaines clefs sont inaccessibles, même aux administrateurs (HKLMSAM et HKLMSecurity par exemple). D’autre part importer un fichier REG n’efface pas les clefs qui ne s’y trouvent pas, regedit fusionne les clefs existantes avec celles que vous importez depuis un fichier REG, ce n’est pas pas suffisant.

Voici une sélection d’outils :

NTBACKUP : tout simplement, en sélectionnant la registry dans System State.

Les points de restauration contiennent notamment les ruches. Celle ci sont sauvegardées dans un dossier
Volume Information_restore{}RPxxxsnapshot
sous les noms suivants :
_REGISTRY_MACHINE_SAM
_REGISTRY_MACHINE_SOFTWARE
_REGISTRY_MACHINE_SYSTEM
_REGISTRY_MACHINE_SECURITY

Il existe aussi des outils spécialisés, dont ERUNT qui se trouve ici : http://home.t-online.de/home/lars.hederer/erunt/

  • Utilitaires

RegSnap : Pour analyser les changements dans la base de registre : http://www.webdon.com/regsnap/default.asp

RegView : pour visualiser et éditer les fichiers REG : http://www.utils32.com/regview.htm

Source : toutwindows

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Amis et partenaires : Prix-photo - Astuces-Internet - FAQ Windows Vista - Promo photos - Colocation - Freewares et Tutos - Forum-seven
Optimiser Windows - Seb's guide - Aide Informatique - Astuces-nana - WoW Videos - Windows-Seven - Photo - Pinnula - Forum informatique - Comparateur de prix - Astuces bebe - Tirage photo - Video Tutorial - Gadget Windows Seven - Cashback