Das WMI-Kommandozeilentool wmic gilt bereits seit Windows Server 2012 als veraltet, war und ist bislang dennoch vorhanden und funktional. Bei Neuinstallationen von Windows 11 24H2 fehlt es allerdings.
Es ist ja nichts neues, das wmic abgekündigt ist. Vor gut einem Jahr machte das einmal mehr die Runde, wobei die ursprüngliche Einstufung als “deprecated” bereits 2016 stattgefunden hat. Bislang fiel das nicht groß auf, da es ja weiterhin funktioniert. Selbst bei Windows 11 24H2, das als Upgrade von früheren Windows-Versionen installiert ist, ist das Tool vorhanden. Einzig bei Neuinstallationen von Windows 11 24H2 fehlt es.
So oder so, es wird Zeit sich neu zu orientieren, d.h. seitens Microsoft sollte man sich mit PowerShell für WMI auseinandersetzen.
Probe halber habe ich mal versucht, wmic von einem upgegradeten Windows auf eine Neuinstallation zu kopieren, das funktioniert nur zum Teil, das ist also kein Workaround der zu Empfehlen ist..
Wir haben bei uns kaum wmic im Einsatz. Bekanntestes Beispiel u.a. hier im Blog sind die Drive Snapshot-Skripte, dort wird der aktuelle Tag via WMI abgefragt:
for /f %%g in ('wmic path win32_localtime get dayofweek^|findstr /v /r "^$"') do (set Weekday=%%g) if %Weekday%==0 set Weekday=Sunday if %Weekday%==1 set Weekday=Monday if %Weekday%==2 set Weekday=Tuesday if %Weekday%==3 set Weekday=Wednesday if %Weekday%==4 set Weekday=Thursday if %Weekday%==5 set Weekday=Friday if %Weekday%==6 set Weekday=Saturday
Diese Beispiel lässt sich einfach in PowerShell umsetzen, naja, eher neu machen:
Get-Date -Format "dddd"
Die Ausgabe des Tages erfolgt in der Systemsprache!
Benötigt man die Ausgabe in einem Batch-Skript, kann man dies wie folgt bewerkstelligen:
for /f "DELIMS=" %%I in ('Powershell Get-Date -Format "dddd"') do set "Weekday=%%I"
Was natürlich ebenfalls auf Basis meiner weekday.exe geht, ist die Ausgabe dieses Tools direkt als Variable innerhalb eines Batch-Skript:
for /f "tokens=*" %%g in ('weekday.exe') do set Weekday=%%g
Update 09.01.2025
Noch ein kleiner Nachtrag:
Möchte man am Beispiel des Drive Snapshot-Batch-Skript die gleiche Wochentag-Ausgabe haben wie bislang, geht das einfach mit
PowerShell Set-Culture -CultureInfo en-EN for /f "delims=" %%I in ('PowerShell Get-Date -Format "dddd"') do set "Weekday=%%I" PowerShell Set-Culture -CultureInfo de-DE
Dieser Dreizeiler macht folgendes:
- Das Ausgabeformat auf das englische Schema ändern.
- Den aktuellen Wochentag abfragen.
- Das Ausgabeformat wieder zurück ändern.
So wird aus “Donnerstag” dann “Thursday”. Das Ganze lässt sich leicht auf die eigenen verwendeten Sprachen anpassen.
Wie hat Dir der Artikel gefallen ?
Du möchtest den Blog unterstützen ?
Neben PayPal.ME gibt es noch weitere Möglichkeiten, lies hier wie du diesen Blog unterstützen kannst.
Quellen
Microsoft Learn – WMIC: WMI-Befehlszeilenprogramm
Windows IT Pro Blog – WMI command line (WMIC) utility deprecation: Next steps
WindowsPro – Microsoft mustert wmic in Windows 11 aus
Borns IT- und Windows-Blog – Windows 11: WMIC wird künftig abgeschafft
superuser – Return PowerShell Command result in batch file
stackoverflow – How to put a single PowerShell output string into a cmd variable?
serverfault – Trouble using powershell output as a variable in batch file
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar