Dans Windows 11 24H2, l’exécutable historique WMIC.exe
disparaît définitivement : résultat, des scripts tombent en panne et les séquences d’installation SCCM s’allongent. Voici, pas à pas, pourquoi cela arrive, comment le détecter et quelles solutions adopter immédiatement.
Pourquoi WMIC n’est plus disponible
WMIC (Windows Management Instrumentation Command‑line) traîne une longue histoire : introduit avec Windows XP, il a été marqué « deprecated » dès Windows 10 21H1, puis retiré du PATH sur Windows 11 22H2/23H2. Avec la build 24H2, Microsoft franchit l’étape finale : même si vous injectez la fonctionnalité « WMIC~~~~ » via DISM, le moteur CBS (Component‑Based Servicing) la purge automatiquement pendant l’OOBE (Out‑Of‑Box Experience). Le composant est ainsi déclaré obsolète, et toute tentative de réinstallation est annulée au premier démarrage utilisateur.
Que dit le journal CBS ?
[CBS] Detect Obsolete Component: WMIC (Version 10.0.26100.0) – Marked for Removal
[CBS] Repristine Packages: 1 corresponding to WMIC – Success
Cette entrée, visible dans C:\Windows\Logs\CBS\CBS.log
, confirme le désengagement total : le désinstalleur CBS traite WMIC comme un composant incompatible, à l’instar d’un pilote bloquant.
Impact sur vos environnements
- Scripts hérités : les vérifications d’inventaire, de licence ou de configuration échouent dès qu’elles invoquent
wmic
. - Applications tierces : certains installateurs silencieux déclenchent encore des requêtes WMI via WMIC pour détecter CPU ou BIOS, ce qui produit un code d’erreur inattendu.
- Temps d’installation FOD : le moteur DISM recherche à distance les Capabilities, mais l’isolement d’Internet, des GPO mal configurées ou les délais de téléchargement allongent l’opération à 5–15 min.
Solutions et stratégies de migration
Convertir vos scripts vers PowerShell CIM/WMI
La famille de cmdlets Get-CimInstance
, Invoke-CimMethod
et Remove-CimSession
couvre l’intégralité des scénarios WMIC tout en exploitant WS‑Management (WinRM) pour la communication distante. Exemple :
#Remplace wmic computersystem get Model
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty Model
Cela fonctionne localement ou à distance (-ComputerName
) sans dépendre d’un exécutable externe.
Tableau décisionnel
Besoin | Approche préconisée | Remarques |
---|---|---|
Scripts ou logiciels maison appelant wmic | Migrer vers les cmdlets PowerShell CIM/WMI | Couverture fonctionnelle complète, syntaxe différente mais plus moderne. |
Outils tiers dépendants de wmic.exe | Demander une mise à jour vers PowerShell, l’API WMI COM ou CIM over WinRM | Risque de non‑conformité si un binaire non supporté est conservé. |
Besoin ponctuel hors production | Conserver un poste d’admin sous 22H2/23H2 ou une WinPE avec WMIC | Évite les modifications sur les machines 24H2. |
Work‑around non supporté | Copier manuellement wmic.exe et ses dépendances depuis un OS plus ancien | Fonctionne temporairement mais sans garantie lors des mises à jour cumulatives. |
Accélérer l’installation des Features on Demand
- Monter localement le dépôt FOD : placez l’ISO Features on Demand sur un partage SMB rapide ou sur le disque SCCM.
- Limiter les requêtes Internet : utilisez
/LimitAccess /Source:<chemin>
pour forcer DISM à cibler la source locale. - Préstager en mode offline : ajoutez les Capabilities dans l’image .wim montée (
/Image:<mount>
) avant le déploiement. - Configurer la GPO “Specify settings for optional component installation” : indiquez votre dépôt FOD local, cochez « Never attempt to download payload from Windows Update ».
Questions fréquentes
WMIC réapparaîtra‑t‑il dans une prochaine build ?
Peu probable. Microsoft suit la même trajectoire qu’avec les anciennes consoles MMC retirées : une fois qu’un composant est déclaré deprecated et supprimé par CBS, il n’est généralement pas restauré.
Et Get-WmiObject
?
Ce cmdlet PowerShell classique est lui aussi obsolète. Il reste présent pour compatibilité, mais Microsoft recommande la transition vers Get-CimInstance
, basé sur le modèle CIM plus moderne.
Existe‑t‑il une alternative en ligne de commande pure ?
Oui : le projet open‑source WMI‑CLI (installable via cargo install wmi-cli
) reproduit une syntaxe proche de WMIC et fonctionne tant que WinRM ou RPC WMI est activé. Utile pour les administrateurs Linux et Mac qui pilotent des parcs Windows.
Procédure pas à pas : adapter un script existant
Imaginons un script d’inventaire qui faisait :
wmic logicaldisk where "DriveType=3" get DeviceID,FreeSpace,Size /format:csv > inventory.csv
Remplacement PowerShell :
$Disks = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID,FreeSpace,Size
$Disks | Export-Csv -Path inventory.csv -NoTypeInformation -UseCulture
Avantages : exécution asynchrone possible, meilleure gestion des erreurs, et aucune dépendance externe.
Surveiller vos déploiements SCCM/Intune
Lorsqu’un poste migre vers Windows 11 24H2, ajoutez une phase de validation post‑OOBE :
Get-WindowsCapability -Online -Name wmic~~~~ | Select-Object -ExpandProperty State
doit retourner « NotPresent ».- Les logs
DISM.log
etCbsPersist_[timestamp].log
doivent être archivés pour audit. - Créez une règle de conformité Intune qui déclenche une alerte si
wmic.exe
réapparaît (copie manuelle non autorisée).
Calendrier officiel de la dépréciation
- Windows 10 21H1 : WMIC marqué obsolète mais installé par défaut.
- Windows 11 < 23H2 : binaire retiré du PATH, réinstallation possible via FOD.
- Windows 11 24H2 : suppression irrévocable pendant OOBE, même si ajouté avant.
Conseils pour un parc en transition
La clé réside dans la gestion du risque applicatif :
- Cartographie : scannez vos scripts, runbooks et paquets MSI pour les occurrences de « wmic » avec un Grep récursif ou PowerShell
Select-String
. - Plan de correction : pour chaque occurrence, choisissez la cmdlet CIM équivalente ou l’appel WMI COM. Documentez le motif de remplacement.
- Validation automatisée : exécutez vos tests fonctionnels sur un build 24H2 Insider Preview avant le gel de l’image finale.
- Communication interne : alertez les équipes support et éditeurs tiers avant la mise à jour en vague pilote.
- Monitoring continu : exploitez Microsoft Defender for Endpoint ou vos solutions SIEM pour détecter tout appel à
wmic.exe
, signe qu’un poste n’est pas conforme.
Récapitulatif des meilleures pratiques
- Adoptez PowerShell CIM pour la gestion distante, plus pérenne et plus sécurisée.
- Stockez localement vos ISO Features on Demand pour réduire de 80 % le temps d’installation des capabilities.
- Documentez les composants retirés par CBS afin d’éviter les surprises lors des versions futures.
- Formez vos développeurs : la plupart des requêtes WMIC se convertissent en trois lignes de PowerShell.
- Gardez un jump‑host sous 22H2/23H2 pour les opérations de maintenance qui exigent encore WMIC, mais limitez‑le au réseau d’administration.
Mots de la fin
La suppression définitive de WMIC.exe dans Windows 11 24H2 peut sembler brutale, mais elle s’inscrit dans une logique de simplification et de modernisation de la pile d’administration Windows. En planifiant dès maintenant la migration de vos scripts et en optimisant le dépôt FOD, vous transformez cette contrainte en opportunité : moins de dépendances héritées, des déploiements plus fiables et une surface d’attaque réduite.