Optimisations avancées du registre
Voici des optimisations supplémentaires du registre pour améliorer les performances et la confidentialité :
# Désactiver Windows Copilot (nouveau dans Windows 11)
New-Item -Path "HKCU:\Software\Policies\Microsoft\Windows\WindowsCopilot" -Force
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\WindowsCopilot" -Name "TurnOffWindowsCopilot" -Value 1 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsCopilot" -Name "TurnOffWindowsCopilot" -Value 1 -Force -ErrorAction SilentlyContinue
# Désactiver les widgets et actualités Windows
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Dsh" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Dsh" -Name "AllowNewsAndInterests" -Value 0 -Force
# Désactiver les suggestions de recherche Bing
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableSearchBoxSuggestions" -Value 1 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer" -Name "DisableSearchBoxSuggestions" -Value 1 -Force -ErrorAction SilentlyContinue
# Désactiver Cortana
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Value 0 -Force
# Désactiver les suggestions du menu démarrer
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestionsEnabled" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338388Enabled" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Value 0 -Force
# Désactiver les publicités dans l'explorateur
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSyncProviderNotifications" -Value 0 -Force
# Désactiver le tracking de localisation
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Value "Deny" -Force
# Désactiver Windows Tips
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableSoftLanding" -Value 1 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Value 1 -Force
# Optimiser le délai de fermeture des applications
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "AutoEndTasks" -Value "1"
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "HungAppTimeout" -Value "1000"
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "WaitToKillAppTimeout" -Value "2000"
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "LowLevelHooksTimeout" -Value "1000"
# Désactiver les notifications de sécurité Windows inutiles
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender Security Center\Notifications" -Name "DisableNotifications" -Value 1 -ErrorAction SilentlyContinue
# Désactiver le partage de Wi-Fi
Set-ItemProperty -Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting" -Name "Value" -Value 0
# Désactiver le suivi des applications
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Start_TrackProgs" -Value 0
# Désactiver les suggestions de recherche
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "BingSearchEnabled" -Value 0
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search" -Name "CortanaConsent" -Value 0
# Optimiser l'Explorateur Windows
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "LaunchTo" -Value 1 # Ouvrir sur Ce PC
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Value 1 # Afficher les fichiers cachés
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Value 0 # Afficher les extensions
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSuperHidden" -Value 1 # Afficher les fichiers système
# Désactiver le mode tablette automatique
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell" -Name "SignInMode" -Value 1
# Accélérer le temps de démarrage
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "WaitToKillServiceTimeout" -Value "2000"
bcdedit /timeout 3
# Désactiver le verrouillage automatique après inactivité (optionnel)
powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOCONLOCK 0
Nettoyage et optimisation du registre
Nettoyage manuel du registre
Le registre Windows accumule des entrées obsolètes au fil du temps. Voici les principales zones à nettoyer :
# Nettoyer les MUICache (cache d'interface utilisateur)
Remove-Item -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" -Recurse -Force -ErrorAction SilentlyContinue
# Nettoyer l'historique des fenêtres ouvertes
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU" -Recurse -Force -ErrorAction SilentlyContinue
# Nettoyer l'historique Run
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" -Recurse -Force -ErrorAction SilentlyContinue
# Nettoyer les clés de désinstallation orphelines
$uninstallKeys = @(
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall"
)
foreach ($key in $uninstallKeys) {
Get-ChildItem -Path $key -ErrorAction SilentlyContinue | ForEach-Object {
$displayName = (Get-ItemProperty -Path $_.PSPath -Name "DisplayName" -ErrorAction SilentlyContinue).DisplayName
if ([string]::IsNullOrEmpty($displayName)) {
Remove-Item -Path $_.PSPath -Recurse -Force -ErrorAction SilentlyContinue
}
}
}
# Nettoyer les extensions de shell obsolètes
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Cached" -Recurse -Force -ErrorAction SilentlyContinue
Compactage du registre
Le compactage du registre Windows permet de réduire sa taille et d'améliorer les performances d'accès. Cette opération s'effectue en deux étapes :
# Sauvegarder d'abord les ruches du registre
reg save "HKLM\SOFTWARE" "C:\Windows\Temp\SOFTWARE.hiv" /y
reg save "HKLM\SYSTEM" "C:\Windows\Temp\SYSTEM.hiv" /y
reg save "HKLM\SAM" "C:\Windows\Temp\SAM.hiv" /y
reg save "HKLM\SECURITY" "C:\Windows\Temp\SECURITY.hiv" /y
reg save "HKU\.DEFAULT" "C:\Windows\Temp\DEFAULT.hiv" /y
Pour un compactage complet, utilisez l'outil intégré Windows :
# Compacter le registre en utilisant l'outil natif (nécessite un redémarrage)
# Cette méthode est la plus sûre et recommandée
Start-Process -FilePath "compact.exe" -ArgumentList "/c /s:%windir%\System32\config" -Wait -NoNewWindow
Gestion des pilotes
Mise à jour des pilotes
Avant de créer le master, installez les derniers pilotes constructeur pour tous les composants matériels cibles. Privilégiez les pilotes certifiés WHQL et évitez les suites logicielles bloatées des fabricants.
# Lister les pilotes installés
Get-WindowsDriver -Online | Select-Object Driver, ClassName, ProviderName, Date, Version | Sort-Object Date -Descending
# Exporter les pilotes installés
Export-WindowsDriver -Online -Destination "C:\DriversBackup"
# Mettre à jour tous les pilotes via Windows Update (si connecté)
Install-Module PSWindowsUpdate -Force
Get-WindowsUpdate -Install -UpdateType Driver -AcceptAll
Bloquer les mises à jour automatiques de pilotes
Pour éviter que Windows Update n'installe des pilotes génériques ou obsolètes après le déploiement :
# Bloquer les pilotes automatiques de Windows Update
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" -Name "SearchOrderConfig" -Value 0 -PropertyType DWORD -Force
# Alternative via stratégie de groupe
# Computer Configuration > Administrative Templates > Windows Components > Windows Update > Do not include drivers with Windows Updates
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -Value 1 -Force
Nettoyage des versions obsolètes de pilotes
Le magasin de pilotes (DriverStore - C:\Windows\System32\DriverStore\FileRepository) accumule les anciennes versions de pilotes au fil du temps. Pour nettoyer les pilotes obsolètes :
/uninstall et /delete-driver avec le paramètre /force ou /d doit être faite avec précaution.
# Lister les packages de pilotes avec détails
Write-Host "Liste des pilotes installés (pour vérification)..." -ForegroundColor Cyan
pnputil /enum-drivers
# Méthode 1 : Suppression automatique des pilotes non attachés (la plus sûre)
Write-Host "`nTentative de suppression des packages de pilotes non utilisés..." -ForegroundColor Yellow
pnputil /enum-drivers | Select-String "Published Name" | ForEach-Object {
$Name = $_.ToString().Split(':')[-1].Trim()
# Tente de supprimer le pilote s'il n'est pas utilisé par un périphérique actif
pnputil /delete-driver $Name /uninstall /d 2>$null | Out-Null
}
Write-Host "Le retrait des versions obsolètes des pilotes est terminé." -ForegroundColor Green
# Nettoyer également via DISM (méthode complémentaire)
Write-Host "`nNettoyage des pilotes via DISM..." -ForegroundColor Yellow
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
- Le pilote est actuellement utilisé par un périphérique actif
- Le pilote est un pilote système critique
- Le pilote est protégé par Windows
Pour un nettoyage plus visuel et sécurisé, utilisez l'outil Driver Store Explorer (RAPR) qui permet d'identifier et supprimer les pilotes en double ou obsolètes tout en conservant les versions actives via une interface graphique intuitive.