WMIをWSHで扱う

WMIを利用するとWindowsの様々な情報を扱うことができる。
例えば、Explorlerで「一覧にエクスポート」できないものを出力したり・・・など。



WmiSample.vbs

'--------------------------------------------------------------------------------------
'
'
'	WMIを利用してWindowsの情報を取得
'
'
'--------------------------------------------------------------------------------------

'WMIサービスを取得する(winmgmts⇒WMIサービス,impersonationLevel⇒認証レベル)
Set objServices = GetObject("winmgmts:{impersonationLevel=impersonate}")


'Win32_LogicalDiskの全件を取得
Set objObjectSet = objServices.InstancesOf("Win32_LogicalDisk")
For Each objObject In objObjectSet
    WScript.Echo objObject.Description
Next

'WQL(クエリ)を利用してWin32_ProductのNameの先頭に'F'がつくものを抽出
Set objObjectSet = objServices.ExecQuery("select * from Win32_Product where Name like 'F%'")
For Each objObject In objObjectSet
    WScript.Echo objObject.Name
Next


WQLの書き方はSQLと同じだが「Order By」とかは使えない模様。



WMIのクラス、プロパティを調べるにはVbsEdit(WSHのエディタ。シェアウェア)などのツールを使用すると便利。


こんなツールもあるらしい↓

WMI Code Creator v1.0[英語](マイクロソフト
http://www.atmarkit.co.jp/fwin2k/win2ktips/756wmicreator/wmicreator.html