On referme cette section système avec le Provider Registry, entrevu en leçon 4.1. Sophie prévient d’emblée : « C’est la partie la plus sensible de cette section. Le Registre pilote une bonne partie du comportement de Windows — une clé modifiée à la légère peut rendre un service instable, voire empêcher un serveur de redémarrer correctement. »
Rappel de la leçon 1.3 : le Registre est une notion propre à Windows, sans équivalent sous Linux/macOS.
Naviguer dans le Registre comme dans un dossier
Grâce au Provider Registry vu en 4.1, les cmdlets sont exactement les mêmes que pour les fichiers :
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"Les deux ruches principales que vous croiserez le plus souvent :
HKLM:(HKEY_LOCAL_MACHINE) : réglages qui s’appliquent à toute la machine, quel que soit l’utilisateur connectéHKCU:(HKEY_CURRENT_USER) : réglages propres à l’utilisateur actuellement connecté
Lire la valeur d’une clé
Une clé de Registre est un dossier ; ses valeurs sont un peu comme les propriétés d’un fichier. On les lit avec Get-ItemProperty :
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name "ProductName"Créer ou modifier une valeur
Pour créer une nouvelle valeur dans une clé existante :
New-ItemProperty -Path "HKLM:\SOFTWARE\Nordika" -Name "Version" -Value "1.0" -PropertyType StringPour modifier une valeur déjà existante :
Set-ItemProperty -Path "HKLM:\SOFTWARE\Nordika" -Name "Version" -Value "1.1"Créer une nouvelle clé
Une clé se crée comme un dossier, avec New-Item (déjà vu en 4.2) :
New-Item -Path "HKLM:\SOFTWARE\Nordika"Supprimer une clé ou une valeur
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Nordika" -Name "Version"
Remove-Item -Path "HKLM:\SOFTWARE\Nordika" -RecurseIci plus qu’ailleurs, le réflexe
-WhatIf(vu en 4.2) n’est pas une option, c’est une nécessité avant toute suppression dans le Registre. Une clé supprimée par erreur dansHKLM:\SYSTEMpeut rendre un serveur instable au prochain redémarrage.
Droits nécessaires
La plupart des clés sous HKLM: nécessitent une console PowerShell lancée en tant qu’administrateur. Sans ces droits, vous obtiendrez une erreur d’accès refusé plutôt qu’un résultat vide — un point qu’on approfondira avec la gestion des erreurs en section 5.
Un exemple concret Nordika
$cheminNordika = "HKLM:\SOFTWARE\Nordika"
if (-not (Test-Path $cheminNordika)) {
New-Item -Path $cheminNordika | Out-Null
}
New-ItemProperty -Path $cheminNordika -Name "DernierAudit" -Value (Get-Date).ToString() -PropertyType String -ForceCe script (dont la logique conditionnelle sera détaillée en section 5) crée une clé Registre personnalisée pour Nordika, et y note la date du dernier passage du script d’audit — une pratique courante pour « marquer » un poste déjà traité par une automatisation.
Retenez le fil de toute cette section 4 :
FileSystemetRegistrysont deux Providers différents (vu en 4.1), mais partagent presque exactement les mêmes cmdlets (Get-ChildItem,New-Item,Remove-Item,Test-Path). Une foisFileSystemmaîtrisé, le Registre n’a donc plus rien d’un territoire complètement inconnu.
Dans la prochaine leçon, un TP pour mettre en pratique toute cette section système : un script d’inventaire complet du poste.