BSOD 0xc000021a après KB5034768 sur Windows Server 2019 : causes, correctifs et bonnes pratiques

Après l’installation de KB5034768 sur Windows Server 2019, une VM peut redémarrer en boucle avec un écran bleu 0xc000021a. Ce guide propose un contournement rapide, une procédure WinRE pas à pas, la neutralisation de pilotes tiers (ex. EDR) et un plan de réapplication contrôlée.

Sommaire

Contexte et symptômes

Cas typique observé : sur un hôte Hyper‑V, une machine Windows Server 2019 Standard 1809 hébergeant SQL Server 2014 redémarre systématiquement avec un écran bleu après l’installation de la mise à jour cumulative KB5034768. Les tentatives d’auto‑réparation échouent et les autres VMs identiques ne sont pas affectées. Le code d’arrêt affiché est 0xc000021a (arrêt d’un processus critique en mode utilisateur, tel que winlogon.exe ou csrss.exe), très souvent lié à un conflit avec un pilote ou un filtre en mode utilisateur/noyau, notamment les agents de sécurité ou EDR.

ÉlémentDétails
EnvironnementVM Hyper‑V, Windows Server 2019 Standard 1809, rôle base de données SQL Server 2014
SymptômeÉcran bleu 0xc000021a, boucle de redémarrage, échec de réparation automatique
PérimètreUne VM affectée, autres VMs de même modèle à jour et stables
Cause probableConflit de pilote ou composant utilisateur (ex. EDR, filtre AV). SQL Server est rarement la cause directe.
ContournementExclure temporairement KB5034768 du déploiement sur la VM concernée

Contournement immédiat

Le but est d’éviter de reproduire le blocage sur d’autres serveurs tout en continuant à appliquer le reste des correctifs de sécurité.

  • Mettre en pause ou décliner KB5034768 sur les machines affectées via WSUS, votre outil de patch management ou PowerShell, tout en laissant passer les autres mises à jour.
  • Garder une visibilité : marquer la VM affectée dans votre inventaire, ouvrir une observation d’incident interne et tracer la déviation de patching.
  • Créer un checkpoint Hyper‑V ou un snapshot stockage avant toute nouvelle tentative.

Exemples rapides

PowerShell (module PSWindowsUpdate) pour masquer un correctif :

Install-Module PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
Hide-WindowsUpdate -KBArticleID KB5034768 -Force

WSUS : décliner le correctif depuis le serveur WSUS (script à lancer sur le serveur WSUS) :

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("MonServeurWSUS",$false,8530)
$updates = $wsus.SearchUpdates("KB5034768")
$updates | ForEach-Object { $_.Decline() }

Procédure de récupération quand le système ne démarre plus

Si la VM boucle au démarrage, utilisez WinRE pour intervenir hors‑ligne et retirer les actions en attente, voire le package incriminé.

Accéder à l’environnement de récupération

  • Démarrer depuis l’ISO Windows Server ou depuis le mode récupération intégré.
  • Choisir DépannageInvite de commandes.
  • Identifier la lettre de lecteur de Windows hors‑ligne (souvent D:) : diskpart list vol exit

Annuler les actions en attente

Cette étape suffit souvent à casser la boucle de redémarrage quand l’installation s’est mal finalisée.

DISM /Image:D:\ /Cleanup-Image /RevertPendingActions

Désinstaller le package incriminé

Si l’annulation des actions en attente ne suffit pas, répertoriez les packages installés puis retirez celui qui correspond à la mise à jour cumulative.

DISM /Image:D:\ /Get-Packages
DISM /Image:D:\ /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.x.y.z

Conseils : la ligne exacte du package est récupérée avec /Get-Packages. Exécutez la suppression hors‑ligne (/Image:D:\), pas en /Online depuis WinRE.

Vérifications et réparations complémentaires

  • Vérifier et réparer les fichiers système hors‑ligne : sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows
  • Optionnel : vérification du disque : chkdsk D: /f

Forcer un démarrage en mode sans échec

Si vous devez démarrer avec un jeu de pilotes minimal pour désinstaller un agent, forcez une session de démarrage en mode sans échec :

bcdedit /set {default} safeboot minimal

Après remédiation, retirez l’option :

bcdedit /deletevalue {default} safeboot

Désinstallation d’un pilote tiers pointé par l’écran bleu

Si l’écran bleu mentionne un pilote tiers (par exemple le message DRIVER UNLOADED WITHOUT CANCELLING PENDING OPERATIONS et un fichier edrdrv.sys d’un agent EDR Xcitium/Comodo), il faut démarrer minimalement et retirer l’agent proprement.

Étapes conseillées

  1. Démarrer en mode sans échec (voir la section précédente si nécessaire).
  2. Activer Windows Installer en mode sans échec pour pouvoir désinstaller depuis Programmes et fonctionnalités ou MSI : REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\MSIServer" /VE /T REG_SZ /F /D "Service" REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" /VE /T REG_SZ /F /D "Service" net start msiserver
  3. Désinstaller l’agent EDR/AV incriminé depuis l’interface ou le MSI, puis redémarrer normalement.

Alternative hors‑ligne si l’OS ne démarre pas

En dernier recours, désactivez le service du pilote dans la ruche SYSTEM chargée hors‑ligne :

reg load HKLM\OFFLINE_SYSTEM D:\Windows\System32\Config\SYSTEM
reg add "HKLM\OFFLINE_SYSTEM\ControlSet001\Services\edrdrv" /v Start /t REG_DWORD /d 4 /f
reg unload HKLM\OFFLINE_SYSTEM

Réactivez ensuite un démarrage normal pour procéder à une désinstallation propre de l’agent.

Bonnes pratiques avant de retenter l’installation

  • Mettre à jour ou retirer temporairement les agents de sécurité, filtres antivirus, pilotes sensibles (EDR, anti‑exploits, DLP, sécurité du disque).
  • Créer un checkpoint ou une sauvegarde cohérente application avant tout redéploiement.
  • Tester sur un périmètre pilote statistiquement représentatif (même pile logicielle de sécurité, mêmes drivers).
  • Prévoir un retour arrière si la machine redémre encore : wusa /uninstall /kb:5034768 À exécuter en mode sans échec si besoin. Hors‑ligne, préférez DISM.
  • Analyser les minidumps situés dans C:\Windows\Minidump : le champ « What failed » indique souvent le .sys fautif.

Arbre de décision ultra‑résumé

SituationAction immédiateCommande clé
Boucle de redémarrage après installationAnnuler actions en attenteDISM /Image:D:\ /Cleanup-Image /RevertPendingActions
Boucle persistanteRetirer la cumulative hors‑ligneDISM /Image:D:\ /Remove-Package /PackageName:...
Écran bleu cite un pilote EDR/AVMode sans échec, activer MSI, désinstaller agentnet start msiserver puis désinstallation
Impossible de démarrer même en sans échecDésactiver le service du pilote hors‑lignereg load ... & reg add ... Start=4
Retour au système okMettre à jour l’agent fautif, retester la cumulativeCheckpoint & déploiement contrôlé

Diagnostic approfondi

Comprendre l’arrêt en mode utilisateur

Le code 0xc000021a survient lorsque des composants critiques en mode utilisateur (par exemple csrss.exe ou winlogon.exe) cessent de répondre ou sont mis en échec par une intégration tierce. Les filtres EDR/AV interceptent parfois des appels système, injectent des DLL, ou installent des pilotes interposés. Une évolution de noyau ou de composants utilisateurs introduite par une cumulative peut briser ces intégrations et provoquer l’arrêt immédiat pour préserver la cohérence du système.

Indices qui orientent vers un conflit de pilote

  • La panne touche une seule VM d’un lot homogène.
  • Le message d’erreur cite un nom de fichier .sys ou un message type DRIVER UNLOADED WITHOUT CANCELLING PENDING OPERATIONS.
  • La désactivation/désinstallation d’un agent EDR/AV fait disparaître le BSOD.

Collecte d’artefacts

  • Minidumps : C:\Windows\Minidump\*.dmp. Analyser avec WinDbg (!analyze -v) pour retrouver le module fautif.
  • Journal de démarrage : activer puis consulter %SystemRoot%\ntbtlog.txt : bcdedit /set {default} bootlog Yes
  • Export des journaux hors‑ligne pour corrélation : wevtutil epl System D:\Temp\System.evtx wevtutil epl Application D:\Temp\Application.evtx

Réintégration contrôlée de la mise à jour

  1. Corriger la cause : mettre à jour l’EDR/AV ou retirer le pilote fautif. Vérifier la compatibilité auprès de l’éditeur de l’agent.
  2. Préparer le rollback : checkpoint Hyper‑V, sauvegardes valides applicatives et système.
  3. Tester en pré‑prod sur une VM clonée ou un serveur pilote strictement équivalent.
  4. Déployer par vagues et observer : CPU, services, journaux d’événements, fiabilité.
  5. Documenter le correctif : version d’agent, horodatage, identifiant du package réellement installé.

Foire aux questions

Le rôle base de données peut‑il être la cause ?
Peu probable. SQL Server s’exécute au‑dessus du système et n’intervient pas dans les transitions d’initialisation qui déclenchent 0xc000021a. Les agents de sécurité ou filtres drivers sont des suspects bien plus fréquents.

Faut‑il réinstaller le système ?
Non, la plupart des cas se résolvent par l’annulation des actions en attente, la désinstallation du package fautif, et/ou la neutralisation d’un pilote tiers.

Peut‑on utiliser l’outil wusa depuis WinRE ?
Hors‑ligne, wusa n’est pas la meilleure option. Préférez DISM /Image:D:\ /Remove-Package qui cible proprement l’installation hors‑ligne.

Comment vérifier l’identité exacte du package à retirer ?
Listez les packages avec DISM /Image:D:\ /Get-Packages. Cherchez la ligne contenant l’identité de la cumulative correspondant à la KB, du type Package_for_RollupFix~...~17763.x.y.z.

Un pilote EDR a été mis en cause, que faire pour éviter la récidive ?
Mettez à jour l’agent vers une version certifiée pour la build et la cumulative, ou planifiez son retrait temporaire avant la fenêtre de patching puis sa réintégration après validation.

Annexes et scripts utiles

Masquer une mise à jour avec PowerShell

Install-Module PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
Get-WindowsUpdate -KBArticleID KB5034768 -IgnoreReboot
Hide-WindowsUpdate -KBArticleID KB5034768 -Force

Décliner un correctif sur WSUS

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("MonServeurWSUS",$false,8530)
$updates = $wsus.SearchUpdates("KB5034768")
$updates | ForEach-Object { $_.Decline() }

Forcer le prochain démarrage en mode sans échec

bcdedit /set {default} safeboot minimal
REM ... remédiation ...
bcdedit /deletevalue {default} safeboot

Retirer la cumulative hors‑ligne depuis WinRE

DISM /Image:D:\ /Get-Packages > D:\packages.txt
type D:\packages.txt
DISM /Image:D:\ /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~17763.x.y.z

Annuler les actions en attente

DISM /Image:D:\ /Cleanup-Image /RevertPendingActions

Activer Windows Installer en mode sans échec

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\MSIServer" /VE /T REG_SZ /F /D "Service"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" /VE /T REG_SZ /F /D "Service"
net start msiserver

Désactivation hors‑ligne d’un service de pilote récalcitrant

reg load HKLM\OFFLINE_SYSTEM D:\Windows\System32\Config\SYSTEM
reg add "HKLM\OFFLINE_SYSTEM\ControlSet001\Services\edrdrv" /v Start /t REG_DWORD /d 4 /f
reg unload HKLM\OFFLINE_SYSTEM

Conclusion

Un écran bleu 0xc000021a après installation d’une cumulative sur Windows Server 2019 provient le plus souvent d’un conflit de pilote ou d’un agent de sécurité. Le triptyque annuler les actions en attenteretirer la cumulative hors‑ligneneutraliser/désinstaller l’agent fautif permet de rétablir le démarrage dans la majorité des cas. La réapplication de la mise à jour doit ensuite être conduite de manière contrôlée : mise à jour du pilote incriminé, checkpoint, pilote de test, et déploiement progressif. Enfin, institutionnaliser ces étapes dans votre processus de patching réduit fortement le risque de récidive.

Sommaire