Erreur 0x80070490 Windows Server 2012 R2 : réparer Windows Update (DISM, SFC, ESU, WSUS)

Vous voyez 0x80070490 pendant Windows Update sur un serveur Windows Server 2012 R2 ? Ce guide exhaustif explique les causes probables (corruption du magasin de composants ou des métadonnées Windows Update) et propose des procédures concrètes, des scripts prêts à l’emploi et des conseils ESU/migration.

Sommaire

Vue d’ensemble

Le code d’erreur 0x80070490 (parfois affiché 80070490) correspond à ERROR_NOT_FOUND : un composant attendu est introuvable. Dans la pratique, cela indique le plus souvent une corruption du magasin de composants (Component Store/CBS) ou des caches Windows Update (SoftwareDistribution, Catroot2).

Fin de support : Windows Server 2012 et 2012 R2 sont sortis du support étendu de Microsoft le 10 octobre 2023. Sans Extended Security Updates (ESU), vous ne recevez plus de correctifs de sécurité. Prévoyez une migration vers Windows Server 2019/2022 (ou vers Azure Stack HCI) dès que possible.

Symptômes typiques

  • Windows Update échoue systématiquement avec 0x80070490.
  • Le serveur ne parvient pas à rechercher/installer des mises à jour, que ce soit via Microsoft Update ou WSUS.
  • Le fichier C:\Windows\Logs\CBS\CBS.log contient des messages CBS_E_NOT_FOUND, STORE_CORRUPTION ou des erreurs de manifeste/paiquetage.
  • Le répertoire SoftwareDistribution grossit anormalement ou présente des téléchargements incomplets.

Ce qu’il faut retenir avant de commencer

  • Exécutez toutes les commandes dans une console CMD ou PowerShell ouverte en tant qu’administrateur.
  • Effectuez un snapshot/backup complet (système + données) et vérifiez que la restauration fonctionne hors production.
  • Libérez de l’espace disque (au moins 10 Go sur la partition système) et assurez-vous que date/heure et fuseau sont corrects.
  • Identifiez si le serveur utilise WSUS (GPO configurée) ou directement Microsoft Update : la procédure peut varier.

Dépannage rapide : la séquence qui résout 80 % des cas

  1. Réparer l’image : DISM /Online /Cleanup-Image /RestoreHealth → puis sfc /scannow.
  2. Réinitialiser Windows Update : arrêter les services, renommer SoftwareDistribution et Catroot2, redémarrer les services.
  3. Installer manuellement la dernière Service Stack Update (SSU) puis le dernier Monthly Rollup (.msu) si Windows Update ne repart pas.

Tableau de route recommandé

ÉtapeAction détailléeBut/Commentaire
Réparer l’imageDISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Répare le magasin CBS et restaure les fichiers système corrompus.
Réinitialiser WUArrêter wuauserv, bits, cryptsvc, (et si besoin msiserver)
Renommer %windir%\SoftwareDistribution et %windir%\System32\catroot2
Redémarrer les services
Supprime les caches endommagés et réindexe les métadonnées.
Installer manuellementInstaller d’abord la SSU, puis le Monthly Rollup/Security Only adapté au serveur.Contourne un agent WU trop abîmé pour s’auto-corriger.
Analyser les journauxOuvrir C:\Windows\WindowsUpdate.log et C:\Windows\Logs\CBS\CBS.log.Identifier un paquet/dépendance précis à corriger/supprimer/réinstaller.
ESUSi vous disposez d’ESU, valider l’activation MAK et le Licensing Preparation Package.Permet de continuer à recevoir les correctifs critiques jusqu’en octobre 2026 (offre payante).

Procédure détaillée pas à pas

Vérifier la connectivité et l’environnement

  • Proxy / TLS 1.2 : sur 2012 R2, assurez-vous que TLS 1.2 est actif pour WinHTTP. Vous pouvez le forcer via Registre (Client & Server) et la clé DefaultSecureProtocols pour WinHTTP.
    Exemple PowerShell (active TLS 1.2 côté client & WinHTTP) :
# Activer TLS 1.2 (Client) pour SCHANNEL
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'Enabled' -Value 1 -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'DisabledByDefault' -Value 0 -PropertyType 'DWord' -Force | Out-Null

# WinHTTP : autoriser TLS 1.1 (0x200) et TLS 1.2 (0x800) = 0xA00

New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp' -Name 'DefaultSecureProtocols' -Value 0x00000A00 -PropertyType 'DWord' -Force | Out-Null

# Pour les processus 32 bits (WOW6432Node)

New-Item -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp' -Name 'DefaultSecureProtocols' -Value 0x00000A00 -PropertyType 'DWord' -Force | Out-Null 
  • WSUS : si le serveur est pointé vers un WSUS via GPO (Windows Update\Specify intranet Microsoft update service location), vérifiez que l’approbation des mises à jour et la synchronisation WSUS sont correctes. Pour un test ponctuel vers Microsoft Update, vous pouvez temporairement désactiver WSUS :
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"UseWUServer"=dword:00000000 

Ensuite :

net stop wuauserv
net start wuauserv

Remettez la valeur à 1 pour réactiver WSUS après vos tests.

Réparer l’image Windows (CBS) puis les fichiers système

L’ordre recommandé est DISM puis SFC.

DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Si DISM /RestoreHealth échoue faute de source, utilisez le média d’installation de Windows Server 2012 R2 :

  1. Montez l’ISO et identifiez l’index de l’édition (/Get-WimInfo).
dism /Get-WimInfo /WimFile:D:\sources\install.wim
  1. Relancez RestoreHealth en spécifiant la source et en évitant Windows Update :
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:INDEX /LimitAccess

Remplacez INDEX par la valeur correspondant à votre édition (Standard/Datacenter). Après réussite, exécutez sfc /scannow pour restaurer les fichiers si nécessaire.

Réinitialiser proprement Windows Update

La réinitialisation consiste à arrêter les services, renommer les caches, et relancer le tout :

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
net stop trustedinstaller

ren %windir%\SoftwareDistribution SoftwareDistribution.old
ren %windir%\System32\catroot2 catroot2.old

net start trustedinstaller
net start msiserver
net start cryptsvc
net start bits
net start wuauserv 

Astuce : si catroot2 refuse d’être renommé, assurez-vous que cryptsvc est bien arrêté. Vous pouvez aussi supprimer le contenu de SoftwareDistribution\Download si le renommage vous gêne pour l’espace disque.

Réenregistrer les composants essentiels (facultatif)

Seulement si l’agent WU semble « brisé » ; ce lot remet à zéro des DLL clés :

for %i in (wuapi.dll wuaueng.dll wups.dll wups2.dll wuwebv.dll wucltux.dll atl.dll jscript.dll msxml3.dll) do regsvr32.exe /s %i

Installer manuellement SSU puis Rollup

Lorsque l’agent Windows Update est trop abîmé, l’installation hors‑ligne de la dernière Service Stack Update (SSU) puis du dernier Monthly Rollup pour Windows Server 2012 R2 fonctionne souvent :

  1. Téléchargez la SSU et le Rollup correspondant à 2012 R2 (x64).
  2. Installez d’abord la SSU (wusa.exe <KB-ssu.msu> /quiet /norestart), redémarrez.
  3. Installez le Rollup (wusa.exe <KB-rollup.msu> /quiet /norestart), redémarrez.

Pour vérifier les packages présents :

dism /online /get-packages /format:table &gt; C:\Temp\packages.txt

Scénario ESU (Extended Security Updates)

Si vous avez acquis des ESU pour 2012/2012 R2 :

  • Installez le Licensing Preparation Package propre aux ESU.
  • Activez la clé ESU MAK (via slmgr.vbs).
cscript %windir%\system32\slmgr.vbs /ipk VOTRE-CLE-ESU-XXXXX-XXXXX-XXXXX-XXXXX
cscript %windir%\system32\slmgr.vbs /ato

Ensuite, appliquez les mises à jour de sécurité mensuelles ESU comme d’habitude (WSUS ou téléchargement manuel).

Diagnostic approfondi via les journaux

Deux fichiers sont incontournables :

  • C:\Windows\WindowsUpdate.log : échecs de détection, erreurs de téléchargement/installation.
  • C:\Windows\Logs\CBS\CBS.log : détails de CBS/DISM/SFC (paquets manquants, conflits).

Exemples utiles :

# Filtrer les dernières erreurs Windows Update
Get-Content C:\Windows\WindowsUpdate.log -Tail 1000 | Select-String -Pattern '0x80070490|ERROR|FATAL'

# Repérer rapidement les erreurs de CBS

Get-Content C:\Windows\Logs\CBS\CBS.log -Tail 2000 | Select-String -Pattern 'ERROR|FAILED|0x80070490|CBS_E_NOT_FOUND' 

Si un paquet précis est défectueux :

dism /online /get-packages | findstr /i &quot;Failed Pending&quot;
dism /online /remove-package /packagename:PACKAGE_NOM

Puis réinstallez proprement la KB concernée.

Nettoyage du magasin de composants

Pour réduire la complexité due aux remplacements successifs de composants :

DISM /Online /Cleanup-Image /StartComponentCleanup

L’option /ResetBase existe mais empêche de désinstaller les mises à jour supersédées ; à n’employer qu’en dernier recours.

Script « tout‑en‑un » de remise à plat WU (PowerShell)

Copiez‑collez le script ci‑dessous dans un fichier Reset-WU2012R2.ps1, exécutez‑le en PowerShell administrateur :

# Reset-WU2012R2.ps1
$ErrorActionPreference = 'Stop'
$log = "C:\Temp\WUReset_{0:yyyyMMdd_HHmmss}.log" -f (Get-Date)
New-Item -ItemType Directory -Path (Split-Path $log) -Force | Out-Null

function Write-Log($m){ $ts = Get-Date -f 'yyyy-MM-dd HH:mm:ss'; "[$ts] $m" | Tee-Object -FilePath $log -Append }

Write-Log "Arrêt des services WU..."
'trustedinstaller','msiserver','cryptsvc','bits','wuauserv' | ForEach-Object {
try { Stop-Service -Name $_ -ErrorAction SilentlyContinue -Force } catch {}
}

Write-Log "Renommage des caches..."
$sd = Join-Path $env:windir 'SoftwareDistribution'
$cr = Join-Path $env:windir 'System32\catroot2'
if (Test-Path $sd){ Rename-Item $sd ($sd+".old_"+(Get-Date -f 'yyyyMMddHHmmss')) -Force }
if (Test-Path $cr){ Rename-Item $cr ($cr+".old_"+(Get-Date -f 'yyyyMMddHHmmss')) -Force }

Write-Log "Réparation DISM + SFC..."
Start-Process -FilePath 'dism.exe' -ArgumentList '/Online','/Cleanup-Image','/RestoreHealth' -Wait -NoNewWindow
Start-Process -FilePath 'sfc.exe'  -ArgumentList '/scannow' -Wait -NoNewWindow

Write-Log "Redémarrage des services WU..."
'trustedinstaller','msiserver','cryptsvc','bits','wuauserv' | ForEach-Object {
try { Start-Service -Name $_ -ErrorAction SilentlyContinue } catch {}
}
Write-Log "Terminé. Journal : $log" 

Cas particuliers et parades

Erreur persistante avec WSUS

  • Vérifiez l’assignation du target group WSUS et l’approbation des KB.
  • Forcez la détection : wuauclt.exe /resetauthorization /detectnow puis wuauclt.exe /reportnow.
  • Sur 2012 R2, UsoClient.exe n’existe pas ; wuauserv reste l’agent clé.

Conflit de proxy

Windows Update utilise WinHTTP (et non le proxy utilisateur IE). Alignez la config :

netsh winhttp show proxy
netsh winhttp reset proxy
# ou
netsh winhttp import proxy source=ie

Échec DISM pour absence de source

Assurez‑vous d’utiliser la même build/édition que le serveur. Identifiez l’index WIM et spécifiez /LimitAccess pour éviter que DISM tente d’interroger Windows Update.

Serveurs sensibles (contrôleur de domaine, clusters)

  • Évitez l’in‑place repair directement sur un contrôleur de domaine. Préférez ajouter un DC temporaire, transférer les rôles FSMO, mettre à jour, puis revenir.
  • Sur les clusters, planifiez des fenêtres par nœud avec drain/failover contrôlés.

Quand migrer vers une version supérieure ?

Maintenant si le serveur est exposé à Internet, gère des données sensibles ou héberge des charges critiques. Au plus tard, avant la fin ESU d’octobre 2026 pour éviter un nouveau cycle de fin de support. La migration vous redonne :

  • Un flux de correctifs mensuels complet.
  • Des piles de maintenance modernes et un agent WU plus fiable.
  • Des protocoles récents (TLS 1.3, SMB amélioré, etc.) et durcissements de sécurité.

Bonnes pratiques complémentaires

  • Documentez chaque action (commandes, KB appliquées, journaux pertinents) : utile pour l’audit et la conformité.
  • Automatisez les vérifications post‑patch (état des services, Event Viewer, version du kernel ver).
  • Conservez un journal d’intervention dans un partage centralisé (horodaté).

FAQ express

Que signifie 0x80070490 ? Élément introuvable (ERROR_NOT_FOUND) : l’agent ne parvient pas à localiser un composant/manifest requis.

DISM ou SFC en premier ? DISM d’abord (répare l’image) puis SFC (restaure les fichiers à partir de l’image).

Faut‑il purger SoftwareDistribution à chaque fois ? Non, seulement lorsque des erreurs de métadonnées/caches persistent.

Peut‑on supprimer Catroot2 ? On le renomme ; Windows le recréera au prochain démarrage du service.

Les ESU sont‑ils obligatoires ? Non, mais sans ESU, vous n’avez plus de correctifs de sécurité ; fortement déconseillé en production.

Runbook opérationnel (copier‑coller)

  1. Pré‑check : sauvegarde OK, espace disque >=10 Go, temps correct, proxy confirmé.
  2. DISM/SFC :
    DISM /Online /Cleanup-Image /RestoreHealth
    sfc /scannow
  3. Reset WU :
    net stop wuauserv, bits, cryptsvc, msiserver, trustedinstaller
    Renommer SoftwareDistribution et catroot2
    Redémarrer les services
  4. Test : relancer une détection (wuauclt.exe /detectnow) et vérifier WindowsUpdate.log.
  5. Plan B : installer manuellement SSU puis Rollup (avec wusa), redémarrer.
  6. Plan C : corriger le paquet fautif (CBS.log), puis retenter.
  7. Clôture : DISM /Online /Cleanup-Image /StartComponentCleanup, validation applicative.

Exemples de commandes utiles

:: Forcer une détection immédiate (legacy)
wuauclt.exe /resetauthorization /detectnow
wuauclt.exe /reportnow

:: Vérifier la version de l'agent Windows Update
wmic qfe list brief /format:table

:: Services Update
sc query wuauserv
sc query bits
sc query cryptsvc 

Indicateurs de réussite

  • Recherche et installation de mises à jour sans erreur.
  • DISM retourne « The restore operation completed successfully » et SFC indique « Windows Resource Protection did not find any integrity violations ».
  • Plus d’erreurs 0x80070490 dans WindowsUpdate.log et CBS.log.

Résumé

L’erreur 0x80070490 signale une corruption susceptible de siéger dans le magasin de composants ou les métadonnées Windows Update. Sur un Windows Server 2012 R2 encore en service, appliquez d’abord la combinaison DISM + SFC, puis réinitialisez les composants Windows Update. Si nécessaire, installez manuellement la SSU et le Rollup adaptés. À moyen terme, planifiez une migration vers une version prise en charge pour retrouver un cycle de correctifs fiable et les derniers durcissements de sécurité.


Référence rapide

Check‑list

  • Backup/snapshot validé
  • DISM /RestoreHealth → OK
  • SFC /scannow → OK
  • Reset SoftwareDistribution et catroot2
  • SSU + Rollup installés
  • WSUS/proxy/TLS 1.2 vérifiés
  • Journaux propres (WU/CBS)
  • Plan de migration tracé

Emplacements des journaux

JournalCheminUtilité
WindowsUpdate.logC:\Windows\WindowsUpdate.logDétection, téléchargement, installation des KB.
CBS.logC:\Windows\Logs\CBS\CBS.logIntégrité du magasin de composants, SFC/DISM.
Event ViewerApplications and Services Logs\Microsoft\Windows\WindowsUpdateClient\OperationalTraces événementielles Windows Update.

Services à connaître

ServiceNomRôle
Windows UpdatewuauservAgent de mise à jour.
BITSbitsTéléchargement en tâche de fond.
Cryptographic ServicescryptsvcCatalogue et signatures, catroot2.
Windows InstallermsiserverMoteur MSI (certaines KB).
Windows Modules InstallertrustedinstallerGestionnaire de composants Windows.

Conseil stratégique

Si la migration n’est pas immédiate, sécurisez un contrat ESU (jusqu’en octobre 2026) pour rester protégé pendant la phase de transition. En parallèle, lancez un projet de montée de version : inventaire applicatif, compatibilités, chemins d’upgrade, plan de bascule et de retour arrière.


En résumé : commencez par DISM + SFC, poursuivez avec la réinitialisation WU, installez SSU + Rollup si besoin, validez les journaux, puis planifiez la migration. C’est la méthode la plus fiable pour éliminer l’erreur 0x80070490 sur Windows Server 2012 R2 tout en gardant votre environnement sécurisé.

Sommaire