www.lgeoffrin.c.la |
![]() |
![]() |
![]() |
|
Q. Qu'est-ce que le Registre?
A. A l'origine, Windows se servait de fichiers .ini, ce qui posaient de nombreux
problèmes ( limitation de la taille, une organisation non standardisée, des temps
d'accès longs, pas de support réseau etc). Windows 3.1 se servait d'un registre stocké
dans reg.dat, que l'on pouvait consulté avec regedit.exe et qui était utilisé par DDE,
OLE et le Gestionnaire de fichier. Windows NT met, pour sa part, le Registre au coeur de
NT; c'est dans le Registre que sont stockées presque toutes les informations, réparties
dans des sous-arbres, chacun commençant par HKEY_ pour indiquer qu'il s'agit d'un handle
pouvant être utilisé par un programme.
HKEY_LOCAL_MACHINE | Contient des informations sur la configuration matérielle ainsi que les logiciels installés. |
HKEY_CLASSES_ROOT | Il s'agit d'un lien vers HKEY_LOCAL_MACHINE\SOFTWARE\Classes et contient des liens entre les applications et les types de fichiers ainsi que des informations sur OLE. |
HKEY_CURRENT_CONFIG | Il s'agit d'un lien vers HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current et contient des informations sur la configuration courante. |
HKEY_CURRENT_USER | Il s'agit d'un lien vers HKEY_USERS\<SID of User> et contient des informations sur les utilisateurs actuellement connectés (environnement, connections réseaux, imprimantes etc.) |
HKEY_USERS | Contient des informations sur les profiles utilisateurs actuellement chargés, y compris "default" qui est le profil utilisateur par défaut. |
Chacun des sous-arbres a un certain nombres de clés, qui ont aussi de nombreuses sous-clés. Chaque clé/sous-clé peut avoir plusieurs valeurs composées de trois parties :
Q. Quels sont les fichiers qui constituent le Registre, et où sont-ils localisés?
A. Les fichiers qui constituent le Registre sont dans le répertoire %systemroot%/system32/config :
Il y a aussi d'autres fichiers avec des extensions différentes :
Q. Comment limiter l'accès à l'éditeur de Registre?
A. Avec l'éditeur de Registre (regedt32.exe)
Q. Quelle est la taille maximum du Registre?
A. La taille maximum est de 102MB, toutefois c'est un peu plus complexe que cela.
L'entrée de Registre qui contrôle la taille maximum du Registre est
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\RegistrySizeLimit. Par défaut, cette
entrée n'existe pas, il faut donc la créer manuellement :
La taille minimale est de 4 MB, si une valeur inférieure est donnée dans le registre,
elle sera "forcé" à 4MB.
Le maximum représente 80% du paged pool (qui a un maximum de 128 Mo, d'où la limite de
102 Mo). Si aucune valeur n'est saisie, la taille maximum est de 25% du paged pool. Le
paged pool est une zone de la mémoire physique utilisée pour des données sytèmes qui
peut être écrite sur disque lorsqu'elles ne sont pas utilisés.
Il faut noter que la RegistrySizeLimit est un maximum, et non une allocation, et saisir une valeur élevée ne réserve pas d'espace et ne garanti donc pas que l'espace sera disponible.
Cela peut aussi se configurer avec l'applet System dans le Control Panel, choisissez l'onglet Performance. Il vous faudra redémarrer.
Pour davantage d'informations, voir l'article Q124594 dans la Knowledge Base.
Q. Faut-il utiliser REGEDIT.EXE ou REGEDT32.EXE?
A. Vous pouvez utiliser les deux. REGEDIT a quelques limitations, la plus notable étant qu'il ne supporte pas tous les types de données comme REG_MULTI_SZ, si vous éditez ce type de donnée avec REGEDIT, il modifiera son type.
REGEDIT.EXE est basé sur la version Windows 95 and a des fonctionnalités que REGEDT32.EXE n'offre pas (comme la recherche). En général, REGEDIT.EXE est plus agréable à utiliser; il montre aussi la position courante ,dans le Registre, dans le bas de la fenêtre.
Q. Comment restreindre l'accès à un Registre d'une machine distante?
A. L'accès à un Registre distant est contrôlé par l'ACL sur la clé winreg.
Il est possible de rendre certaines clés accessible même si l'utilisateur n'a pas d'accès en éditant la valeur HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg\AllowedPaths\Machine (utiliser regedt32). Vous pouvez ajoutez des chemins à cette liste.
Voir l'article Q153183 à l'adresse http://www.microsoft.com/kb/articles/q153/1/83.htm
Q. Comment connaître les modifications apportées au Registre?
A. Avec regedit.exe, il est possible d'exporter des parties du registre :
Q. Comment supprimer une valeur/clé du Registre à partir de la ligne de commande?
A. Avec l'utilitaire (du Windows NT Resource Kit Supplement 2) REG.EXE, vous pouvez supprimez une valeur du Registre à partir de la ligne de commande ou d'un fichier de commande :
reg delete HKLM\Software\test
Supprime la valeur HKEY_LOCAL_MACHINE\Software\test. Après avoir tapé cette commande, vous devrez confirmez la suppression de cette valeur par Y. Pour ne pas avoir à confirmer, ajoutez /f à la commande :
reg delete HKLM\Software\test /f
La liste complète des codes à utiliser avec REG DELETE sont :
HKCR | HKEY_CLASSES_ROOT |
HKCU | HKEY_CURRENT_USER |
HKLM | HKEY_LOCAL_MACHINE |
HKU | HKEY_USERS |
HKCC | HKEY_CURRENT_CONFIG |
Pour supprimer une entrée sur une machine distante, ajoutez le nom de la machine, \\<machine name> :
reg delete HKLM\Software\test \\johnpc
Q. Comment auditer les modifications apportées au Registre?
A. Avec regedt32.exe, il est possible d'auditer certaines parties du Registre. La notion d'audit étant "sensible", vous voudrez peut-être un avertissement aux utilisateurs les informant que les changements sont audités.
Vous devrez vérifiez que "Auditing for File and Object access" est activé (avec User Manager - Polices - Audit).
Pour voir les infomations, utiliser Event Viewer et regarder dans les informations de
Security.