Votre mise à jour de sécurité KB5037782 échoue sur Windows Server 2022 (21H2) avec 0x80073701 ou 0x800F0831 ? Ce guide pas‑à‑pas (DISM, SSU/LCU, source ISO, WSUS) propose une méthode reproductible pour diagnostiquer et corriger définitivement l’erreur.
Vue d’ensemble du problème
Sur Windows Server 2022 (build 20348.x), l’installation de KB5037782 peut échouer avec :
- WUSA →
0x80073701
— The referenced assembly could not be found. - DISM → échec en finalisation
0x800F0831
(source/prérequis manquant).
Ces codes pointent généralement vers : dépendance ou SSU manquant, magasin de composants (WinSxS) endommagé, source de réparation indisponible (WSUS/hors ligne), ou package non adapté au build/édition.
Symptômes fréquents
- WUSA s’arrête immédiatement avec 0x80073701.
- DISM indique “Failed to resolve package” ou “manifest missing”.
- Environnement WSUS : RestoreHealth échoue sans accès à Internet.
- Paquets en Install Pending qui bloquent toute nouvelle LCU.
Causes probables et résolution — la logique d’abord
Symptôme | Cause probable | Action corrective |
---|---|---|
0x80073701 (WUSA) | Assemblage WinSxS référencé manquant/corrompu | DISM RestoreHealth (idéalement avec source), puis réinstaller LCU |
0x800F0831 (DISM) | Prérequis introuvable (souvent SSU) ou source indisponible | Installer SSU adapté, fournir /Source locale, relancer LCU |
Paquet en “Install Pending” | Mise à jour précédente non finalisée | DISM /Online /Cleanup-Image /RevertPendingActions + redémarrage |
Serveur hors ligne/WSUS uniquement | DISM ne peut pas télécharger les dépendances | Monter un ISO même build et utiliser /Source:wim|esd |
Package inadapté | Mauvaise édition/build (Azure Edition / Core / Desktop) | Vérifier build 20348.x et l’édition, reprendre le bon package |
Diagnostic guidé (rapide et reproductible)
Identifier l’élément manquant dans CBS.log
Filtrez les erreurs caractéristiques et exportez-les pour analyse :
findstr /i /c:"error" /c:"0x800f0831" /c:"0x80073701" %windir%\Logs\CBS\CBS.log > "%userprofile%\Desktop\CBS_erreurs.txt"
Recherchez explicitement : “Missing package”, “Failed to resolve package”, “manifest missing”, “Package_for_ServicingStack”, ou une KB demandée en prérequis. Notez l’identité exacte du package (ex. Package_for_ServicingStack~31bf3856ad364e35~amd64~~20348.XXXXX
).
Vérifier build et édition de l’OS
ver
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Confirmez Windows Server 2022 (version 10.0, build 20348.x) et l’édition (Standard/Datacenter, Core/Desktop, Azure Edition). Un package LCU/SSU doit correspondre à ce build/édition.
Contrôles de santé et d’environnement (préflight)
- Vérifier l’espace disque : au moins 10 Go libres sur
C:
(WinSxS, SoftwareDistribution). - Vérifier si un redémarrage est en attente :
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" /f * reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" /f *
- GPO empêchant l’accès Internet WU : “Ne pas se connecter aux emplacements Windows Update sur Internet”.
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DoNotConnectToWindowsUpdateInternetLocations reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
SiUseWUServer=1
, RestoreHealth ne pourra pas télécharger ; prévoyez /Source.
Réparation du magasin de composants (WinSxS) et des fichiers système
Commencez par nettoyer/évaluer/réparer via DISM et SFC :
DISM /Online /Cleanup-Image /StartComponentCleanup
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Important : en environnement WSUS/hors ligne, /RestoreHealth
échouera souvent avec 0x800F0831
faute de source. Dans ce cas, passez immédiatement à la réparation avec source locale.
Analyser l’état du magasin
DISM /Online /Cleanup-Image /AnalyzeComponentStore
Cela aide à évaluer l’intégrité globale et la place récupérable. Évitez /ResetBase
à chaud sur des serveurs critiques (plus de désinstallation possible des mises à jour supersédées).
Réparation avec une source locale (ISO même build)
Montez un ISO de Windows Server 2022 correspondant au même build, repérez l’index de l’édition, puis utilisez-le comme source :
dism /Get-WimInfo /WimFile:D:\sources\install.wim
REM Si l'ISO contient un install.esd :
dism /Get-WimInfo /WimFile:D:\sources\install.esd
REM Réparation avec source WIM (remplacez :1 par l'index de votre édition)
DISM /Online /Cleanup-Image /RestoreHealth /Source\:wim\:D:\sources\install.wim:1 /LimitAccess
REM Variante ESD (si pas de WIM)
DISM /Online /Cleanup-Image /RestoreHealth /Source\:esd\:D:\sources\install.esd:1 /LimitAccess </code></pre>
<p><em>Astuce</em> : l’index doit correspondre à l’édition installée (Standard/Datacenter, Core/Desktop). Un mauvais index peut empêcher DISM de résoudre les composants.</p>
<hr />
<h2>Installer les prérequis (SSU) puis la mise à jour cumulative (LCU)</h2>
<p>Les <strong>LCU</strong> sont <em>cumulatives</em> : la dernière LCU inclut les correctifs précédents, <strong>y compris KB5037782</strong>. Commencez par installer l’<strong>SSU</strong> le plus récent adapté à Windows Server 2022, puis la <strong>LCU</strong>.</p>
<h3>Installation hors ligne (manuelle)</h3>
<pre><code class="language-bat">REM Installer le SSU (MSU)
wusa.exe C:\Temp\Windows10.0-KB<SSU>-x64.msu /quiet /norestart
REM Installer ensuite la LCU (CAB)
dism /Online /Add-Package /PackagePath\:C:\Temp\Windows10.0-KB\<LCU>-x64.cab </code></pre>
<p>Si le <em>CBS.log</em> cite une KB précise comme <em>prérequis</em>, installez-la d’abord. <strong>Bonne pratique</strong> : préférez installer la <em>dernière LCU</em> disponible pour votre build plutôt que de “chasser” une LCU ancienne.</p>
<hr />
<h2>Réinitialiser les composants Windows Update (si nécessaire)</h2>
<p>Réinitialisez le cache WU avant de retenter, surtout si les téléchargements sont corrompus ou bloqués :</p>
<pre><code class="language-bat">net stop bits
net stop wuauserv
net stop cryptsvc
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start msiserver
net start cryptsvc
net start wuauserv
net start bits </code></pre>
<hr />
<h2>Retenter l’installation et vérifier</h2>
<ol>
<li><strong>Retenter l’installation</strong> :
<ul>
<li>Option recommandée : installer <em>directement</em> la <strong>dernière LCU</strong> (cumulative).</li>
<li>Option ciblée : relancer <strong>KB5037782</strong> si exigée par votre fenêtre de changement.</li>
</ul>
</li>
<li><strong>Vérifier l’état des packages</strong> :
<pre><code class="language-bat">dism /online /Get-Packages /Format:Table | more
</code></pre>
</li>
<li><strong>Traiter les paquets bloqués</strong> :
<pre><code class="language-bat">DISM /Online /Cleanup-Image /RevertPendingActions
shutdown /r /t 0
</code></pre>
</li>
<li><strong>Contrôler l’inventaire des correctifs</strong> :
<pre><code class="language-powershell">Get-HotFix | Sort-Object -Property InstalledOn | Format-Table -Auto
Cas particuliers & astuces d’expert
- Serveur Core : la procédure est identique. Pensez à utiliser PowerShell distant ou
sconfig
pour paramètres réseau/proxy. - Langue/LP : des packs de langue obsolètes peuvent bloquer une LCU. Mettez-les à niveau ou supprimez les LP non utilisés, puis réparez via /Source.
- Évitez ResetBase sur des systèmes où le retour arrière de correctifs est requis (clusters, DC).
- Clusters : traitez nœud par nœud (CAU/maintenance mode). Vérifiez la santé du magasin avant de basculer les rôles.
- Disque : en dessous de 5–10 Go libres, DISM peut échouer silencieusement. Libérez l’espace (logs,
WinSxS
cleanup contrôlé, répertoires temporaires). - Événements utiles : Applications et services logs > Microsoft > Windows > CBS, WindowsUpdateClient, Servicing.
Scripts prêts à l’emploi (collecte & réparation)
Collecte rapide pour diagnostic
$out = "$env:USERPROFILE\Desktop\WS2022_KB5037782_Diag"
New-Item -ItemType Directory -Path $out -Force | Out-Null
# Build & édition
(Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber, OsArchitecture) |
Tee-Object -File "\$out\osinfo.txt"
# GPO WU/WSUS
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /s > "\$out\wu\_policies.txt" 2>&1
# Paquets & état DISM
dism /online /Get-Packages /Format\:Table > "\$out\packages.txt"
dism /online /Cleanup-Image /ScanHealth > "\$out\scanhealth.txt"
# CBS & WindowsUpdate.log reconstitué
Copy-Item "\$env\:windir\Logs\CBS\CBS.log" "\$out\CBS.log" -ErrorAction SilentlyContinue
Get-WindowsUpdateLog -LogPath "\$out\WindowsUpdate.log" -ErrorAction SilentlyContinue
# Résumé écran
"\`nDossier de diagnostic : \$out" | Write-Host
Réparation semi-automatique avec source ISO (si fournie)
Le snippet ci-dessous tente une réparation locale avec un ISO monté (D:
par défaut) et installe ensuite SSU puis LCU si présents dans C:\Temp
. Adaptez les chemins à votre contexte.
$iso = "D:\sources\install.wim"
$esd = "D:\sources\install.esd"
$idx = 1 # Ajustez selon votre édition
$haveWim = Test-Path $iso
$haveEsd = Test-Path $esd
Write-Host "=== StartComponentCleanup / ScanHealth ==="
Start-Process -FilePath dism -ArgumentList "/Online","/Cleanup-Image","/StartComponentCleanup" -Wait -NoNewWindow
Start-Process -FilePath dism -ArgumentList "/Online","/Cleanup-Image","/ScanHealth" -Wait -NoNewWindow
if (\$haveWim) {
Write-Host "=== RestoreHealth via WIM ==="
Start-Process -FilePath dism -ArgumentList "/Online","/Cleanup-Image","/RestoreHealth","/Source\:wim:\$iso:\$idx","/LimitAccess" -Wait -NoNewWindow
} elseif (\$haveEsd) {
Write-Host "=== RestoreHealth via ESD ==="
Start-Process -FilePath dism -ArgumentList "/Online","/Cleanup-Image","/RestoreHealth","/Source\:esd:\$esd:\$idx","/LimitAccess" -Wait -NoNewWindow
} else {
Write-Warning "Aucune source locale trouvée. Montez un ISO WS2022."
}
# Installation SSU / LCU si fichiers disponibles
\$ssu = Get-ChildItem "C:\Temp" -Filter "Windows10.0-KB\*-x64.msu" -ErrorAction SilentlyContinue | Select-Object -First 1
\$lcu = Get-ChildItem "C:\Temp" -Filter "Windows10.0-KB\*-x64.cab" -ErrorAction SilentlyContinue | Select-Object -First 1
if (\$ssu) {
Write-Host "=== Installation SSU (\$(\$ssu.Name)) ==="
Start-Process -FilePath wusa.exe -ArgumentList "`"$($ssu.FullName)`"","/quiet","/norestart" -Wait -NoNewWindow
}
if (\$lcu) {
Write-Host "=== Installation LCU (\$(\$lcu.Name)) ==="
Start-Process -FilePath dism -ArgumentList "/Online","/Add-Package","/PackagePath:\$(\$lcu.FullName)" -Wait -NoNewWindow
}
Write-Host "=== Vérification des paquets ==="
Start-Process -FilePath dism -ArgumentList "/online","/Get-Packages","/Format\:Table" -Wait -NoNewWindow
Write-Host "Terminé. Redémarrage conseillé."
Lecture et interprétation de CBS.log : quoi chercher
Les lignes suivantes orientent le diagnostic :
Missing package: Package_for_ServicingStack...
→ SSU requis non présent.Failed to resolve package
→ dépendance introuvable dans la source fournie.Manifest missing for component
→ composant WinSxS corrompu : RestoreHealth avec /Source.0x800F0831
pendantFinalizing
→ la source (WU/WSUS/ISO) ne contient pas la version exigée d’un package référencé.
Recoupez l’identité du package et votre build. Si CBS cite une KB précise, installez-la manuellement en premier. Sinon, le duo SSU + dernière LCU corrige la plupart des cas.
Tableaux de référence rapides
Codes d’erreur & remèdes
Code | Signification | Remède prioritaire |
---|---|---|
0x80073701 | Assemblage référencé introuvable | DISM RestoreHealth avec /Source, puis LCU |
0x800F0831 | Prérequis/dépendance manquant(e) | Installer SSU adéquat, fournir source ISO, réinstaller LCU |
0x800F0922 / 0x8024xxx | Problèmes de téléchargement/applicabilité | Réinitialiser WU, vérifier GPO/proxy/WSUS |
Scénarios & actions
Scénario | Action | Point d’attention |
---|---|---|
Serveur totalement hors ligne | ISO même build + /Source:wim|esd | Index édition exact, espace disque |
WSUS uniquement | SSU + LCU hors ligne, /LimitAccess | GPO UseWUServer bloque WU Internet |
Chaîne de mise à jour bloquée | RevertPendingActions + reboot | Relancer LCU après redémarrage |
WinSxS suspect | ScanHealth → RestoreHealth (source) | Éviter ResetBase si rollback nécessaire |
Bonnes pratiques (avant/après)
- Snapshot/backup avant intervention (VM, système critique).
- Fenêtre de maintenance avec redémarrage planifié.
- Journalisation : conservez CBS.log, WindowsUpdate.log, et export DISM pour post‑mortem.
- Uniformisez les sources (ISO et packages) dans un dépôt interne approuvé.
- Hygiène WinSxS :
StartComponentCleanup
régulier (tâche planifiée) sans/ResetBase
sur serveurs sensibles.
FAQ
Pourquoi Windows Server 2022 affiche “Windows 10.0” dans le nom de package ?
C’est normal : le noyau est 10.0 et l’identifiant “Windows10.0” figure dans les noms de KB/paquets pour Server 2022 (build 20348).
Dois‑je absolument installer KB5037782 et pas une autre ?
Non. Les LCUs sont cumulatives. Installer la dernière LCU pour votre build apporte aussi les correctifs de KB5037782.
Mon ISO contient seulement install.esd
, pas install.wim
. C’est gênant ?
Non. DISM sait utiliser une source ESD : /Source:esd:D:\sources\install.esd:Index
.
Le serveur est un contrôleur de domaine : précautions ?
Évitez les opérations destructives (ResetBase), planifiez un redémarrage court, et appliquez sur un nœud à la fois si vous avez plusieurs DC.
Le CBS.log demande une KB spécifique qui n’est plus publiée sur WSUS.
Installez d’abord l’SSU actuel puis la dernière LCU. Cela résout la majorité des dépendances historiques.
Après RevertPendingActions
, dois‑je rejouer SFC ?
Oui, un sfc /scannow
après redémarrage est recommandé.
Plan d’action rapide (mémo exécutable)
- Lire
CBS.log
et identifier la dépendance ou l’SSU manquant. - Exécuter
DISM
(cleanup, scan, restore) +SFC
. - Si WSUS/hors ligne : ISO même build et
/Source:wim|esd
. - Installer d’abord le dernier SSU, puis la dernière LCU (plutôt que KB5037782 isolément).
- Si besoin, réinitialiser WU,
RevertPendingActions
, redémarrer, retenter.
Annexes — commandes clé (copier/coller)
Filtrage CBS.log
findstr /i /c:"error" /c:"0x800f0831" /c:"0x80073701" %windir%\Logs\CBS\CBS.log > "%userprofile%\Desktop\CBS_erreurs.txt"
Inventaire packages installés
dism /online /Get-Packages /Format:Table | more
Cycle réparation complet (en ligne)
DISM /Online /Cleanup-Image /StartComponentCleanup
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Réparation hors ligne (ISO)
dism /Get-WimInfo /WimFile:D:\sources\install.wim
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccess
Installation SSU + LCU (offline)
wusa.exe C:\Temp\Windows10.0-KB<SSU>-x64.msu /quiet /norestart
dism /Online /Add-Package /PackagePath:C:\Temp\Windows10.0-KB<LCU>-x64.cab
Réinitialisation Windows Update
net stop bits
net stop wuauserv
net stop cryptsvc
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start msiserver
net start cryptsvc
net start wuauserv
net start bits
Déblocage paquets en attente
DISM /Online /Cleanup-Image /RevertPendingActions
shutdown /r /t 0
Conclusion
Dans l’immense majorité des échecs d’installation de KB5037782 sur Windows Server 2022 (21H2), les codes 0x80073701 et 0x800F0831 se résolvent en : (1) analyse du CBS.log, (2) réparation DISM/SFC avec source ISO si nécessaire, (3) installation du dernier SSU puis de la dernière LCU. En cas de blocage, une réinitialisation de Windows Update et un reboot suivi d’une nouvelle tentative permettent de finaliser la correction. Ce parcours, appliqué méthodiquement, restaure l’intégrité du magasin de composants et redonne un canal de mise à jour fiable pour les prochains Patch Tuesdays.