[English]Kurzer Nachtrag von letzter Woche: Microsoft will das Kommandozeilen-Tool wmic.exe in der nächsten Windows-Version abschaffen. Das WMI-Befehlszeilendienstprogramm (WMIC) bietet eine Befehlszeilenschnittstelle für Windows Management Instrumentation (WMI). Die Ausführung des Tools wird in Windows 11 Insider Preview-Versionen seit dem 29. Januar 2024 bereits standardmäßig deaktiviert. Als Ersatz für dieses Kommandozeilen-Tool schlägt Microsoft vor, entsprechende PowerShell-Abfragen zu nutzen.
Anzeige
Das Ganze geht aus dem Techcommunity-Artikel WMI command line (WMIC) utility deprecation: Next steps vom 26. Januar 2024 hervor, auf den ich über nachfolgenden Tweet aufmerksam wurde. Leser haben in diversen Kommentaren ebenfalls auf diesen Sachverhalt hingewiesen (danke dafür).
Das Kommandozeilen-Tool wmic.exe wurde bereits im Jahr 2016 unter Windows Server 2012 als veraltet (deprecated) eingestuft (siehe obige Zeitleiste). Im Jahr 2021 folgte dann das Gleiche für Windows 10 Version 21H1 und 2022 wurde wmic.exe unter Windows 11 Version 22H2 als "Feature on Demand" implementiert. Jetzt wird das Tool unter Windows 11, zuerst in der Insider Preview, deaktiviert. Offen ist noch, wann das Tool komplett entfernt wird.
Durch PowerShell ersetzt
Der Grund für den Ausstieg aus dem Kommandozeilen-Tool wmic.exe ist laut Microsoft, dass das WMIC-Tool durch Windows PowerShell für WMI abgelöst wird. Microsoft hat in den letzten Jahren stark in PowerShell investiert. Die neuen PowerShell-Aufrufe bieten eine effizientere Methode zur Abfrage von WMI. Das Entfernen einer veralteten Komponente trägt für Microsoft dazu bei, die Komplexität zu verringern, während man gleichzeitig hofft, dass das Ganze sicher und produktiv bleiben wird.
Anzeige
PowerShell enthält standardmäßig Cmdlets für die Arbeit mit Technologien wie der Windows Management Instrumentation (WMI). Es gibt mehrere native WMI-Cmdlets, die in PowerShell vorhanden sind, ohne dass Administratoren zusätzliche Software oder Module installieren müssen. Weitere Details finden sich im Techcommunity-Artikel WMI command line (WMIC) utility deprecation: Next steps.
Anzeige
Schade: Einzelne Werte per PowerScript abzufragen braucht ein vielfaches an Ressourcen da erst die gesamte PowerShell geladen werden muss. In Batch-Scripten ist das dann deutlich spürbar. Würde Faktor 10+ schätzen. Und das bei i7 CPUs mit xGHz, 8GB Ram und SSD Speichern mit zichzehntausendrn IOPs.
Generell hat die PowerShell im Vergleich zu Batch-Scripten spürbar schlechtere Performance.
Die Überschrift sollten Sie nochmal überprüfen.
"während man gleichzeitig hofft, dass das Ganze sicher und produktiv bleiben wird."
Ich "hoffe" das ist vom Autor so interpretiert und nicht von Microsoft wirklich so gesagt worden… wenn die nur "hoffen" das deren System sicher ist, dann ist das mehr als nur eine Bankrott-Erklärung… der Hersteller sollte schon wissen, was in seinem eigenen System so vor sich geht…..
Ich hoffe der Hersteller meines Autos hat mehr getan als nur zu hoffen….
Ja, die Hoffnung stammt vom Autor, von Microsoft wird es als Tatsache hingestellt ;-).
"Ich hoffe der Hersteller meines Autos hat mehr getan als nur zu hoffen…."
Wenn man sich die vielfältigen Mängel an Fahrwerksteilen und Bremsanlagen betrachtet und deren Häufigkeit … wäre ich mir da gar nicht so "sicher" *grübel*
Schade, die tollen, agentenlosen WMI-Abfragen mit Icinga2 gibts dann nicht mehr. :/
Haben Sie Ihr Produkt verstanden? Auf den managed nodes (Windows) wird weiterhin der Windows Management Service laufen, auf der/den management station(s) läuft auch in Zukunft wie gehabt der WMI client for Linux (wmic) (https://community.icinga.com/t/monitoring-windows-remotely-through-wmi/2007).
Bei meinem Windows 7 ist wmic schon seit sehr langer Zeit abgeschaltet.
Zwei mal die Datei WMIC.exe umbenennen oder löschen in folgenden Ordnern:
C:\Windows\System32\wbem\WMIC.exe
C:\Windows\SysWOW64\wbem\WMIC.exe
WMIC benötigt den Dienst:
"Windows-Verwaltungsinstrumentation" (winmgmt)
Wenn man allerdings diesen Dienst abschaltet, dann funktioniert die Windows-Firewall nicht mehr.
Ich habe bei uns einfach die Ausführung von wmic.exe per Applocker gesperrt.
VBS auch. Wer noch VBS-Scripts nutzt kann diese sehr einfach mittels (kostenlosem) CoPilot in PowerShell umschreiben lassen. Klappt prima, jedenfalls in meinen Fällen.
Damit bestehende Prozesse nicht auf der Strecke bleiben habe ich hier einen Feature Request verfasst: https://techcommunity.microsoft.com/t5/windows-server-insiders/feature-request-welcome-to-a-new-era-of-activation-tooling-this/td-p/4021588
VBS wird auch von Microsoft Tools und Prozessen noch viel genutzt. slmgr (Windows / Office Aktivierung), MDT, Print Management, Office KMS Aktivierung (wird auch für Office ADBA genutzt) etc.
Nur als Ergänzung: Kann man tun – aber es sollte Expertise in VBS-Scripten und in PowerShell vorhanden sein, um das Ergebnis anzuschauen und nachzubereiten. Andernfalls laufen wir in das Problem, dass aus schlechten VBScript-Scripten noch schlechterer PowerShell-Code wird. Gerade noch diesen Artikel bei heise gelesen, der sich mit den KI-Assistenten GitHub Copilot und ChatGPT zum Erstellen von Code befasst und eine sinkende Code-Qualität bescheinigt.
Und wohin der CoPilot Deine Scripte mit ggf. Zugangsdaten u.ä. schickt, das ist egal.
Heißt das, dass die WMI-Filter in der Gruppenrichtlinienverwaltung, dann bald nicht mehr greifen?
Imho heißt es das nicht – es wird nur das Kommandozeilen-Tool eingestellt – die PowerShell-Befehle müssen ja auch auf einen WMI-Filter zugreifen. Dein Schluss würde zutreffen, wenn die Gruppenrichtlinienverwaltung das Kommandozeilen-Tool zur Filterung verwenden würde – dazu kann ich aber nichts sagen. Könntest Du aber leicht testen: Einfach die Ausführung des Kommandozeilen-Tools blockieren und schauen, ob die GPOs noch tun.