# Base de registre

La base de registre (BDR) est une base de données utilisée par le système d'exploitation Windows. Elle contient les données de configuration du système d'exploitation et des autres logiciels installés désirant s'en servir. Depuis 1998, Microsoft utilise plutôt le terme Registre Windows pour parler de cette base de données.
Le plus souvent, les utilisateurs modifient la base de registre de façon transparente, via une interface graphique. Il existe des cas où aucune interface graphique n'est prévue : il est alors nécessaire d'utiliser l'outil Regedit, mais dans ce cas, il n'y a pas de garde-fou, le logiciel ne vérifie aucun des paramètres modifiés par l'utilisateur, qui peut donc endommager le système.

## Historique
### Des fichiers .ini de Windows 3.x à la base de registre actuelle

La base de registre est apparue sur Windows 3.1, sous l'appellation « Base de données de registration », mais est alors très restreinte et sert exclusivement à associer un fichier (une extension de fichier) avec l'application qui permet de l'éditer ou le visualiser. En 1993, avec la première version de NT, elle est étendue et comprend un ensemble de clés hiérarchiques et de valeurs. La base de registre est enregistrée dans plusieurs fichiers appelés ruches (hives).
La base de registre a ensuite été reprise en 1995 dans Windows 95, sous l'appellation « Base de registres ». Cette base de données de configuration remplace la plupart des multiples fichiers d'extension .ini de Windows 3.x et de ses prédécesseurs (NB : en 2005, l'exception la plus connue est boot.ini, etc.).
Depuis Windows 98 et Windows 2000, elle porte son appellation actuelle, « Registre Windows » (ou « Registre système »).

### De la SAM de NT à Active Directory de Windows 2000

L'une des parties les plus importantes de la base de registre sous Windows NT et ses successeurs est la SAM (Security Account Manager). Elle contient notamment les mots de passe ; sous Windows NT, par défaut, les mots de passe n'étaient pas chiffrés.
Sous Windows NT 4, la base de registre servait à la fois pour les utilisateurs locaux et pour les contrôleurs de domaine. À partir de Windows 2000, les contrôleurs de domaine sont fondés sur Active Directory et non plus sur la SAM.

### L'utilitaire syskey de Microsoft pour sécuriser la SAM

La sécurité par défaut de la SAM sous Windows NT était particulièrement faible. À partir du pack 3 de Windows NT, l'utilitaire « syskey » de Microsoft permet de renforcer le chiffrement des mots de passe.
Le hachage des mots de passe était fondé initialement sur MD4 (Message Digest), puis dans les dernières versions, Microsoft est passé à MD5.
À partir de Windows 2000 il est activé sur toutes les installations et est configuré pour enregistrer la clé de démarrage dans le registre.
En 2013, l'utilitaire « syskey » est toujours utile dans les dernières versions de Windows(Windows Server 2012, Windows 8.1, Windows 10) et l'option de l'enregistrement de la clé de démarrage sur une disquette toujours présente.

### Le rdisk de NT et sa disparition dans les versions ultérieures

Le rdisk.exe de Windows NT 4 permettait de faire une sauvegarde du registre sur une disquette 1.44 Mo (une seule...).
Cet utilitaire n'est plus inclus dans les versions ultérieures de Windows car la taille de la base de registre est devenue supérieure à la taille de la disquette.
Pour sauvegarder la base de registre, il est possible d'utiliser ntbackup de Microsoft (copyright Microsoft et Veritas Software Corporation), en cochant la case "Toutes les informations sur cet ordinateur" ; l'extension de fichier est ".BKF" pour le fichier de sauvegarde. Par défaut, le périphérique de sortie est la disquette (1,44 Mo), ce qui est trop petit ; il faut indiquer un autre périphérique (clé USB de 1 Go ou autre).

### Utilitaire regedit

Jusqu'à Windows 2000, il y avait 2 utilitaires légèrement différents regedit et regedt32 pour modifier la base de registre. regedit était plus convivial, alors que regedt32 permettait de faire des modifications plus pointues.
Avec Windows XP, Microsoft a unifié les 2 utilitaires : désormais, les 2 commandes appellent le même outil.
L'interface graphique actuelle de regedit de Microsoft permet de :
* Modifier la base de registre
* D'attribuer des droits spécifiques sur les clés de la base registre; l'interface graphique pour modifier les droits est semblable à celle qui permet de modifier les droits NTFS.
L'éditeur de registre ressemble visuellement beaucoup à l'explorateur Windows et fonctionne similairement au gestionnaire de fichiers Windows. À gauche de la fenêtre se trouvent les clés ; les sous-clés sont représentées par des triangles attachés aux différentes clés principales. Lorsque vous cliquez sur l'une des clés, les valeurs correspondantes s'affichent à droite de la fenêtre.
Le paramétrage de cet outil pour un utilisateur est configuré principalement dans
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites
* HKEY_CURRENT_USER\Software\Microsoft\regedt32

### Utilitaire regmaid et scanreg de Microsoft

Les utilitaires "regmaid" et "scanreg" de Microsoft avaient été créés pour résoudre des problèmes spécifiques. Ils sont a priori devenus obsolètes avec les dernières versions de Windows.

## Répertoire de la base de registre
### Sous Windows Server 2003, Windows XP, Windows Server 2000 et NT

Par défaut, c'est dans le répertoire %SystemRoot%\System32\Config que sont stockés les fichiers de ruche suivants :
* Components
* default
* SAM (Security Account Manager)
* Security
* Software
* System
Les informations concernant un utilisateur sont stockées dans le répertoire correspondant à la variable d'environnement %UserProfile%. Par exemple, pour un utilisateur dont l'identifiant est « dupont », la valeur %UserProfile% sera par défaut "C:\Documents and settings\dupont" sur les installations des versions familiales ou Pro de Windows XP; le nom du répertoire peut cependant être différent car les identifiants utilisateurs peuvent changer ou parce qu'un compte utilisateur a été migré, ou en raison de limitations du système de fichiers utilisé, ou parce qu'un administrateur système a décidé de stocker les profils utilisateurs dans un autre dossier ou un autre disque ou volume réseau. Il y a un fichier de ruche NTUSER.DAT par utilisateur.
Le répertoire %SystemRoot%\repair contient une sauvegarde de la base de registre ; elle est utilisée par Windows pour certains cas de figure. De plus, sous Windows XP, la restauration du système les stocke dans le répertoire \System Volume Information du disque système.
Des fichiers journaux (extension .LOG) et des fichiers de sauvegarde (extension .SAV) sont utilisés en interne par Windows pour pallier des coupures de courant intempestives ou toute autre forme d'arrêt brutal. Les versions plus récentes de Windows ajoutent des fichiers de suivi et validation des transactions.
Les emplacements physiques des différentes ruches utilisées lors du dernier démarrage sont indiqués sous la clé hivelist dans [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\].
Voici un exemple-type du contenu de hivelist :
| Nom | Type | Données |
| \REGISTRY\MACHINE\BCD00000000 | REG_SZ | \Device\HarddiskVolume1\EFI\Microsoft\Boot\BCD |
| \REGISTRY\MACHINE\SYSTEM | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SYSTEM |
| \REGISTRY\MACHINE\SOFTWARE | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SOFTWARE |
| \REGISTRY\MACHINE\SECURITY | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SECURITY |
| \REGISTRY\MACHINE\SAM | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\SAM |
| \REGISTRY\MACHINE\HARDWARE | REG_SZ | |
| \REGISTRY\MACHINE\DRIVERS | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\DRIVERS |
| \REGISTRY\MACHINE\COMPONENTS | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\COMPONENTS |
| \REGISTRY\MACHINE\Schema | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\SMI\Store\Machine\SCHEMA.DAT |
| \REGISTRY\USER\.DEFAULT | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\DEFAULT |
| \REGISTRY\USER\S-1-5-19 | REG_SZ | \Device\HarddiskVolume3\WINDOWS\ServiceProfiles\LocalService\NTUSER.DAT |
| \REGISTRY\USER\S-1-5-20 | REG_SZ | \Device\HarddiskVolume3\WINDOWS\ServiceProfiles\NetworkService\NTUSER.DAT |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-500 | REG_SZ | \Device\HarddiskVolume3\Documents and Settings\Administrateur\NTUSER.DAT |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-500_Classes | REG_SZ | \Device\HarddiskVolume3\Documents and Settings\Administrateur\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1001 | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur1\NTUSER.DAT |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1001_Classes | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur1\AppData\Local\Microsoft\Windows\UsrClass.dat |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1002 | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur2\NTUSER.DAT |
| \REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1002_Classes | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur2\AppData\Local\Microsoft\Windows\UsrClass.dat |

### Sous Windows 95 et 98, répertoire de la base de registre

Les fichiers contenant la base de registre sont User.dat et System.dat ; leur répertoire par défaut est \Windows.

### Sous Windows Me, répertoire de la base de registre

Les fichiers contenant la base de registre sont User.dat, System.dat et Classes.dat ; leur répertoire par défaut est \Windows.

## Le contenu de la base de registre
### Deux HKEY de base

La base de registre est partagée en différentes sections logiques. Elles sont généralement connues par les noms les définissant quand on y accède via l'interface graphique de Windows; les noms commencent tous par 'HKEY' (une abréviation de Handle to a KEY, gestionnaire de clé).
Les deux HKEY de base sont :
* HKEY_LOCAL_MACHINE (HKLM) contient les informations qui sont générales à tous les utilisateurs de l'ordinateur :
** Matériel
** Sécurité
** SAM (Security Account Manager)
** Logicielle, la sous-branche "Classes" correspond à HKEY_CLASSES_ROOT
** Système, elle contient notamment la sous-branche CurrentControlSet (NB : CurrentControlSet\Control\Class contient des informations sur les classes).
* HKEY_USERS contient les informations spécifiques de chaque utilisateur. La sous-branche correspondant à l'utilisateur courant est l'équivalent de HKEY_CURRENT_USER. Attention, cette ruche n'est visible que si l'utilisateur associé est connecté
Les 4 autres HKEY sont
* HKEY_CURRENT_CONFIG contient des informations qui sont mises à jour immédiatement, elles sont régénérées après chaque boot.
* HKEY_CLASSES_ROOT (HKCR) contient les informations sur les applications enregistrées ; cela inclut entre autres les associations entre extensions de fichiers et identifiants de classe d'objet OLE, ce qui permet de lancer automatiquement l'exécutable correspondant. Cela correspond à HKEY_LOCAL_MACHINE\SOFTWARE\Classes. Exemple : ".bat" et "XML" sont respectivement associés à "batfile" et "XML script engine".
* HKEY_CURRENT_USER (HKCU) contient les informations concernant l'utilisateur connecté. Ce n'est qu'une sous-branche de HKEY_USERS.
* HKEY_PERFORMANCE_DATA (ou HKEY_DYN_DATA sous Windows 9x) générée dynamiquement (REGEDIT ne l'affiche pas). Ces données sont visibles par l'intermédiaire de l'utilitaire perfmon.msc.
Chacune de ces clés est divisée en sous-clé(s), qui peuvent contenir d'autre(s) sous-clé(s) et ainsi de suite, constituant toute une arborescence.

### Typage des valeurs

Chaque clé peut contenir des valeurs typées : il existe une quinzaine de types de données possibles,
* 1) Binaire REG_BINARY, création possible avec REGEDIT
* Entier
** 2) Dword REG_DWORD, 32 bits, création possible avec REGEDIT
*** 3) REG_DWORD_BIG_ENDIAN, voir Endianness
*** 4) REG_DWORD_LITTLE_ENDIAN
** 5) Qword REG_QWORD 64 bits, création possible avec REGEDIT
*** 6) REG_QWORD_BIG_ENDIAN (mais inusité et non-documenté)
*** 7) REG_QWORD_LITTLE_ENDIAN
* Chaîne de caractères
** 8) Chaîne simple REG_SZ, création possible avec REGEDIT
** 9) Chaîne extensible REG_EXPAND_SZ, permet d'utiliser des variables d'environnement, création possible avec REGEDIT
** 10) Chaîne multiple REG_MULTI_SZ, création possible avec REGEDIT
* 11) NONE, REG_NONE : signifie donnée non typée
* Ressource
** 12) REG_RESOURCE_LIST
** 13) REG_RESOURCE_REQUIREMENTS_LIST
** 14) REG_FULL_RESOURCE_DESCRIPTOR
* 15) REG_LINK

### GUID (et CLSID)

Un grand nombre de clés et de valeurs de clés sont affichées par regedit sous un format analogue à {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. En fait, il s'agit du format GUID (Globally Unique IDentifier) (16 octets).

### Programmation
#### Langage C

winreg.h est l'include nécessaire pour utiliser le registre en Langage C.

#### Langage C#

Avec le langage C#, il est possible de lire et modifier la base de registre ; les différentes méthodes sont
* CreateSubKey
* OpenSubKey et Close
* GetValue et SetValue

#### Visual Basic

Les fonctions sont GetSetting, SaveSetting.
Il est aussi possible de passer par le WSH (Windows Scripting Host)

#### Langage Java

La portabilité du langage Java fait que l'accès à la base de registre n'est pas directement implémenté dans Java.
D'une façon générale, pour faire l'interface de Java avec une API native spécifique à un système d'exploitation, il faut passer par JNI (Java Native Interface).
Dans le cas particulier de la base de registre, il existe par exemple la DLL ICE_JNIRegistry.
Certaines bibliothèques n'utilisent pas JNI pour accéder à la base de registre. C'était le cas de Java Registry Wrapper (sur l'ancien site " Java By Example | Registry / Reg").

### Minuscule et majuscule

Contrairement à ce qui est habituel sous Windows, des casses de caractères différentes donnent des résultats différents. Exemple : les valeurs "no" et "No" peuvent donner des résultats très différents.

### Espace dans les noms de clés

Le caractère espace (" ") peut être utilisé dans les noms de clés, bien que ce soit rare (exemple : la clé optionnelle Use Search Asst).

## Remarques sur la sécurité
### Sauvegarde automatique sur les mises à jour système

Lors des mises à jour de Windows, la base de registres est automatiquement sauvegardée.
L'utilitaire rstrui.exe permet de voir la liste des sauvegardes ; dans la terminologie Microsoft, elles sont appelées points de restauration système.

### Le service Accès à distance au Registre

Parmi les services Windows, il existe un service "Accès à distance au Registre" (RemoteRegistry). Il permet non seulement de lire, mais aussi de modifier la base de registre à distance. Pour des raisons de sécurité, il est prudent de mettre le paramètre "Mode de démarrage" à la valeur "Désactivé" ; les 2 autres valeurs possibles sont déconseillées : "Manuel" et "Automatique".
Ce service fait partie des services lancés via la commande "svchost.exe -k LocalService" (Processus SerViCe HOST pour le compte correspondant à utilisateur local). Il utilise le service RPC (Remote Procedure Call).

### Syskey de Microsoft pour sécuriser la SAM

L'utilitaire syskey de Microsoft est recommandé si on veut se protéger contre une personne ayant un accès physique au local où se trouve le PC.

## Comparaison avec Unix (et GNU/Linux)
### Les fichiers de configuration de Windows et d'Unix

Le contenu de la base de registre sous Windows correspond aux fichiers des répertoires etc d'Unix ou de Linux.
Le système de Windows utilise des fichiers indexés, ce qui permet un accès optimisé aux informations de la base. La structure permet de créer une configuration multi-utilisateur de manière transparente.
À l'opposé, Unix utilise de simples fichiers texte pouvant contenir des explications concernant chaque paramètre; ils sont modifiables avec tout éditeur de texte. Le problème de donner des droits sur chaque paramètre pour des utilisateurs particuliers sous Unix (ce que permet la base de registre de Windows puisque toute clé est un objet ayant une ACL) est abordée différemment; les logiciels accédant à des ressources privilégiées gèrent généralement ces droits selon une logique qui leur est propre, soit en utilisant l'appartenance aux groupes d'utilisateurs, soit en spécifiant eux-mêmes des niveaux de droits particuliers.
La plupart des paramètres de la base de registre ont un type intrinsèque. Mais, certains paramètres sont codés en hexadécimal, ce qui annule l'avantage et rend difficile une modification. Sous Unix, le paramétrage est fait via un fichier de texte et donc les paramètres ne possèdent aucun typage intrinsèque (et il est donc possible d'avoir une erreur de configuration).
L'exploration de la base de registre se révèle dans les faits assez complexe et fastidieuse : il y a beaucoup de paramètres mais aucun commentaire n'est prévu si ce n'est les noms plus ou moins parlant des clés. Il est nécessaire de faire appel à une documentation extérieure pour obtenir une explication. À l'inverse, les fichiers de configuration Unix abondent souvent d'explications plus ou moins claires, car tous ces fichiers peuvent être commentés. Sous Unix, la dispersion des fichiers de configuration propres à chaque logiciel rend difficile toute solution visant à les administrer de façon globale ; en contrepartie, une intervention malheureuse concernant l'un d'eux n'a généralement pas d'effet sur les autres.
En cas de corruption du fichier de base de registre, il est possible de restaurer (si une stratégie de restauration a été mise en place) l'intégralité des paramètres de base de registre en une seule fois.

### Comment réparer une erreur de paramétrage sur chacun des deux systèmes d'exploitation

Lors d'erreurs de paramétrage, le retour en arrière est possible sous Windows : Windows fait automatiquement une sauvegarde de la base de registre, appelée Point de restauration.
* Lors d'un problème bloquant, l'utilisateur peut revenir à la dernière configuration connue.
* En lançant le CD-ROM d'installation de Windows, on peut accéder à la « console de récupération » de Windows, permettant d'agir en mode console pour les cas désespérés.
Sous Unix (ou Linux), il n'y a pas de sauvegarde automatique des fichiers de configuration. Si l'utilisateur fait une erreur sur un de ses fichiers de configuration, il devra éventuellement passer au niveau d'init minimum, puis, dans tous les cas, il devra corriger le ou les fichiers de configuration avec un éditeur de texte simple. L'habitude est d'utiliser un éditeur qui garde une copie de sauvegarde des fichiers modifiés, ce qui est le cas général. Les commandes de base de unix (cp, cmp, ou les outils graphiques) rendent très simple les copies et comparaisons sur l'ensemble de /etc.

### "dconf" de l'interface graphique GNOME

"dconf" est l'équivalent de la base de registre Windows pour les applications fondées sur GNOME (une des interfaces graphiques open source). Les données sont stockées au format binaire.
Dans les anciennes versions de linux, c'était GConf qui était utilisé et les données étaient au format XML.

### ODM, le registre pour AIX

Le système d'exploitation AIX utilise lui aussi un équivalent de la base de registre, sous le nom de ODM (Object Data Manager).

### Le projet Elektra pour une base de registre sous linux

Le projet Elektra de Avi Alkalay a pour but de centraliser tous les paramètres de configuration sous Linux dans une même structure. C'est l'équivalent de la base de registre sous linux.
Les 2 formats de stockage possibles (le backend) sont XML (même format que pour GConf) ou Berkeley DB. Les modifications des données sont faites directement, sans passer par un démon.
Le projet Elektra est sous licence BSD; il est hébergé par SourceForge.net.

### NetInfo de Mac OS X

Sur les anciennes versions de Mac OS X, l'équivalent de la base de registre est la base de données NetInfo (en).

## Utilitaire
### Utilitaires pour sauvegarder/restaurer la base de registre

* « regedit » de Microsoft permet de faire une sauvegarde/restauration de la base de registre, partielle ou complète
** via l'interface graphique
** éventuellement, en ligne de commande, avec regedit /e c:\SAVE_REGISTRE.reg
* Il est possible aussi d'utiliser reg /export et reg /import en ligne de commande.
* Erunt fournit un outil en interface graphique simple et efficace pour sauver/restaurer la base de registre, en particulier dans le but d'une généralisation. C'est par ailleurs le seul à proposer une sauvegarde complète, y compris la SAM.
Sous XP et Seven il est aussi possible de créer des « points de restauration système ». Ce n'est pas à proprement parler un backup, mais cela permet de revenir à l'état antérieur.

### Utilitaires en ligne de commande pour modifier la base de registre

L'utilitaire en ligne de commande REGINI.EXE de Microsoft permet de modifier la base de registre en fonction d'un fichier au format INI (modifiable avec n'importe quel éditeur de texte comme Notepad). Regini est livré dans le kit de ressources Microsoft pour Windows 2000 (payant).
L'utilitaire REGEDIT de Microsoft peut aussi être utilisé en ligne de commande avec l'option "/s" ; dans ce cas, le fichier des modifications à effectuer doit être au format .REG, qui n'est autre qu'un fichier au format ANSI composé de l'entête "Windows Registry Editor Version 5.00". Note : l'utilitaire n'est pas manageable en ligne de commande car aucun code d'erreur n'est retourné. Il est en natif sur tous les postes.
L'utilitaire REGSVR32.EXE permet d'enregistrer et de désenregistrer une DLL dans la base de registre. Ce n'est pas à proprement parler un outil pour modifier la base de registre. Il est en natif sur tous les postes.
L'utilitaire REG.EXE permet de faire toutes sortes d'opération sur les clef de la base de registre, en ligne de commande. Il est donc parfaitement manageable. Il est en natif sur tous les postes.

### Le logiciel gratuit RegAlyzer : un REGEDIT amélioré

Regalyzer est un gratuiciel qui est comparable à REGEDIT : il offre une interface graphique pour modifier la base de registre.
Il offre des fonctionnalités supplémentaires, notamment sur la recherche de chaînes de caractères ; exemples :
* la recherche avec REGALYZER fournit une liste, alors qu'avec REGEDIT, on est obligé de balayer chaque élément un par un.
* On peut utiliser des caractères joker : « * » et « ? »
Le panneau de saisie des critères de recherche offre également de nombreuses options comme une recherche avec des opérateurs booléens (AND, OR, NOT), l'utilisation des caractères joker : « * » et « ? », ainsi qu'une possibilité de recherche sensible à la casse. La recherche peut donc être un peu longue... mais avec pour résultat un tableau exhaustif des occurrences trouvées sans nécessité d'utiliser ensuite la touche F3 pour rechercher une possible nouvelle occurrence comme c'est l'usage avec Regedit. Pour chaque occurrence présentée dans le tableau résultant, le logiciel affiche la clé, le nom de la valeur, et la donnée contenue.
Le logiciel permet aussi dans le tableau résultant d'effectuer des sélections (plusieurs types de sélections sont possibles) pour exports ou pour suppressions. Il permet aussi d'ouvrir le logiciel Regedit directement sur la clé sélectionnée. Un onglet "Remplacer" permet aussi de modifier des clés ou valeurs sélectionnées en utilisant des critères de façon à opérer la même manipulation en une seule fois sur toutes les clés ou valeurs sélectionnées.
Une fois le tableau des résultats obtenu, le logiciel se présente sous la forme de deux fenêtres : une fenêtre comportant le tableau des résultats, et une fenêtre se comportant comme Regedit en présentant l'arborescence complète centrée sur la clé sélectionnée. Lorsqu'un double-clic est effectué sur une occurrence dans la fenêtre tableau des résultats, la fenêtre présentant l'arborescence se met à jour pour refléter la nouvelle sélection. Et toutes les opérations possibles avec Regedit sont alors possibles sur la clé ou la valeur sélectionnée (modifier des données, créer, renommer ou supprimer des valeurs ou des clés, etc.)

### Utilitaires éliminant les logiciels espions de la base de registre

Voir l'article spyware.

### Utilitaires pour supprimer les entrées inutilisées de la base de registre

Il existe aussi des utilitaires pour éliminer les entrées inutilisées de la base de registre. Ces utilitaires sont appelés nettoyeurs de registre.
Le logiciel regclean de Microsoft est a priori obsolète, il date de décembre 1997.
Autres exemples de nettoyeurs de registre :
* regsupreme ;
* regcleaner (ne pas confondre avec le regclean de Microsoft) ;
* EasyCleaner de ToniArts ;
* CleanMyPC Registry Cleaner ;
* RegSeeker de Hover Inc. ;
* Wise Registry Cleaner;
* CCleaner.
NB : Ces utilitaires ne sont pas validés par Microsoft et, tout pertinents qu'ils soient, rien ne garantit qu'ils ne perturberont pas le fonctionnement du système, comme rien ne prouve leur efficacité présumée. L'utilisateur reste seul responsable des inconvénients éventuels subis.
Le nettoyage de la base de registre repose sur plusieurs concepts génériques :
* Nombre de programmes utilisant la base de registre ne la nettoient pas lors de la désinstallation. On peut parler de désinstallation malpropre. Cela a pour effet de garder en mémoire des paramètres inutiles.
* La base de registre est moins rapide au fur et à mesure de son accroissement.
* Certains entrées peuvent devenir obsolètes au fur et à mesure de la vie du poste et de mauvais interaction/update des programmes. Dans certains cas, des dll restent enregistrés alors que le fichier dll proprement dit n'existe plus. Une partie de l'algorithme des nettoyeurs de base de registre se fonde sur cette technique pour détecter les entrées périmées.

### Utilitaires pour compacter, optimiser la base de registre

Exemple :
* Registry Defragmenter & Compactor de Auslogics ;
* freeware ntregopt (NT REGistry OPTimize) (auteur : Lars Hederers).

### Utilitaires pour journaliser les modifications du registre

Il peut être utile de journaliser les modifications de la base de registre,
* soit ponctuellement, après l'installation d'un logiciel,
* soit au fil de l'eau.
Cela peut servir par exemple pour faciliter la télédistribution de logiciels.
Exemple de logiciels :
* RegSnap de ShareUp ;
* WineXposeRegistry ;
* Active Registry Monitor ;
* RegShot ;
* Advanced Registry Tracer de Elcomsoft ;
* Regmon (Registry monitor) de sysinternals.

### Émulateur pour la base de registre

Certains émulateurs de Windows permettent de faire des tests sur la base de registre. Exemple d'émulateur :
* WINE sous Linux
Par exemple, pour tester un exécutable d'origine douteuse, on le lance sur un émulateur et on peut voir quelle partie de la base de registre a été modifiée. Si l'exécutable s'avère dangereux, il suffit d'arrêter-relancer l'émulateur et tout redevient normal.
* Voir (en) Registre dans WINE

### Autres outils

* RegVac
* Advanced Doctor Pro
* jv16
* regrun
* Spy Studio Surveiller l'activité.
* syskey de Microsoft pour sécuriser la SAM (Security Account Manager), voir paragraphes précédents
* Registry Repair Pro
* TuneUp Utilities de TuneUp Software GmbH