SQL文でWMIの情報を取得[WQL]
WMIの情報を取得するために、SWbemObjectSetからWMI Classesのインスタンスを取得し、取得したWMI Classesの各インスタンスのプロパティから情報を取得するという流れで作業します。
この作業をWQLと呼ばれるSQL文を使った方法で取得することができます。SQL文の場合、通常はデータベースやテーブルを操作しますが、WQLではWMI Classesが対象となります。
下記にデータベースとの対応を表します。
SQL(データベース) | WQL |
---|---|
テーブル | WMIのクラスセット(SWbemObjectSet) |
行 | WMIインスタンス(WMI Class) |
列 | WMIプロパティ |
WQLの使い方
WQLを使用するには、SWbemServicesのExecQueryメソッドを使用します。データベースと同様にSELECT プロパティ[,プロパティ,…] FROM WMIクラス で取得できます。列名のアスタリスク(*)も使用することができます。
<script language="VBScript" content="text/vbscript">
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}")
Set objClasses = objService.ExecQuery("SELECT size FROM Win32_LogicalDisk WHERE DeviceID = 'C:'")
For Each objDisk In objClasses
document.write objDisk.size
Next
</script>