KB5037765, KB5037932, KB5038283 : vérifier l’installation sur Windows Server 2019 et corriger l’historique Windows Update

Les échecs répétés de Windows Update sur Windows Server 2019 peuvent prêter à confusion : l’interface graphique affiche des erreurs alors que les correctifs semblent avoir été appliqués manuellement. Cet article passe en revue les paquets KB5037765, KB5037932 et KB5038283, explique comment prouver leur présence réelle, pourquoi l’historique reste « rouge » et fournit une procédure fiable pour remettre le moteur Windows Update dans un état cohérent.

Sommaire

Pourquoi ces trois mises à jour sont essentielles ?

Depuis la publication de Windows 10 1809 — dont Windows Server 2019 partage le code — Microsoft livre chaque mois :

  • une mise à jour cumulative de sécurité/fiabilité du système ;
  • une mise à jour cumulative du framework .NET ;
  • éventuellement, un aperçu .NET (« Preview ») en fin de mois.
KBDate de publicationComposantTypeRemplaceNécessite
KB503776514 mai 2024Windows Server 2019Cumulative sécuritéKB5036980SSU 10.0.17763.5292
KB503793214 mai 2024.NET 3.5 / 4.7.2Cumulative sécuritéKB5036988Aucune
KB503828328 mai 2024.NET 3.5 / 4.7.2Preview qualitéKB5037932 (précédent preview)Aucune

La logique de remplacement est cruciale : un aperçu (.NET Preview) n’est jamais obligatoire ; il sera absorbé par la cumulative de sécurité du mois suivant. C’est pourquoi la présence de KB5037932 suffit à protéger le serveur jusqu’au Patch Tuesday de juin.

1 – Vérifier l’installation réelle via DISM

Le journal de confiance reste l’API du moteur de maintenance ; la commande suivante interroge directement sa base de données (CBS) :

DISM /online /get-packages | findstr /i "5037765 5037932 5038283"

Résultat attendu

  • Install State : Installed ➜ correct.
  • Install State : Install Pending ➜ redémarrage requis.
  • Aucune ligne ➜ package non présent sur le système.

2 – Installer manuellement un package manquant

  1. Télécharger le fichier .msu correspondant depuis le Catalogue Microsoft Update et déposer-le dans C:\Temp.
  2. Extraire le .cab interne :
expand -F:* C:\Temp\KB5038283.msu C:\Temp\KB5038283
  1. Ajouter le package au magasin :
DISM /online /add-package /packagepath:C:\Temp\KB5038283\Windows10.0-KB5038283-x64.cab
  1. Redémarrer le serveur pour terminer la transposition des fichiers dans la pile de démarrage.

Pourquoi utiliser DISM plutôt que l’interface graphique ?

DISM s’appuie directement sur la pile de maintenance ; il contourne le service Windows Update (WaaS). On élimine ainsi les erreurs liées au téléchargement, au cache ou à la stratégie de groupe.

3 – Résoudre l’incohérence « Historique ≠ État réel »

L’historique visible sous Paramètres ➜ Windows Update ➜ Afficher l’historique est purement informatif : c’est un fichier ESE (DataStore.edb) que wuauserv met à jour quand une session Windows Update débute. Quand on installe un .cab hors ligne, aucune entrée n’est injectée, d’où l’impression que les échecs persistent.

:: Réinitialisation du cache
net stop wuauserv
del /s /q %windir%\SoftwareDistribution\Datastore\*
net start wuauserv

:: Relance d’un inventaire immédiat
wuauclt /detectnow

Au prochain balayage, l’historique sera régénéré sur la base des paquets réellement installés, et les précédents codes erreur (0x800f081f, 0x80242016, etc.) disparaîtront.

4 – Vérifications complémentaires

PowerShell :

Get-HotFix -Id KB5037765,KB5037932,KB5038283

Si la cmdlet retourne un objet pour KB5037765 et KB5037932 mais rien pour KB5038283, vous savez exactement ce qui manque.

Event Viewer :

Parcourez Applications and Services Logs  ➜ Microsoft ➜ Windows ➜ WindowsUpdateClient :

  • Id : 20 = succès d’installation.
  • Id : 25 = échec « interactive install ».
  • Id : 30 = redémarrage requis.

Servicing Stack Update (SSU)

Depuis septembre 2020, l’SSU est intégré à la cumulative. Toutefois, si votre serveur n’a pas été patché depuis longtemps, vérifiez :

DISM /online /get-packages | findstr 5292

La version 10.0.17763.5292 (mai 2024) est la plus récente au moment de la rédaction. Sans elle, toute tentative d’ajout de la LCU KB5037765 échouera.

5 – Analyse détaillée des codes d’erreur fréquents

CodeSignificationRemède
0x800f081fFichiers sources manquantsInstaller la bonne SSU ; ré‑exécuter DISM.
0x80242016Paquet téléchargé puis suppriméNettoyer SoftwareDistribution et relancer wuauserv.
0x80240017Échec lors de l’installation hors ligneUtiliser /add-package plutôt que wusa.exe.

6 – Mise en place d’une stratégie de patch management saine

  1. Superviser les SSU et les LCU : publier un rapport mensuel (PowerShell) pour visualiser les versions.
  2. Éviter les aperçus (.NET Preview) sur les environnements de production : programmez leur installation dans un ring de pré‑production.
  3. Sauvegarder le système avant tout patch hors bande, surtout sur les contrôleurs de domaine.
  4. Automatiser la purge de SoftwareDistribution dans un script de remédiation pour limiter la dérive de l’historique.
  5. Documenter les correctifs manuels via une base de connaissance interne pour que le transfert d’exploitation reste fluide.

7 – Exemple de script complet (PowerShell)

#region Vérification et installation KB manquante
$packages = @("5037765","5037932","5038283")
$missing = @()
foreach ($p in $packages) {
    if (-not (Get-HotFix -Id "KB$p" -ErrorAction SilentlyContinue)) {
        $missing += $p
    }
}
if ($missing.Count -gt 0) {
    Write-Output "Paquets manquants : $($missing -join ', ')"
    foreach ($p in $missing) {
        $msu = "C:\Temp\KB$p.msu"
        if (Test-Path $msu) {
            Expand-Archive -Path $msu -DestinationPath "C:\Temp\KB$p"
            $cab = Get-ChildItem "C:\Temp\KB$p" -Filter *.cab | Select-Object -First 1
            dism /online /add-package /packagepath:$cab.FullName
        } else {
            Write-Warning "$msu introuvable."
        }
    }
    Restart-Computer -Force
} else {
    Write-Output "Toutes les mises à jour requises sont présentes."
}
#endregion

8 – FAQ rapide

KB5038283 est‑elle indispensable ?

Non. C’est un aperçu facultatif. Elle cible la qualité (.NET) et sera de toute façon incluse dans la cumulative de sécurité du mois suivant.
Comment voir la version exacte du framework .NET ?

Exécutez :
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release
Le nombre retourné (533325, etc.) correspond au build. Comparez‑le à la table MSDN pour vérifier qu’il intègre KB5037932.
Puis‑je supprimer les entrées d’échec sans réinitialiser tout le datastore ?

Oui, via wevtutil.exe el pour exporter puis purger uniquement WindowsUpdateCore, mais la méthode de suppression de DataStore reste la plus rapide.

Conclusion

Ne vous fiez jamais uniquement à l’interface Windows Update : c’est l’équivalent d’un tableau de bord qui peut rester bloqué. Les commandes DISM /get-packages et Get-HotFix reflètent l’état réel du magasin de composants. Une fois les paquets KB5037765 et KB5037932 installés et validés, le serveur est protégé ; l’aperçu KB5038283 peut être ignoré en production. En cas de doute, nettoyez SoftwareDistribution puis forcez un nouvel inventaire : l’historique se recalculera et les échecs fantômes disparaîtront.

Sommaire