Windows 11 24H2およびWindows Server 2025以降、WMICコマンドラインツールは基本的に標準ではなくなりました。WMIコマンドを通常またはスクリプトで実行しようとすると、おそらく次のようなエラーが表示されるでしょう。
'wmic' is not recognized as an internal or external command, operable program or batch file. The term 'wmic' is not recognized as the name of a cmdlet, function, script file, or operable program.
WMIC.exeかつてはWMI経由でシステム情報(シリアル番号、OSバージョン、インストール済みプログラム、Windows Update履歴、さらにはアンインストール情報など)を取得するための頼りになるツールでした。しかし、Microsoftは2021年のWindows Server 2016とWindows 11あたりからこれを正式に廃止しました。そして当然のことながら、Windowsは面倒なことをしなければなりません。今ではレガシー機能とみなされているため、最近のビルドではデフォルトでインストールされていません。現在も入手することはできますが、Feature on Demand(FoD)としてのみ利用可能です。
自動化や情報収集にスクリプトを頼りにしている場合はwmic.exe、更新の時期です。古くて非推奨のコマンドをPowerShellのWMI/CIMコマンドレットに置き換えるのが最善策です。通常はGet-CimInstanceまたはそのエイリアス を使用しますgcim。例えば、実行中のWindowsのバージョンとビルドを確認するには、次のコマンドを実行します。
Get-CimInstance Win32_OperatingSystem | fl -Property Caption, Version, BuildNumber, OSArchitecture
また、単一の値のみを実行する BAT スクリプトを編集している場合は、wmic次のような PowerShell スニペットで部分を置き換えることができます。
powershell -noprofile -executionpolicy bypass -c "(gcim Win32_OperatingSystem).Caption"
どうしてもWMICをシステムに復活させたい場合(例えばレガシー自動化のためなど)、設定>アプリ>オプション機能>機能の追加から追加できます。リストからWMICを見つけてインストールするだけです。
または、コマンドラインで簡単に修正するには、DISM 経由で追加することもできます。
DISM /Online /Add-Capability /CapabilityName:WMIC~~~~
ヘルプコマンド実行時などに警告が表示されてもWMIC is deprecated、WMI自体が廃止されるわけではなく、古いwmic.exeツールが廃止されるだけです。MicrosoftはWindows管理の新しい標準としてPowerShellとCIMへの移行を進めているため、事前にスクリプトをアップグレードしておくことは賢明な選択です。