Logo ToutWindows.com

TOUT SUR LA BASE DE REGISTRE 

  Sommaire  |  Blog   |    www.MToo.net   |     Météo    |    Photos   |    Prestations    |    A propos  

   Retour accueil  


             Sommaire :
Menu

 

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, ...).

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 HKLM\Software\Classes et HKCU\Software\Classes (priorité à HKCU).

HKEY_CURRENT_USER : il s'agit de HKU\SID de l'utilisateur (voir ici l'explication sur les SID)

HKEY_CURRENT_CONFIG : il s'agit de HKLM\System\CurrentControlSet\Hardware Profiles\Current

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%\System32\Config, les fichiers ne possèdent pas d'extension :

HKLM\SAM, représenté par les fichiers sam et sam.log
HKLM\SOFTWARE, représenté par software, software.log et software.sav(créé pendant l'installation)
HKLM\SYSTEM : system, system.log
HKLM\HARDWARE est uniquement chargé en mémoire (Plug and Play)

 

HKU est stocké dans différents endroits :

HKU\.DEFAULT, est stocké dans %SYSTEMROOT%\System32\Config\systemprofile, sous le nom ntuser.dat

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

HKU\SID est dans %USERPROFILE%\Ntuser.dat
HKU\SID_Classes est dans
%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\UsrClass.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.

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

1. Le plus connu est REGEDIT, Windows XP permet enfin d'avoir un outil permettant presque de faire 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_USER\Software....]

Attention : REGEDIT n'est pas un outil de sauvegarde de la base de registre, en effet certaines clefs sont inaccessibles, même aux administrateurs (HKLM\SAM et HKLM\Security 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.

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 HKCU\Software\Example /v Flag >nul

goto %ERRORLEVEL%

:1

Echo Installation du logiciel pour la premiere fois.
\\serveur\Office\Setup.exe /settings setup.ini

Reg ADD HKCU\Software\Exemple /v Flag /t REG_DWORD /d "1"
goto CONTINUE

:0

Echo Logiciel deja installe, passage a la suite.

:CONTINUE

Set HKMS=HKCU\Software\Microsoft
Set HKCV=HKCU\Software\Microsoft\Windows\CurrentVersion

REM Efface les historiques

Reg DELETE %HKCV%\Explorer\MenuOrder /f
Reg DELETE %HKCV%\Explorer\RunMRU /f
Reg DELETE %HKCV%\Explorer\RecentDocs /f
Reg DELETE %HKCV%\Explorer\ComDlg32\LastVisitedMRU /f
Reg DELETE "%HKMS%\Search Assistant\ACMru" /f
Reg DELETE "%HKMS%\Internet Explorer\TypedURLs" /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.
En voici un exemple.

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,"Software\Microsoft\Windows\CurrentVersion\Ext\Settings\XXXXXX"

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) 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

Non REGEDIT n'est pas un outil de sauvegarde de la base de registre, en effet certaines clefs sont inaccessibles, même aux administrateurs (HKLM\SAM et HKLM\Security 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{<un ID>}\RPxxx\snapshot
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/

Il n'y a plus de limite de taille.

HKU\SID_Classes : permet de stocker des Classes par user (associations de fichiers par exemple)

Valeur PerceivedType dans HKCU\.ext, permet de regrouper les fichiers selon leur nature (image, vidéo, ...)

   ERUNT pour sauvegarder la registry :  http://home.t-online.de/home/lars.hederer/erunt/

   NTREGOPT pour défragmenter la registry : http://home.t-online.de/home/lars.hederer/erunt/

registry tracker registry tracking registry analyzerRegSnap : 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

 

 

 
    
  Sommaire  |  Blog   |    www.MToo.net   |     Météo    |    Photos   |    Prestations    |    A propos  

   Retour accueil