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 ?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bislang keine Stimmen erhalten.)
Loading...

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