Windows11でWMICは内部コマンド、外部コマンド、操作可能なプログラム、バッチファイルとして認識されていません~対処方法が分かったので回避出来た

PC・Server

PCの更新(環境引っ越し)でトラブル発生

仕事で扱っている業務用PCの更新(入れ替え)に伴い、業務アプリが入っている古いPCから新しく購入されたPCへ環境を引っ越しさせる必要性に迫られました。とは言ってもベンダーさんから簡単な手順書を貰っていて、必要なランタイムやドライバ類も入手していました。

実際、数ヶ月前にも1台新規に購入したWindows11 PCに引っ越しさせたのですが、ペラ紙1枚の手順書通り実施したところ問題なく移行できて、口頭で説明されたとおり「特別難しいことは無いです」という認識でいました。

今回また1台、PCを更新しなくてはならなくなり作業を行ったところ、手順書通り行ったのにアプリが起動しません。用意されているショートカットをダブルクリックすると、コマンドプロンプトの実行画面が一瞬表示されて直ぐに消えます。本来なら起動処理中のメッセージがダラダラと表示されるはずなのですが。

コマンドプロンプトから実行する(エラーを見るため)

用意されているショートカットから実行すると、コマンドプロンプトが表示されますが、直ぐに落ちてしまってウィンドウが消えてしまう為状況がわかりません。

そこでショートカットの内容を確認してコマンドプロンプトから直に実行させてみました。すると起動処理が走ったと思いきや直ぐにエラーを吐いて止まりました。今回はコマンドプロンプトのウィンドウが残っているのでエラーの内容が見えます。ヒントがあれば良いのですが。

Microsoft Windows [Version 10.0.26100.2605]
(c) Microsoft Corporation. All rights reserved.

C:\Users\mypc>C:\gyoumuapp\Update\Update.cmd
プログラムの更新を確認しています...
プログラムを取得しています...
1 個のファイルをコピーしました。
'WMIC' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'WMIC' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
64 の使い方が誤っています。

C:\gyoumuapp\Update>Code language: JavaScript (javascript)

ヒントとなりそうなワード「WMIC」が特定出来ました。要するに「WMIC」が実行ファイルとして認識されていないということの様です。つまりこのPCでは「WMIC」が使えない様です。

WMICというのは「Windows Management Instrumentation (WMI) 」のコマンドライン ユーティリティー(WMIC)のことだと思われます。これが機能してないのが原因だと推測しました。

「64の使い方が誤っています」は64bit版OSに非対応ってことかな?でも数ヶ月前は新規に購入したWindows11パソコンで問題なく稼働しました。とりあえず気にしないことにします。

WMICについて情報収集する

類似のトラブルは既に起こっている様で、検索してみると「Windows 11 24H2ではWMICが既定で無効になっている」ということがわかりました。今回のPCは最近新品で購入したばかりで、そういえば24H2へのアップデートを要求してこなかったと思い出しました。PCを買った時からWindows11 24H2だった訳です。

数ヶ月前にセットアップしたPCは、Windows11 24H2がまだリリースされて無かったか、リリース直後だったと思います。ということはWMICは有効だったのでしょう。

問題になったPCを確認すると、やはりWMICが有効になっていませんでした。やはりこれが原因と考えられそうです。

マイクロソフトは、ずいぶん前からPowerShellへの移行を推奨していてコマンドプロンプトを隠したりしています。時代の変化とは言え強引に無効にしてしまうやり口にはイラッとさせられますが、原因らしきことが分かったので対処は可能っぽいです。

WMICを有効にする

WMICが非推奨と言われようが、動いていたものが動かなくなる(させられる)というのは横暴なので、自力でWMICを有効にして動作する様にします。

Windows11の設定の左ペインから、「システム」-「オプション機能」を選ぶと、右ペインに「追加された機能」がずらずらとリストアップされます。私が2年以上使っているWindows11 24H2では、ここに「WMIC」がリストアップされています。

しかし、問題の新しいPCには「WMIC」が表示されていません。

右ペインの一番上にある「オプション機能を追加する」ー「機能を表示」をクリックすると、追加したいオプション機能の候補が表示されます。ここに「WMIC」が隠されていました。チェックボックスにレ点を入れ、次へをクリックするとしばらく待たされましたが(かなり時間がかかる・・)、WMICを追加することができました。

余談ですが、オプション機能として、ここから外国語フォントを追加したりも出来るみたいです。私は99%使わないですけどね。

コレでWMICが有効になったはずなので、念の為Windows11を再起動してから、問題の業務アプリを実行するショートカットをダブルクリックしました。

すると、コマンドプロンプトが表示されて・・・・・業務アプリを起動するためのバッチ処理が走り出しました。問題なく起動して動作する様になりました。たったこれだけのことが原因でした。

新しいWindows11パソコンは業務用途では注意が必要かも

WMIはWindowsの管理情報を扱う機能で、WMICはそのコマンドライン版です。今回ひっかかった業務アプリの内部的なことはわかりませんが、BAT処理でWindowsの管理情報を取得して起動処理を走らせるプログラム構造になっているみたいです。ところが今回購入した新規PCは、Windows11 24H2で出荷されたものであったためにWMICが無効にされていて起動処理が進まなかった(例外ストップ)したということの様です。

当然ながら、WMIで情報取得をして何かしらの起動処理をしているアプリを、Microsoftが非推奨だからとPowerShellに対応させる様に改修してもらうとなるとソフトウェア改修費用が発生します。なので今回の様にWMICを追加して有効にする対処するのが現実的だと思われます。

Windows Updateで24H2になった場合は大丈夫らしい

ちょっと心配になったのですが、既に現場に投入済みのWindows11端末で、24H2が適用された場合に業務アプリを起動できなくなるのでは?という疑問が湧きました。しかしちょっと調べると取り越し苦労だとわかりました。既に有効になっているWMICは有効になったまま24H2にアップデートされるとのことです。

良くも悪くもMicrosoft社はこういう事を度々やってくれますので、新しい情報を持っていないと思わぬトラブルに見舞われます。幸いネットには多くの情報があるのでそれを拾い出す情報収集(検索)のスキルさえ持っていればなんとかなります。Microsoft Windowsの雑で欠陥のある仕組みのお陰で、私のようなトラブル対応が出来る者の仕事が無くならない訳ですけどね。

コメント

タイトルとURLをコピーしました