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.
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 messagesCBS_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
- Réparer l’image :
DISM /Online /Cleanup-Image /RestoreHealth
→ puissfc /scannow
. - Réinitialiser Windows Update : arrêter les services, renommer
SoftwareDistribution
etCatroot2
, redémarrer les services. - 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é
Étape | Action détaillée | But/Commentaire |
---|---|---|
Réparer l’image | DISM /Online /Cleanup-Image /RestoreHealth sfc /scannow | Répare le magasin CBS et restaure les fichiers système corrompus. |
Réinitialiser WU | Arrê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 manuellement | Installer 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 journaux | Ouvrir C:\Windows\WindowsUpdate.log et C:\Windows\Logs\CBS\CBS.log . | Identifier un paquet/dépendance précis à corriger/supprimer/réinstaller. |
ESU | Si 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 :
- Montez l’ISO et identifiez l’index de l’édition (
/Get-WimInfo
).
dism /Get-WimInfo /WimFile:D:\sources\install.wim
- 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 :
- Téléchargez la SSU et le Rollup correspondant à 2012 R2 (
x64
). - Installez d’abord la SSU (
wusa.exe <KB-ssu.msu> /quiet /norestart
), redémarrez. - 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 > 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 "Failed Pending"
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
puiswuauclt.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)
- Pré‑check : sauvegarde OK, espace disque >=10 Go, temps correct, proxy confirmé.
- DISM/SFC :
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
- Reset WU :
net stop wuauserv
,bits
,cryptsvc
,msiserver
,trustedinstaller
RenommerSoftwareDistribution
etcatroot2
Redémarrer les services - Test : relancer une détection (
wuauclt.exe /detectnow
) et vérifier WindowsUpdate.log. - Plan B : installer manuellement SSU puis Rollup (avec
wusa
), redémarrer. - Plan C : corriger le paquet fautif (CBS.log), puis retenter.
- 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
etCBS.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
etcatroot2
- SSU + Rollup installés
- WSUS/proxy/TLS 1.2 vérifiés
- Journaux propres (WU/CBS)
- Plan de migration tracé
Emplacements des journaux
Journal | Chemin | Utilité |
---|---|---|
WindowsUpdate.log | C:\Windows\WindowsUpdate.log | Détection, téléchargement, installation des KB. |
CBS.log | C:\Windows\Logs\CBS\CBS.log | Intégrité du magasin de composants, SFC/DISM. |
Event Viewer | Applications and Services Logs\Microsoft\Windows\WindowsUpdateClient\Operational | Traces événementielles Windows Update. |
Services à connaître
Service | Nom | Rôle |
---|---|---|
Windows Update | wuauserv | Agent de mise à jour. |
BITS | bits | Téléchargement en tâche de fond. |
Cryptographic Services | cryptsvc | Catalogue et signatures, catroot2 . |
Windows Installer | msiserver | Moteur MSI (certaines KB). |
Windows Modules Installer | trustedinstaller | Gestionnaire 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é.