Le Registre Windows est une base de données hiérarchique qui stocke les paramètres de configuration du système d’exploitation, des applications et du matériel. Savoir comment lire, écrire et supprimer des entrées du registre est essentiel pour l’administration système, le dépannage et la configuration des applications. Ce guide couvre plusieurs méthodes, notamment l’éditeur graphique, les outils en ligne de commande et PowerShell.

Comprendre la structure du Registre

Le registre est organisé en cinq clés racines (ruches) :

RucheAbréviationObjectif
HKEY_LOCAL_MACHINEHKLMParamètres de l’ensemble de l’ordinateur (matériel, logiciel, système)
HKEY_CURRENT_USERHKCUParamètres de l’utilisateur actuellement connecté
HKEY_CLASSES_ROOTHKCRAssociations de fichiers et enregistrements d’objets COM
HKEY_USERSHKUParamètres de tous les profils utilisateur sur la machine
HKEY_CURRENT_CONFIGHKCCInformations sur le profil matériel actuel

Chaque ruche contient des clés (comme des dossiers) et des valeurs (comme des fichiers). Les valeurs ont un nom, un type et des données.

Types de valeurs courants

TypeDescriptionExemple
REG_SZChaîne de caractèresC:\Program Files\MyApp
REG_DWORDEntier 32 bits1 (souvent utilisé pour activer/désactiver)
REG_QWORDEntier 64 bits4294967296
REG_BINARYDonnées binaires01 00 00 00
REG_EXPAND_SZChaîne extensible (variables d’environnement)%SystemRoot%\System32
REG_MULTI_SZMulti-chaîne (tableau de chaînes)String1\0String2\0

Méthode 1 : Éditeur du Registre (Regedit)

L’Éditeur du Registre graphique est le moyen le plus courant de parcourir et modifier le registre.

Ouvrir Regedit

  1. Appuyez sur Win + R, tapez regedit et appuyez sur Entrée.
  2. Acceptez l’invite UAC (les privilèges d’administrateur sont nécessaires pour les modifications de HKLM).

Lire les valeurs

  1. Naviguez jusqu’à la clé souhaitée dans le volet gauche en utilisant l’arborescence.
  2. Les valeurs de la clé sélectionnée apparaissent dans le volet droit, affichant le nom, le type et les données.

Écrire (créer ou modifier) des valeurs

Pour créer une nouvelle valeur :

  1. Naviguez jusqu’à la clé cible.
  2. Faites un clic droit dans le volet droit et sélectionnez Nouveau > choisissez le type de valeur (Valeur chaîne, DWORD, etc.).
  3. Tapez le nom de la valeur et appuyez sur Entrée.
  4. Double-cliquez sur la nouvelle valeur pour définir ses données.

Pour modifier une valeur existante :

  1. Double-cliquez sur la valeur dans le volet droit.
  2. Modifiez les données et cliquez sur OK.

Supprimer des valeurs ou des clés

  1. Faites un clic droit sur la valeur ou la clé.
  2. Sélectionnez Supprimer.
  3. Confirmez la suppression.

Sauvegarder avant les modifications

Exportez toujours une sauvegarde avant d’effectuer des modifications :

  1. Faites un clic droit sur la clé que vous êtes sur le point de modifier.
  2. Sélectionnez Exporter.
  3. Enregistrez le fichier .reg dans un emplacement sûr.

Pour restaurer, double-cliquez sur le fichier .reg et confirmez l’importation.

Méthode 2 : Outil en ligne de commande reg.exe

La commande reg est intégrée à Windows et est utile pour le scripting et les fichiers batch.

Lire les valeurs

:: Read a specific value
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir

:: List all values under a key
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

:: Recursive query
reg query "HKLM\SOFTWARE\MyApp" /s

Écrire des valeurs

:: Create or modify a string value (REG_SZ)
reg add "HKCU\SOFTWARE\MyApp" /v SettingName /t REG_SZ /d "SettingValue" /f

:: Create a DWORD value
reg add "HKCU\SOFTWARE\MyApp" /v EnableFeature /t REG_DWORD /d 1 /f

:: Create a QWORD value
reg add "HKCU\SOFTWARE\MyApp" /v LargeNumber /t REG_QWORD /d 8589934592 /f

:: Create an expandable string value
reg add "HKLM\SOFTWARE\MyApp" /v InstallPath /t REG_EXPAND_SZ /d "%ProgramFiles%\MyApp" /f

L’option /f force l’opération sans demander de confirmation.

Supprimer des valeurs et des clés

:: Delete a specific value
reg delete "HKCU\SOFTWARE\MyApp" /v SettingName /f

:: Delete an entire key and all its values and subkeys
reg delete "HKCU\SOFTWARE\MyApp" /f

Exporter et importer

:: Export a key to a .reg file
reg export "HKCU\SOFTWARE\MyApp" C:\backup\myapp_settings.reg

:: Import a .reg file
reg import C:\backup\myapp_settings.reg

Méthode 3 : PowerShell

PowerShell offre l’approche la plus flexible pour la gestion du registre, en utilisant des cmdlets qui traitent le registre comme un système de fichiers.

PowerShell mappe les ruches du registre comme des PSDrives :

# List available registry drives
Get-PSDrive -PSProvider Registry

# Navigate to HKLM
Set-Location HKLM:\SOFTWARE\Microsoft

# List subkeys
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion

Lire les valeurs

# Read all values in a key
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

# Read a specific value
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"

# Get just the value data
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion").ProgramFilesDir

# Check if a value exists
$value = Get-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting" -ErrorAction SilentlyContinue
if ($value) {
    Write-Host "Value exists: $($value.Setting)"
} else {
    Write-Host "Value does not exist"
}

Écrire des valeurs

# Create a new key
New-Item -Path "HKCU:\SOFTWARE\MyApp" -Force

# Create or modify a string value
Set-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "AppName" -Value "My Application"

# Create a DWORD value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "EnableFeature" `
    -Value 1 -PropertyType DWORD -Force

# Create a multi-string value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "ServerList" `
    -Value @("Server01", "Server02", "Server03") -PropertyType MultiString -Force

# Create a binary value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "BinaryData" `
    -Value ([byte[]](0x01, 0x02, 0x03, 0x04)) -PropertyType Binary -Force

# Create an expandable string value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "LogPath" `
    -Value "%USERPROFILE%\Logs" -PropertyType ExpandString -Force

Supprimer des valeurs et des clés

# Delete a specific value
Remove-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "EnableFeature"

# Delete an entire key and all its contents
Remove-Item -Path "HKCU:\SOFTWARE\MyApp" -Recurse -Force

# Delete a value only if it exists
if (Get-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting" -ErrorAction SilentlyContinue) {
    Remove-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting"
}

Interroger le Registre distant

# Read registry on a remote computer
Invoke-Command -ComputerName "Server01" -ScriptBlock {
    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"
}

Méthode 4 : Préférences de stratégie de groupe

Pour les environnements d’entreprise, les Préférences de stratégie de groupe (GPP) sont le moyen recommandé pour déployer des modifications du registre sur plusieurs ordinateurs.

Étapes

  1. Ouvrez la Console de gestion des stratégies de groupe et modifiez un GPO.
  2. Naviguez vers Configuration ordinateur (ou Configuration utilisateur) > Préférences > Paramètres Windows > Registre.
  3. Faites un clic droit et sélectionnez Nouveau > Élément Registre.
  4. Configurez l’élément du registre :
    • Action : Créer, Remplacer, Mettre à jour ou Supprimer
    • Ruche : Sélectionnez la clé racine
    • Chemin de la clé : Entrez le chemin complet
    • Nom de la valeur : Le nom de la valeur
    • Type de valeur : REG_SZ, REG_DWORD, etc.
    • Données de la valeur : Les données à définir
  5. Cliquez sur OK.

Actions expliquées

ActionComportement
CréerCrée la valeur uniquement si elle n’existe pas déjà
RemplacerSupprime et recrée la valeur (la supprime d’abord si elle existe, puis la crée)
Mettre à jourCrée la valeur si elle n’existe pas, ou la modifie si elle existe
SupprimerSupprime la valeur

Mettre à jour est l’action la plus couramment utilisée car elle gère à la fois la création et la modification.

Chemins courants du Registre

Voici les emplacements du registre fréquemment consultés :

CheminObjectif
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunProgrammes de démarrage de l’utilisateur actuel
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunProgrammes de démarrage de tous les utilisateurs
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallListe des programmes installés
HKLM\SYSTEM\CurrentControlSet\ServicesConfiguration des services Windows
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ExplorerParamètres du shell de l’Explorateur
HKLM\SOFTWARE\PoliciesParamètres de stratégie de groupe de l’ordinateur
HKCU\SOFTWARE\PoliciesParamètres de stratégie de groupe de l’utilisateur
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersionInformations sur la version de Windows

Bonnes pratiques de sécurité

  • Sauvegardez toujours avant d’effectuer des modifications. Exportez la clé ou créez un point de restauration système.
  • Ne supprimez jamais des clés que vous ne comprenez pas, en particulier sous HKLM\SYSTEM ou HKLM\SOFTWARE\Microsoft\Windows NT.
  • Testez les modifications sur une seule machine avant de les déployer sur plusieurs ordinateurs via GPO.
  • Utilisez les Préférences de stratégie de groupe pour le déploiement en entreprise plutôt que la modification manuelle ou les scripts d’ouverture de session.
  • Documentez toutes les modifications afin qu’elles puissent être annulées si des problèmes surviennent.
  • Utilisez l’option /f avec précaution avec reg.exe, car elle contourne les invites de confirmation.

Résumé

Les entrées du Registre Windows peuvent être lues, écrites et supprimées par plusieurs méthodes. Regedit fournit une interface graphique pour la navigation et l’édition interactives. L’outil en ligne de commande reg.exe est idéal pour les scripts et les fichiers batch. Les cmdlets PowerShell (Get-ItemProperty, Set-ItemProperty, New-ItemProperty, Remove-ItemProperty) offrent l’approche la plus flexible et scriptable. Pour les environnements d’entreprise, les Préférences de stratégie de groupe fournissent un déploiement centralisé et gérable des modifications du registre sur les ordinateurs joints au domaine. Quelle que soit la méthode, créez toujours une sauvegarde avant de modifier le registre et testez les modifications dans un environnement contrôlé au préalable.