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.
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ément | Détails |
---|---|
Environnement | VM 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ètre | Une VM affectée, autres VMs de même modèle à jour et stables |
Cause probable | Conflit de pilote ou composant utilisateur (ex. EDR, filtre AV). SQL Server est rarement la cause directe. |
Contournement | Exclure 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épannage → Invite 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
- Démarrer en mode sans échec (voir la section précédente si nécessaire).
- 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
- 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é
Situation | Action immédiate | Commande clé |
---|---|---|
Boucle de redémarrage après installation | Annuler actions en attente | DISM /Image:D:\ /Cleanup-Image /RevertPendingActions |
Boucle persistante | Retirer la cumulative hors‑ligne | DISM /Image:D:\ /Remove-Package /PackageName:... |
Écran bleu cite un pilote EDR/AV | Mode sans échec, activer MSI, désinstaller agent | net start msiserver puis désinstallation |
Impossible de démarrer même en sans échec | Désactiver le service du pilote hors‑ligne | reg load ... & reg add ... Start=4 |
Retour au système ok | Mettre à jour l’agent fautif, retester la cumulative | Checkpoint & 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
- 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.
- Préparer le rollback : checkpoint Hyper‑V, sauvegardes valides applicatives et système.
- Tester en pré‑prod sur une VM clonée ou un serveur pilote strictement équivalent.
- Déployer par vagues et observer : CPU, services, journaux d’événements, fiabilité.
- 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 attente → retirer la cumulative hors‑ligne → neutraliser/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.