Registre Windows
Contexte et historique
-
Avant Windows 95
- Configuration stockée dans des fichiers texte (INI) répartis à divers endroits.
- Problèmes : duplication, incohérences, difficulté de gestion centralisée.
-
Introduction du registre
- Windows 95 inaugure la base de registre (Registry) : un magasin hiérarchique centralisé.
- Objectif : unifier la configuration système et applicative.
Pourquoi le registre existe
-
Centralisation
- Remplace les multiples INI, CFG, et .INF.
-
Hiérarchisation
- Arborescence clé/valeur, plus structurée que des fichiers plats.
-
Performance et atomicité
- Lecture/écriture optimisée, support des transactions partielles.
-
Sécurité
- ACL (permissions style NTFS) sur chaque clé de registre.
Structure générale
Le registre est organisé en hives (ruche). Chaque hive correspond à un gros
fichier stocké sur disque (sous %SystemRoot%\System32\Config
pour les hives
machine, et dans le profil utilisateur pour HKCU).
Hive | Fichier | Contenu principal |
---|---|---|
HKEY_LOCAL_MACHINE (HKLM) | SYSTEM , SOFTWARE , etc. | Configuration machine (tous utilisateurs) |
HKEY_CURRENT_USER (HKCU) | %USERPROFILE%\NTUSER.DAT | Configuration du profil courant |
HKEY_USERS | Tous les profils utilisateurs | Rassemble HKCU de chaque utilisateur |
HKEY_CLASSES_ROOT (HKCR) | Fusion HKLM\SOFTWARE\Classes et HKCU\Software\Classes | Associations de fichiers, COM |
HKEY_CURRENT_CONFIG | Lien vers la config matérielle active | Paramètres matériels dynamiques |
Clés, sous-clés et valeurs
-
Clé : équivalent d’un dossier (contenant sous-clés et valeurs).
-
Valeur : paire
(Nom, Type, Donnée)
.-
Types courants :
REG_SZ
(chaîne),REG_DWORD
(entier 32 bits),REG_QWORD
(entier 64 bits),REG_MULTI_SZ
(tableau de chaînes),REG_BINARY
(données brutes).
-
Registry Editor (regedit.exe
)
-
Fonctionnalités
- Navigation visuelle de l’arborescence.
- Export/Import de
.reg
. - Modifier ACL (clic droit → Permissions).
-
Mises en garde
- Nécessite souvent les droits administrateur.
- Une mauvaise modification peut rendre Windows instable.
Le provider Registry dans PowerShell
PowerShell expose le registre comme un provider de type système de fichiers :
- Racines :
HKLM:
etHKCU:
- Possibilité de naviguer avec
Set-Location
,Get-ChildItem
, etc.
Exemples pratiques avec PowerShell
Tester ces exemples dans votre machine virtuelle
Naviguer dans le registre
# Lister les hives machine
Get-ChildItem -Path Registry::HKLM
# Lister les clés sous SOFTWARE
Get-ChildItem -Path HKLM:\SOFTWARE
Lire des valeurs
# Valeur d’une clé
Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name Wallpaper
# Lecture de toutes les propriétés
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Tester l’existence d’une clé ou d’une valeur
# Clé existante ?
Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'
# Valeur existante ?
(Get-ItemProperty -Path HKCU:\... -Name 'NomValeur' -ErrorAction SilentlyContinue) -ne $null
Créer une sous-clé et une valeur
Remplacer Username
par votre nom d’utilisateur
# Créer la clé MyApp
New-Item -Path 'HKCU:\Software\Username\MyApp' -Force
# Ajouter une valeur chaîne
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'MessageBienvenue' `
-Value 'Bienvenue dans MyApp!' `
-PropertyType String -Force
# Ajouter un DWORD
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'Enabled' `
-Value 1 `
-PropertyType DWord -Force
Modifier une valeur existante
# Désactiver le démarrage rapide (exemple système)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' `
-Name 'HiberbootEnabled' `
-Value 0
Supprimer une clé ou une valeur
Remplacer Username
par votre nom d’utilisateur
# Supprimer une valeur
Remove-ItemProperty -Path 'HKCU:\Software\Username\MyApp' -Name 'MessageBienvenue'
# Supprimer la sous-clé entière
Remove-Item -Path 'HKCU:\Software\Username\MyApp' -Recurse -Force
Exporter et importer
Remplacer Username
par votre nom d’utilisateur
# Exporter une branche en .reg
reg export "HKCU\Software\Username\MyApp" C:\temp\myapp.reg /y
# Importer un .reg
reg import C:\temp\myapp.reg
Exemple avancé : changer le fond d’écran
# Définir le chemin de l’image
$wall = 'C:\Images\montagne.jpg'
# Modifier la clé
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' `
-Name 'Wallpaper' `
-Value $wall
# Rafraîchir l’affichage
Add-Type -AssemblyName user32
[User32]::SystemParametersInfo(0x0014, 0, $wall, 0x0002)
Sécurité et bonnes pratiques
-
Sauvegarder avant modification
reg export "HKLM\SOFTWARE" C:\backup\software-hive.reg /y
-
Utiliser
-WhatIf
et-Confirm
Remove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf
-
Préférer PowerShell à
reg.exe
pour l’automatisation -
Restreindre les ACL
- Vérifier/modifier via
Get-Acl
/Set-Acl
si nécessaire.
- Vérifier/modifier via
À retenir
- Le registre est le cœur de la configuration Windows, centralisé et hiérarchique.
- Il remplace les fichiers INI : plus robuste, sécurisé, et performant.
- Chaque hive correspond à un contexte (machine/utilisateur).
- PowerShell offre un provider natif pour naviguer et modifier le registre en scripts.
- Toujours sauvegarder et tester avant toute modification en production.