Corriger 0x80070005 « Accès refusé » de Windows Update sur Windows Server 2022 (Lenovo ThinkSystem SR650 V2)

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.

Sommaire

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.

ÉtapeAction détailléePourquoi / résultat attendu
1. Vérifier les privilègesSe 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 & SFCDISM /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 UpdateArrê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 & RegistreVé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 / WSUSgpresult /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 fondDans 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 journauxGet-WindowsUpdateLog, WindowsUpdateClient/Operational, System, CAPI2, Servicing.Identifie une DLL, un pilote, un filtre antivirus ou un dossier verrouillé.
8. Désactiver temporairement l’antivirus tiersSuspendre 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 manuellementTé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 :

ServiceNomDémarrage attenduCommentaires
Windows UpdatewuauservAutomatique (début différé)Moteur d’orchestration des mises à jour.
Background Intelligent Transfer ServiceBITSAutomatiqueTéléchargement résilient des contenus (avec WINHTTP/proxy).
Services de chiffrementCryptSvcAutomatiqueValidation de signature/chaînes de certificats.
Windows Modules InstallerTrustedInstallerManuel/AutomatiqueInstallation 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 basculez UseWUServer=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 ou svchost. 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

CheminSécurisations minimalesNotes
%SystemRoot%\SoftwareDistributionSYSTEM : F / Administrators : F / TrustedInstaller : FContient téléchargements et base locale WU.
%SystemRoot%\System32\Catroot2SYSTEM : F / Administrators : F / TrustedInstaller : FCatalogue de sécurité et hachages (ne pas supprimer, préférer renommer).
%ProgramData%\Microsoft\Crypto\RSA\MachineKeysSYSTEM : F / Administrators : F / Network Service : MÉcritures nécessaires pour la validation CAPI2.

Clés de Registre à contrôler

CléValeurs critiquesCommentaire
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateWUServer, WUStatusServer, TargetGroupPrésentes si WSUS est imposé par GPO.
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AUUseWUServer (0/1), NoAutoUpdatePermet de tester sans WSUS si nécessaire.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based ServicingACL TrustedInstaller/SYSTEMIndispensable pour TrustedInstaller (CBS).

Commandes de vérification rapide

ObjectifCommande
Rapport GPOgpresult /h C:\Temp\gp.html
Proxy système WINHTTPnetsh winhttp show proxy
Scan Windows Updateusoclient startscan
Journal WU lisibleGet-WindowsUpdateLog
État BITSGet-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

  1. Relancer une détection (sconfig → 6 ou usoclient startscan).
  2. Vérifier que le téléchargement progresse (%SystemRoot%\SoftwareDistribution\Download se remplit).
  3. Exécuter l’installation et redémarrer si requis.
  4. Contrôler l’absence d’erreurs 0x80070005 dans les journaux WindowsUpdateClient et System.
  5. 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 module PSWindowsUpdate (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.

Sommaire