Corriger l’échec KB5037782 (0x80073701, 0x800F0831) sur Windows Server 2022 21H2 : DISM, SSU/LCU, WSUS, ISO

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.

Sommaire

Vue d’ensemble du problème

Sur Windows Server 2022 (build 20348.x), l’installation de KB5037782 peut échouer avec :

  • WUSA0x80073701The 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ômeCause probableAction corrective
0x80073701 (WUSA)Assemblage WinSxS référencé manquant/corrompuDISM RestoreHealth (idéalement avec source), puis réinstaller LCU
0x800F0831 (DISM)Prérequis introuvable (souvent SSU) ou source indisponibleInstaller SSU adapté, fournir /Source locale, relancer LCU
Paquet en “Install Pending”Mise à jour précédente non finaliséeDISM /Online /Cleanup-Image /RevertPendingActions + redémarrage
Serveur hors ligne/WSUS uniquementDISM ne peut pas télécharger les dépendancesMonter 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 Si UseWUServer=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>&nbsp;: 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>&nbsp;: 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&nbsp;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&lt;SSU&gt;-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>&nbsp;: 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&nbsp;:</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>&nbsp;:
    <ul>
      <li>Option recommandée&nbsp;: installer <em>directement</em> la <strong>dernière LCU</strong> (cumulative).</li>
      <li>Option ciblée&nbsp;: 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>&nbsp;:
    <pre><code class="language-bat">dism /online /Get-Packages /Format:Table | more
</code></pre>
  </li>
  <li><strong>Traiter les paquets bloqués</strong>&nbsp;:
    <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>&nbsp;:
    <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 pendant Finalizing → 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

CodeSignificationRemède prioritaire
0x80073701Assemblage référencé introuvableDISM RestoreHealth avec /Source, puis LCU
0x800F0831Prérequis/dépendance manquant(e)Installer SSU adéquat, fournir source ISO, réinstaller LCU
0x800F0922 / 0x8024xxxProblèmes de téléchargement/applicabilitéRéinitialiser WU, vérifier GPO/proxy/WSUS

Scénarios & actions

ScénarioActionPoint d’attention
Serveur totalement hors ligneISO même build + /Source:wim|esdIndex édition exact, espace disque
WSUS uniquementSSU + LCU hors ligne, /LimitAccessGPO UseWUServer bloque WU Internet
Chaîne de mise à jour bloquéeRevertPendingActions + rebootRelancer LCU après redémarrage
WinSxS suspectScanHealthRestoreHealth (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)

  1. Lire CBS.log et identifier la dépendance ou l’SSU manquant.
  2. Exécuter DISM (cleanup, scan, restore) + SFC.
  3. Si WSUS/hors ligne : ISO même build et /Source:wim|esd.
  4. Installer d’abord le dernier SSU, puis la dernière LCU (plutôt que KB5037782 isolément).
  5. 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 &gt; "%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&lt;SSU&gt;-x64.msu /quiet /norestart
dism /Online /Add-Package /PackagePath:C:\Temp\Windows10.0-KB&lt;LCU&gt;-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.

Sommaire