スタッフブログ

wmicコマンドが認識されない場合の対処法

2025年03月31日 スタッフブログ 開発 関戸 

最近、新規で購入したWindows11のPCにて、これまで使えていたバッチファイルがうまく実行できないケースがありました。

実行すると

「’wmic’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

なってしまい、コマンドを認識していないようです。

この原因を対処法をご紹介します。

 

例えば、新規にローカルユーザーを作成し、そのユーザーのパスワードを無期限に変更するバッチファイルを実行します。

set username=NewUser
set password=Password123

net user %username% %password% /add
wmic UserAccount where Name='%username%' set PasswordExpires=False

pause

これを含んだバッチファイルを実行すると、このような結果で問題なく完了します。

'wmic' は、内部コマンドまたは外部コマンド

これが、最近購入したPCで実行するとこのような結果になります。

原因は、最新バージョンのWindows11では、WMIコマンドが既定で無効化されている事が原因でした。

[設定]-[システム]-[オプション]からWMICを有効にすれば解決しますが、
このWMIコマンドはセキュリティ的に問題が多く、将来的には廃止される方向のようです。

https://forest.watch.impress.co.jp/docs/news/1564283.html

今後は、このWMIコマンドはPowerShellコマンドに置き換える事が推奨されているそうです。
そこで、このコマンドを置き換えるとこのようになります。

set username=NewUser
set password=Password123

net user %username% %password% /add
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { Set-LocalUser -Name %username% -PasswordNeverExpires $true }"

pause

これを実行するとこちらのようになります。

以上、かなりニッチな内容の投稿ですが、もし同じエラーで困っている方がいらっしゃればご参考に。