Vous devez empêcher l’installation de la mise à jour KB5033373 sur un Windows Server 2016 ? Voici des méthodes 100 % Microsoft (outil officiel, PowerShell, WSUS/GPO) pour la masquer, la désinstaller proprement si nécessaire et éviter sa réapparition tout en gardant un environnement maintenable.
Vue d’ensemble
Sur Windows Server 2016 (build 14393), les mises à jour de qualité sont cumulatives : un correctif problématique peut revenir via une nouvelle CU. La démarche professionnelle consiste à désinstaller la KB si elle est déjà présente, puis à la masquer pour bloquer son ré‑offre automatique, tout en pilotant le flux via WSUS/GPO. Ce guide couvre :
- La solution rapide avec l’utilitaire Microsoft Show or Hide Updates (
wushowhide.diagcab
). - L’automatisation avec PowerShell (
PSWindowsUpdate
). - Le contrôle centralisé via WSUS et stratégies de groupe.
- Le dépannage : rollback, nettoyage de cache, vérifications et journaux.
Solution directe avec l’outil Microsoft « Show or Hide Updates »
Microsoft distribue toujours le petit utilitaire de résolution des problèmes Show or Hide Updates (wushowhide.diagcab
) qui permet de masquer une mise à jour spécifique. Masquer KB5033373 empêchera Windows Update de la proposer et de l’installer automatiquement.
Étapes détaillées
- Connectez‑vous sur le serveur avec un compte administrateur.
- Téléchargez et exécutez l’outil wushowhide.diagcab (outil officiel Microsoft).
- Cliquez sur Hide updates (Masquer des mises à jour).
- Cochez KB5033373, validez et terminez l’assistant.
- Ouvrez Paramètres > Mise à jour et sécurité et lancez une recherche : la KB masquée ne devrait plus être proposée.
Important : si la KB est déjà installée, commencez par la désinstaller (section ci‑dessous), puis masquez‑la pour bloquer toute réinstallation.
Vérifier que la KB est bien masquée
- Dans l’outil, relancez une détection et cliquez sur Show hidden updates : KB5033373 doit apparaître dans la liste des éléments masqués.
- Dans Historique des mises à jour, vérifiez qu’aucune tentative récente d’installation de la KB n’a eu lieu.
Désinstaller une KB déjà installée
Utilisez WUSA
en session élevée (invite de commandes ou PowerShell « Exécuter en tant qu’administrateur »).
wusa /uninstall /kb:5033373 /quiet /norestart
Redémarrez si le système l’exige, puis masquez la mise à jour avec wushowhide.diagcab
pour éviter sa réinstallation. Vous pouvez contrôler la présence/absence de la KB :
Get-HotFix -Id KB5033373
Si la désinstallation retourne une erreur car la KB est supersedée ou intégrée dans une CU ultérieure, procédez ainsi :
- Désinstallez la CU qui l’a remplacée (si elle est spécifiquement identifiée).
- Masquez la KB concernée et la CU plus récente qui la contient.
- Note : évitez d’utiliser
DISM /Remove-Package
de façon aveugle sur des CU de production ; préférezWUSA
et une stratégie WSUS.
Alternative PowerShell sans interface graphique
Sur des serveurs Core ou pour automatiser, le module PSWindowsUpdate (dépôt PowerShell Gallery) permet de lister, masquer et installer des mises à jour Windows sans GUI.
Installation du module (administrateur)
# Optionnel : s'assurer du protocole TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Faire confiance au dépôt PSGallery (selon politique interne)
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
# Installer le module
Install-Module PSWindowsUpdate -Scope AllUsers -Force
En environnement sans Internet : copiez manuellement le dossier du module dans C:\Program Files\WindowsPowerShell\Modules\PSWindowsUpdate
depuis une machine approuvée.
Masquer KB5033373 avec PowerShell
# Lister ce que Windows Update propose (inclut Microsoft Update si activé)
Get-WindowsUpdate -MicrosoftUpdate
# Masquer la KB ciblée
Hide-WindowsUpdate -KBArticleID KB5033373 -Hide -Confirm:\$false
# Vérifier
Get-WindowsUpdate -MicrosoftUpdate | Where-Object {$\_.KB -eq "KB5033373"}
Désinstaller puis masquer, en une fois
$kb = "KB5033373"
# 1) Désinstaller si présent
try {
if (Get-HotFix -Id \$kb -ErrorAction SilentlyContinue) {
Write-Host "Désinstallation de \$kb..."
Start-Process "wusa.exe" -ArgumentList "/uninstall /kb:\$(\$kb.Trim('KB')) /quiet /norestart" -Wait
} else {
Write-Host "\$kb non détectée comme installée."
}
} catch { Write-Warning $\_ }
# 2) Masquer la KB pour bloquer sa réapparition
try {
if (-not (Get-Module -ListAvailable -Name PSWindowsUpdate)) {
Install-Module PSWindowsUpdate -Scope AllUsers -Force
}
Import-Module PSWindowsUpdate
Hide-WindowsUpdate -KBArticleID \$kb -Hide -Confirm:\$false
Write-Host "\$kb a été masquée via PSWindowsUpdate."
} catch { Write-Warning $\_ }
Se garantir contre le « retour » de la KB
Vous pouvez planifier une vérification quotidienne :
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -WindowStyle Hidden -Command `"Import-Module PSWindowsUpdate; Hide-WindowsUpdate -KBArticleID KB5033373 -Hide -Confirm:$false`""
$trigger = New-ScheduledTaskTrigger -Daily -At 03:00
Register-ScheduledTask -TaskName "Hide-KB5033373" -Action $action -Trigger $trigger -RunLevel Highest -Description "Masque quotidiennement KB5033373"
Environnements gérés avec WSUS et GPO
En production, la méthode la plus propre est de contrôler le flux de mises à jour via WSUS et des stratégies de groupe. Cela évite toute interaction manuelle et documente le choix de bloquer temporairement une KB.
WSUS : décliner la KB pour les serveurs concernés
- Dans la console WSUS, recherchez KB5033373.
- Définissez son approbation à Décliné (Declined) pour les groupes d’ordinateurs impactés.
- Déployez une alternative (CU précédente) si nécessaire et planifiez la réévaluation.
Stratégies de groupe : paramètres utiles
Appliquez ces stratégies à l’unité d’organisation contenant vos serveurs 2016.
Paramètre GPO | Chemin | Valeur recommandée | Effet |
---|---|---|---|
Configure Automatic Updates | Configuration ordinateur > Modèles d’administration > Composants Windows > Windows Update | Activé ; Option 2 – Notifier pour le téléchargement et l’installation | Empêche l’installation automatique ; l’admin choisit quoi installer. |
Specify intranet Microsoft update service location | Configuration ordinateur > Modèles d’administration > Composants Windows > Windows Update | Activé ; renseigner WUServer et WUStatusServer | Force l’usage de WSUS et permet d’approuver/décliner finement. |
Do not connect to any Windows Update Internet locations | Configuration ordinateur > Modèles d’administration > Composants Windows > Windows Update | Activé | Bloque la récupération directe sur Internet ; évite les contournements de WSUS. |
No auto-restart with logged on users | Configuration ordinateur > Modèles d’administration > Composants Windows > Windows Update | Activé | Empêche un redémarrage intempestif en session. |
Conseil d’exploitation : combinez Option 2 avec WSUS pour garder la main, puis approuvez spécifiquement les CU validées par le lot pilote.
Bonnes pratiques
- Lot pilote : testez toute CU sur un petit groupe de serveurs représentatifs avant large déploiement.
- Fenêtres de maintenance : synchronisez les installations et redémarrages avec vos SLA.
- Journalisation : consignez la décision de masquer/décliner KB5033373, la justification et la date de revue.
- Revue périodique : planifiez une réévaluation (ex. J+14) ; un correctif cumulatif ultérieur peut corriger le problème initial.
- Sécurité : masquer une KB de sécurité augmente l’exposition ; compensez par des mesures temporaires (durcissement, atténuations, IDS/IPS).
Vérifications et diagnostic
Contrôler l’état des mises à jour
# KB installées
Get-HotFix | Sort-Object -Property InstalledOn -Descending | Format-Table -AutoSize
# Recherche de la KB ciblée
Get-HotFix -Id KB5033373
# Mettre à jour le journal WindowsUpdate.log (format lisible) sur le bureau
Get-WindowsUpdateLog
Événements utiles
Le journal Microsoft-Windows-WindowsUpdateClient/Operational contient des événements d’installation et d’échec. Exemples :
- ID 19 : installation réussie.
- ID 20 : installation échouée.
- ID 44 : redémarrage requis.
# Filtrer rapidement
$provider = 'Microsoft-Windows-WindowsUpdateClient'
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-WindowsUpdateClient/Operational'; Id=19,20,44} -MaxEvents 50 |
Select-Object TimeCreated, Id, LevelDisplayName, Message
Si la mise à jour revient malgré tout
- Vérifiez que la KB est déclinée dans WSUS et que la GPO force bien l’utilisation de WSUS.
- Nettoyez le cache Windows Update et relancez une détection :
net stop wuauserv
net stop bits
net stop cryptsvc
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start cryptsvc
net start bits
net start wuauserv
usoclient StartScan
Après nettoyage, masquez à nouveau KB5033373 si nécessaire.
FAQ express
Masquer une KB empêche‑t‑il toute installation manuelle ?
Non. Si vous lancez manuellement un .msu
de la KB, l’installation est possible. Le masquage agit sur la proposition par Windows Update.
Les CU suivantes réintroduiront‑elles le contenu de la KB ?
Très probable : les mises à jour de qualité sont cumulatives. Bloquez la KB précise et, si nécessaire, la CU plus récente identifiée comme remettant le problème, puis réévaluez dès qu’un nouveau correctif sort.
Et sur Server Core ?
Privilégiez PSWindowsUpdate
et la gestion via WSUS/GPO, puisque wushowhide.diagcab
n’est pas pratique en mode Core.
Faut‑il changer la politique d’exécution PowerShell ?
Utilisez AllSigned
si votre politique de sécurité l’exige et signez vos scripts. Évitez Unrestricted
en production.
Exemples prêts à l’emploi
Script de rollback contrôlé
# Rollback + masquage pour KB5033373 (journalisation incluse)
$kb = "KB5033373"
$log = "C:\Logs\Hide-$kb-$(Get-Date -Format yyyyMMdd-HHmmss).log"
New-Item -ItemType Directory -Force -Path (Split-Path $log) | Out-Null
"\[\$(Get-Date)] Début traitement \$kb" | Tee-Object -FilePath \$log -Append
# Désinstallation si présente
if (Get-HotFix -Id \$kb -ErrorAction SilentlyContinue) {
"\[\$(Get-Date)] Désinstallation..." | Tee-Object -FilePath \$log -Append
Start-Process wusa.exe -ArgumentList "/uninstall /kb:\$(\$kb.Trim('KB')) /quiet /norestart" -Wait
} else {
"\[\$(Get-Date)] \$kb non détectée comme installée" | Tee-Object -FilePath \$log -Append
}
# Masquage via PSWindowsUpdate
try {
if (-not (Get-Module -ListAvailable -Name PSWindowsUpdate)) {
Install-Module PSWindowsUpdate -Scope AllUsers -Force
}
Import-Module PSWindowsUpdate
Hide-WindowsUpdate -KBArticleID \$kb -Hide -Confirm:\$false | Out-Null
"\[\$(Get-Date)] \$kb masquée" | Tee-Object -FilePath \$log -Append
} catch {
"\[\$(Get-Date)] Erreur PSWindowsUpdate : \$($\_.Exception.Message)" | Tee-Object -FilePath \$log -Append
}
"\[\$(Get-Date)] Fin traitement \$kb" | Tee-Object -FilePath \$log -Append
Audit rapide des serveurs d’un groupe AD
# Nécessite WinRM/PSRemoting activé
$servers = @("SRV-FICHIERS01","SRV-SQL02","SRV-WEB03")
Invoke-Command -ComputerName $servers -ScriptBlock {
$kb = "KB5033373"
[PSCustomObject]@{
ComputerName = $env:COMPUTERNAME
KBPresent = [bool](Get-HotFix -Id $kb -ErrorAction SilentlyContinue)
Hidden = (try { (Import-Module PSWindowsUpdate -PassThru -ErrorAction Stop | Out-Null; `
(Get-WindowsUpdate -MicrosoftUpdate -IsHidden).KB -contains $kb } catch { $false })
}
} | Format-Table -AutoSize
Matrice de décision
Contexte | Action recommandée | Pourquoi |
---|---|---|
Serveur isolé/urgence | wushowhide.diagcab pour masquer + wusa pour désinstaller | Rapide, sans prérequis, 100 % Microsoft |
Parc de serveurs sans GUI | PSWindowsUpdate pour masquer automatiquement | Automatisation, scriptable, reproductible |
Entreprise avec WSUS | Décliner la KB/CU et appliquer GPO | Contrôle centralisé, traçabilité |
Après correctif Microsoft | Lever le masquage et réintégrer le flux normal | Rétablit la conformité et la sécurité |
Procédure récapitulative
- Identifier l’impact réel de KB5033373 (symptômes, journaux, périmètre).
- Si la KB est installée, la désinstaller avec
wusa
et redémarrer si requis. - Masquer la KB : wushowhide.diagcab ou
Hide-WindowsUpdate
. - En production, décliner la KB/CU dans WSUS et forcer WSUS via GPO.
- Documenter la décision et planifier une réévaluation (lot pilote, tests).
Dépannage avancé
- Échec de désinstallation : vérifier s’il s’agit d’une CU plus récente ; désinstaller la CU qui contient la KB ou restaurer un point de récupération/sauvegarde si pratique standard.
- Service Windows Update instable : réinitialiser le cache (commande net stop/ren/net start plus haut) et relancer
usoclient StartScan
. - Collecte de preuves : exécuter
Get-WindowsUpdateLog
et archiver les événements clé pour le dossier de changement.
Conclusion
Empêcher l’installation de KB5033373 sur Windows Server 2016 est simple si l’on combine : wushowhide.diagcab pour le masquage ciblé, WUSA pour un rollback propre, PSWindowsUpdate pour l’automatisation, et WSUS/GPO pour un contrôle d’entreprise. Gardez une approche temporaire et documentée : testez, observez, puis réintégrez les mises à jour dès que possible.
—
Remarque sécurité : masquer une KB de sécurité doit rester temporaire. Maintenez des contrôles compensatoires (journaux, EDR, durcissement) et programmez une revue rapide pour limiter la fenêtre d’exposition.