Open棟梁Project - マイクロソフト系技術情報 Wiki
WMI(Windows Management Instrumentation) は、Windowsを管理するためのAPIです。
のような型があり、その型に応じたオブジェクトを通して、
Windows の設定や状態の情報を取得したり、変更したりできます。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") for each nic in objWMIService.ExecQuery("select * from Win32_NetworkAdapter") wscript.echo nic.NetConnectionID next
例では、まず、 WMIサーバーのオブジェクトを得ます。
winmgmts: が WMI を指し、 \\.\ が 現在のWindows PC、 root\cimv2 が得るオブジェクトの名前空間です。
\\.\ と cimv2 に別の物を指定すると、他の Windows や、 別の名前空間から、オブジェクトを得ることもできます。
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
例では、続いて、WMI から NICの情報を得ます。
"select * from 型" をクエリすることで、型に該当する全てのオブジェクトを得ます。
for .... ExecQuery("select * from Win32_NetworkAdapter")
vbsとWMIとGetObject?の解説は、下も参考にしてください。
上に書いた WMI の型は、ほんの一例にすぎません。
簡単な方法は、WMI をキーワードに含めて、時には英単語で、検索することです。
例えば、windows にインストールされているプログラムの一覧を得るWMIを探すとき、
site:microsoft.com script wmi product list
で、ググると、
wmic product list all installed software as xml Win32_Product class
が、top2 でhitします。
この、 Win32_Product class というのが、求める情報です。
WMI の型の多くは、 Win32_ で始まります。(そうでないものありますが、Windows OS の情報は、Win32_ で始まります)
該当する型が見つかったら、Windows 標準搭載の wbemtest コマンドを使って、
select * from Win32_Product
とクエリしてみて、必要な情報が得られているか、ざっと眺めてみます。
wbemtest の画面、使い方の例は・・・、
使用する型が決まったら、メモ帳などでvbsファイルをがりがり書き始めてokです。
もし、サンプルが必要なら、今度は 型 を含めて、ググると、コーディングの例が多数見つかります。
ただし、動かなくて質問している例も多数見つかりますので、情報を取捨選択してください。
もっと簡単にスクリプトのサンプルを得る方法もあります。
script center には、多数のスクリプト例が掲載されています。
左側から、取り扱いたいWMIの種類や、言語を選択していくと、掲載されているサンプルを絞り込めます。
型が具体的に分かっていて、楽して、サンプルの雛形が欲しい、のなら、 script o matic があります。
キーワードを指定して、型を絞り込むと、スクリプトサンプルを生成してくれます。
インストールして使う WMI ツールに、 CIM Studio の WMI Object Browser もあります。
WMI Object Browser は、 WMI の型全体を、一覧表示して、目で見て、必要な型を探す、のに役立ちます。