Sur un Windows Server 2022 installé sur un Lenovo ThinkSystem SR650 V2, l’erreur Windows Update 0x80070005 « Accès refusé » bloque l’installation des correctifs. Voici un guide opérationnel, concret et automatisable pour diagnostiquer et corriger durablement ce problème.
Problème posé
Un serveur Windows Server 2022 hébergé sur un Lenovo ThinkSystem SR650 V2 (type 7Z73) ne parvient pas à installer les mises à jour Windows Update. Le client Windows Update ou la console sconfig
renvoient le code d’erreur 0x80070005 (Accès refusé), parfois immédiatement après la détection, parfois à la phase de téléchargement, de validation cryptographique ou d’installation.
Symptômes observables
- Dans Paramètres → Windows Update (ou
sconfig
→ 6), l’état passe en échec avec 0x80070005. - Le journal Observateur d’événements → Journaux Windows → Système affiche des erreurs de services (BITS, Windows Update, CryptSvc) ou des avertissements d’accès refusé.
Get-WindowsUpdateLog
met en évidence des échecs de lecture/écriture sous%SystemRoot%\SoftwareDistribution
ou%SystemRoot%\Catroot2
, des problèmes de signature (CAPI2) ou des refus à l’ouverture de clés du Registre.- En environnement WSUS, les stratégies GPO imposant un serveur intranet peuvent provoquer des échecs supplémentaires si l’URL n’est plus joignable ou si un proxy/TLS est mal configuré.
Analyse de la cause
Le code 0x80070005 survient presque toujours lorsqu’un service Windows Update, un processus système ou le compte utilisateur ne dispose pas des autorisations nécessaires pour :
- écrire dans
%SystemRoot%\SoftwareDistribution
ou%SystemRoot%\Catroot2
; - modifier des clés sensibles du Registre (WindowsUpdate, BITS, CBS, politiques WSUS) ;
- exécuter un service en arrière‑plan (BITS, Windows Update, CryptSvc, Windows Modules Installer/TrustedInstaller) ;
- accéder à un partage réseau, à un proxy authentifié ou à un point WSUS configuré par stratégie ;
- valider la signature de packages (problèmes de magasin de certificats ou dossiers
MachineKeys
verrouillés).
Feuille de route de résolution rapide
Appliquer les étapes dans l’ordre ci‑dessous. En production, travaillez sous fenêtre de maintenance et munissez‑vous d’une sauvegarde ou d’un snapshot.
Étape | Action détaillée | Pourquoi / résultat attendu |
---|---|---|
1. Vérifier les privilèges | Se connecter avec un compte Administrateurs locaux ou exécuter sconfig → 6 (Windows Update) en élévation. | Élimine le blocage « Accès refusé » par manque de droits. |
2. Exécuter DISM & SFC | DISM /Online /Cleanup-Image /RestoreHealth puis sfc /scannow . | Répare les fichiers système corrompus susceptibles d’empêcher l’installation. |
3. Réinitialiser les composants Windows Update | Arrêter wuauserv , BITS , cryptsvc ; renommer SoftwareDistribution et Catroot2 ; redémarrer les services. | Recrée des dépôts propres pour téléchargement et validation. |
4. Contrôler les autorisations NTFS & Registre | Vérifier que SYSTEM et TrustedInstaller ont contrôle total sur dossiers/clefs liés à Windows Update. | Évite les futurs accès refusés. |
5. Vérifier les GPO / WSUS | gpresult /h gp.html ; neutraliser temporairement GPO de sécurité/proxy impactant Windows Update. | Détecte une stratégie limitant l’accès ou imposant une URL WSUS invalide. |
6. Confirmer les services de fond | Dans services.msc , BITS, Windows Update, Cryptographic Services, Windows Modules Installer doivent être démarrés (auto ou différé). | Ils pilotent le téléchargement, l’installation et la validation cryptographique. |
7. Examiner les journaux | Get-WindowsUpdateLog , WindowsUpdateClient/Operational, System, CAPI2, Servicing. | Identifie une DLL, un pilote, un filtre antivirus ou un dossier verrouillé. |
8. Désactiver temporairement l’antivirus tiers | Suspendre la protection en temps réel ou démarrer en Clean Boot. | Certains agents verrouillent les dossiers système pendant la mise à jour. |
9. Installer les KB manuellement | Télécharger le MSU adapté et lancer wusa.exe Correctif.msu /quiet /norestart (ou DISM en offline). | Permet d’avancer malgré la défaillance du client Windows Update. |
Procédure pas à pas détaillée
Vérifier les privilèges et le contexte d’exécution
- Ouvrir un Invite de commandes ou PowerShell en Exécuter en tant qu’administrateur.
- Si vous utilisez
sconfig
(recommandé sur serveur), choisir 6 Windows Update et lancer Rechercher/Installer. - Contrôler l’appartenance au groupe Administrateurs :
whoami /groups
.
Réparer l’image et les fichiers système
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Attendez la fin des opérations (aucun redémarrage n’est requis pour DISM, mais peut l’être après SFC). Les corruptions CBS détectées ici expliquent une part importante des échecs d’installation.
Réinitialiser Windows Update proprement
net stop wuauserv
net stop bits
net stop cryptsvc
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start cryptsvc
net start bits
net start wuauserv
Cette opération régénère des dépôts neufs. Conservez les dossiers .old
jusqu’à validation ; vous pourrez les supprimer ensuite.
Réappliquer des autorisations NTFS/Registre saines
Contrôler les ACL des dossiers clés :
icacls %systemroot%\SoftwareDistribution
icacls %systemroot%\System32\catroot2
icacls %programdata%\Microsoft\Crypto\RSA\MachineKeys
Réaccorder si nécessaire :
icacls %systemroot%\SoftwareDistribution /grant "NT SERVICE\TrustedInstaller:(OI)(CI)F" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T
icacls %systemroot%\System32\catroot2 /grant "NT SERVICE\TrustedInstaller:(OI)(CI)F" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T
icacls %programdata%\Microsoft\Crypto\RSA\MachineKeys /grant "NT AUTHORITY\NETWORK SERVICE:(OI)(CI)M" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T
Pour le Registre, vérifiez que NT AUTHORITY\SYSTEM et TrustedInstaller possèdent le contrôle total sur :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\BITS
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
Valider les services indispensables
Ouvrez services.msc
et vérifiez :
Service | Nom | Démarrage attendu | Commentaires |
---|---|---|---|
Windows Update | wuauserv | Automatique (début différé) | Moteur d’orchestration des mises à jour. |
Background Intelligent Transfer Service | BITS | Automatique | Téléchargement résilient des contenus (avec WINHTTP/proxy). |
Services de chiffrement | CryptSvc | Automatique | Validation de signature/chaînes de certificats. |
Windows Modules Installer | TrustedInstaller | Manuel/Automatique | Installation des composants protégés (CBS). |
Examiner les journaux utiles
- WindowsUpdate.log (générer via
Get-WindowsUpdateLog
) ; - Applications and Services Logs → Microsoft → Windows :
- WindowsUpdateClient/Operational (événements 20, 25, 31…)
- CAPI2/Operational (événement 513 typique d’accès refusé au magasin de clés)
- Servicing (pile CBS/TrustedInstaller)
- Journaux Windows → Système (erreurs de service, driver, VSS).
Analyser l’impact des GPO, WSUS et proxy
gpresult /h C:\Temp\gp.html
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /s
netsh winhttp show proxy
Points d’attention :
- Stratégie Spécifier l’emplacement du service de mise à jour Microsoft sur l’intranet : si
WUServer
/WUStatusServer
pointent vers une URL obsolète, désactivez temporairement la GPO ou basculezUseWUServer=0
pour tester contre Microsoft Update. - Proxy d’entreprise et inspection TLS : BITS utilise WINHTTP. Assurez-vous que le proxy système (
netsh winhttp
) est cohérent et opérationnel. - AppLocker/SRP : des règles restrictives peuvent bloquer
wusa.exe
,TiWorker.exe
ousvchost
. Validez la stratégie effective.
Désactiver temporairement l’antivirus tiers ou passer en Clean Boot
Certains EDR/antivirus injectent des filtres qui verrouillent SoftwareDistribution
, Catroot2
ou MachineKeys
. Suspendez la protection temps réel ou démarrez avec services non‑Microsoft minimaux pour confirmer le diagnostic. Pensez à réactiver la protection après test et à définir des exclusions adaptées.
Installer manuellement un correctif (plan B)
Si le client Windows Update reste en échec, installez les KB en direct :
wusa.exe <NomDuCorrectif>.msu /quiet /norestart
En mode avancé (cabinet/cumulative), vous pouvez utiliser DISM :
DISM /Online /Add-Package /PackagePath:C:\Temp\KBxxxxx.cab /Quiet /NoRestart
Après installation, redémarrez puis relancez une détection (sconfig
ou commande ci‑après) pour vérifier la normalisation du canal de mise à jour.
Diagnostics supplémentaires ciblés Windows Server 2022
Vérifier l’état de BITS et purger une file bloquée
Get-BitsTransfer -AllUsers | Format-List -Property *
Get-BitsTransfer -AllUsers | Remove-BitsTransfer
Forcer une détection et une évaluation immédiates
# Détection
usoclient startscan
# Téléchargement
usoclient startdownload
# Installation (si applicable)
usoclient startinstall
# Rapport immédiat au service (utile en WSUS)
wuauclt /reportnow
Vérifier l’espace disque et le magasin CBS
- Laissez au moins 10 Go libres sur le volume système.
- Contrôlez
C:\Windows\Logs\CBS\CBS.log
après un échec ; recherchez les entrées Access is denied, 0x80070005 ou Failed to resolve package.
Automatisation complète avec PowerShell
Le script ci‑dessous encapsule les actions essentielles : réparation image, réinitialisation WU, réapplication ACL, test WSUS/proxy et relance de scan. À exécuter en session élevée.
# Fix-WindowsUpdateAccessDenied.ps1
param(
[switch]$BypassWSUS,
[switch]$SkipAVPause
)
function Write-Info($m){Write-Host "[+] $m"}
function Write-Warn($m){Write-Host "[!] $m" -ForegroundColor Yellow}
function Write-Err($m){Write-Host "[x] $m" -ForegroundColor Red}
Write-Info "Réparation DISM & SFC"
DISM /Online /Cleanup-Image /RestoreHealth | Out-Null
sfc /scannow | Out-Null
Write-Info "Arrêt services WU/BITS/CryptSvc"
Stop-Service wuauserv,bits,cryptsvc -Force -ErrorAction SilentlyContinue
Write-Info "Sauvegarde et réinitialisation des dépôts"
$sd = "$env:windir\SoftwareDistribution"
$cr = "$env:windir\System32\catroot2"
$ts = Get-Date -Format yyyyMMddHHmmss
if(Test-Path $sd){Rename-Item $sd "$sd.$ts.old" -Force}
if(Test-Path $cr){Rename-Item $cr "$cr.$ts.old" -Force}
New-Item -ItemType Directory -Path $sd,$cr -Force | Out-Null
Write-Info "Réapplication des ACL"
icacls $sd /grant "NT SERVICE\TrustedInstaller:(OI)(CI)F" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T | Out-Null
icacls $cr /grant "NT SERVICE\TrustedInstaller:(OI)(CI)F" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T | Out-Null
icacls "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys" /grant "NT AUTHORITY\NETWORK SERVICE:(OI)(CI)M" SYSTEM:(OI)(CI)F Administrators:(OI)(CI)F /T | Out-Null
Write-Info "Redémarrage services"
Start-Service cryptsvc,bits,wuauserv
if($BypassWSUS){
Write-Warn "Test sans WSUS (UseWUServer=0 temporaire)"
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name UseWUServer -Value 0 -Type DWord
gpupdate /target:computer /force | Out-Null
}
Write-Info "Proxy WINHTTP courant"
netsh winhttp show proxy
Write-Info "Forcer une détection"
Start-Process -FilePath "$env:windir\system32\usoclient.exe" -ArgumentList "startscan" -WindowStyle Hidden
Write-Info "Journal WU"
Get-WindowsUpdateLog -LogPath "$env:Public\Desktop\WindowsUpdate.log" | Out-Null
Write-Info "Terminé. Vérifiez l'état dans sconfig (6) ou Paramètres."
Spécificités Lenovo ThinkSystem SR650 V2
- UEFI/XCC/firmwares : maintenez à jour l’UEFI, le microcode CPU, les firmwares disques/NVMe, l’XClarity Controller (XCC) et les pilotes réseau/stockage. Des écarts de versions peuvent perturber la validation de certains correctifs (notamment côté microcode et stockage).
- Drivers à jour côté OS : installez les packages pilotes Windows Server 2022 fournis par Lenovo (chipset, réseau, RAID/HBA). Les pilotes obsolètes de filtre stockage ou réseau peuvent provoquer des erreurs d’accès lors de l’étape CBS.
- Outils Lenovo : l’usage d’OneCLI ou des utilitaires de mise à jour en mode OS/bootable facilite un inventaire rapide des versions et leur mise à jour hors Internet.
Tableaux d’aide-mémoire
Dossiers et ACL recommandées
Chemin | Sécurisations minimales | Notes |
---|---|---|
%SystemRoot%\SoftwareDistribution | SYSTEM : F / Administrators : F / TrustedInstaller : F | Contient téléchargements et base locale WU. |
%SystemRoot%\System32\Catroot2 | SYSTEM : F / Administrators : F / TrustedInstaller : F | Catalogue de sécurité et hachages (ne pas supprimer, préférer renommer). |
%ProgramData%\Microsoft\Crypto\RSA\MachineKeys | SYSTEM : F / Administrators : F / Network Service : M | Écritures nécessaires pour la validation CAPI2. |
Clés de Registre à contrôler
Clé | Valeurs critiques | Commentaire |
---|---|---|
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate | WUServer , WUStatusServer , TargetGroup | Présentes si WSUS est imposé par GPO. |
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU | UseWUServer (0/1), NoAutoUpdate | Permet de tester sans WSUS si nécessaire. |
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing | ACL TrustedInstaller/SYSTEM | Indispensable pour TrustedInstaller (CBS). |
Commandes de vérification rapide
Objectif | Commande |
---|---|
Rapport GPO | gpresult /h C:\Temp\gp.html |
Proxy système WINHTTP | netsh winhttp show proxy |
Scan Windows Update | usoclient startscan |
Journal WU lisible | Get-WindowsUpdateLog |
État BITS | Get-BitsTransfer -AllUsers |
Bonnes pratiques et précautions
- Plan de retour arrière : snapshot VM ou sauvegarde système avant toute réinitialisation des composants Windows Update.
- Fenêtre de maintenance : les étapes de réparation peuvent interrompre temporairement certains services applicatifs.
- Exclusions antivirus raisonnées : si l’EDR est la cause, ajoutez des exclusions précises (pas de désactivation permanente).
- Conformité firmware/driver : tenez à jour microcodes/firmwares Lenovo et pilotes compatibles Windows Server 2022.
- Domaines AD : vérifiez que l’objet ordinateur possède les droits nécessaires et que les stratégies sont appliquées sans erreur (
gpupdate /force
).
Validation après correctif
- Relancer une détection (
sconfig
→ 6 ouusoclient startscan
). - Vérifier que le téléchargement progresse (
%SystemRoot%\SoftwareDistribution\Download
se remplit). - Exécuter l’installation et redémarrer si requis.
- Contrôler l’absence d’erreurs 0x80070005 dans les journaux WindowsUpdateClient et System.
- Supprimer les dossiers
.old
une fois l’ensemble validé.
FAQ rapides
Le serveur est derrière un proxy authentifié, est‑ce un problème ?
Oui, si l’authentification n’est pas gérée par WINHTTP pour le compte LocalSystem. Configurez le proxy via netsh winhttp set proxy
ou utilisez un accès direct contrôlé.
Faut‑il réenregistrer des DLL Windows Update ?
Ce n’est plus nécessaire ni recommandé sur Windows Server 2022. La réinitialisation SoftwareDistribution/Catroot2 et la réparation DISM/SFC suffisent.
Une SSU manquante peut‑elle provoquer 0x80070005 ?
Les mises à jour cumulatives modernes incluent la SSU, mais en déploiement offline via DISM il peut être utile d’installer d’abord une SSU spécifique si la KB l’exige.
Comment tester sans WSUS sans casser la prod ?
Basculez temporairement UseWUServer=0
, faites un gpupdate /force
, testez la détection, puis rétablissez la GPO.
Informations complémentaires utiles
- Sur les éditions serveur, l’assistant graphique de dépannage Windows Update est souvent absent : privilégiez
PowerShell
et le modulePSWindowsUpdate
(Get‑WindowsUpdate
/Install‑WindowsUpdate
) lorsque le contexte le permet. - En domaine, assurez‑vous que l’objet ordinateur possède un Full Control sur le conteneur AD adéquat afin que
gpupdate
applique correctement les stratégies liées aux correctifs. - Lenovo publie périodiquement des microcodes BIOS et firmwares compatibles Windows Server 2022 : leur mise à jour réduit le risque d’échecs lors de la validation de correctifs sensibles.
- Conservez toujours un snapshot ou une sauvegarde avant toute opération sur les composants Windows Update d’un serveur de production.
Récapitulatif
Dans la majorité des cas sur Windows Server 2022, 0x80070005 est un problème d’autorisation ou de dépôt corrompu. L’enchaînement élévation des droits → DISM/SFC → réinitialisation de Windows Update → contrôle ACL/GPO/AV → test WSUS/proxy → installation manuelle en dernier recours résout durablement la situation, y compris sur un Lenovo ThinkSystem SR650 V2. Documentez les changements, standardisez l’automatisation PowerShell et sécurisez vos mises à jour serveur à long terme.