
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
これを含んだバッチファイルを実行すると、このような結果で問題なく完了します。
これが、最近購入したPCで実行するとこのような結果になります。
原因は、最新バージョンのWindows11では、WMIコマンドが既定で無効化されている事が原因でした。
[設定]-[システム]-[オプション]からWMICを有効にすれば解決しますが、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
これを実行するとこちらのようになります。
以上、かなりニッチな内容の投稿ですが、もし同じエラーで困っている方がいらっしゃればご参考に。