WMI Fun !! 〜 WMI に興味がある方・システム管理者は必見です! 〜
 WMI Step|WMI Sample|WMI Reference|WMI Library|Enquete|About WMI Fun !!
 My Let'snote|Personal|Insomnia|Link

WMI Fun !! > WMI Step > VBS(WSH) から WMI を使ってみよう

このエントリーをはてなブックマークに追加
Panasonic Let'snote を長年愛用しています、その理由は My Let'snote で…
中古車買うならやっぱりカーセンサーnet、お気に入りの 1 台が見つかります
IT 関連情報を気軽に知りたい方へ、キーマンズネットがおすすめです

VBS(WSH) から WMI を使ってみよう - WMI Step

Topics

今までは VB での使用方法を説明してきましたが、もちろん問題なく WSH(Windows Script Host) からでもWMIは普通に使うことが出来ます。 (システム管理者が WMI を使うことを考えれば WSH で使用するケースが多いかも…。)
ここでは WSH にて使用できるスクリプトエンジンである VBScript(VBS) を使っていきたいと思います。

ただしいくら VBS が VB とそっくりといってもやはり違う部分が出てきます。
もちろん今までの構文の書き方では実行時にエラーが発生してしまいます。

以下のサンプルコードは空き領域が 10% 切っているドライブを取得するサンプルの VBS 版です。



Sample Code

Option Explicit

Dim DiskSet
Dim Disk
Dim Locator
Dim Service
Dim MesStr

Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer

Set DiskSet = Service.ExecQuery _
      ("Select * From Win32_LogicalDisk Where DriveType=3")

For Each Disk In DiskSet
      If (Disk.FreeSpace / Disk.Size) < 0.1 Then
      MesStr = MesStr & Disk.Name
      End If
Next

MsgBox "空き容量が10%以下のドライブは、" & _
            vbCrLf & MesStr & "ですよ。"

Set DiskSet = Nothing
Set Disk = Nothing
Set Locator = Nothing
Set Service = Nothing



Comment

では実行してみましょう。
空き容量が 10% 切っているドライブがあればそのドライブ名が表示されるはずです。

VB 用サンプルとの変更部分は、

Set Locator = CreateObject("WbemScripting.SWbemLocator")

です。
VBS では NEW キーワードをつかって新しいオブジェクトのインスタンスを作成することはできません。
Wscript.CreateObject メソッドを使用して COM オブジェクトを生成する必要があります。
VBS では変数の型という概念がないので宣言する必要はありません。(完全にないわけではありませんが…。)

サンプルを見てみて解って頂けたと思いますが VBS での使い方は VB での使用時とほとんど同じです。
WQL で指定する WMI クラス情報を書き換えることでほかの WMI クラスの情報も取得可能です。


ちなみにサンプル上の、

Set Locator = Wscript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer

の部分に関しては以下のように表現も可能です。

Set Service = GetObject("winmgmts:\\.\root\cimv2")

VBS を使えばコマンドプロンプトを使用した CUI ベースのスクリプトが作れるため個人的には結構好きだったりします。
従来のバッチファイルと同じイメージで WMI を使用することも出来るので…。

次は「VBS(WSH) から WMI のメソッドを使ってみよう」です。


ご意見・ご要望・ご感想をこちらのアンケートからお待ちしています
WMI に関して調べているけど探し物が見つからない…という方は Search Result から検索してみましょう!!

MCP (Microsoft Certified Professional)、 MCA (Microsoft Certified Associate)CompTIA A+
一応 MCP (Microsoft Certified Professional)、MCA (Microsoft Certified Associate)、
CompTIA A+ を所有してたりします…

- WMI Fun !! -
http://www.wmifun.net/
Microsoft 社のテクノロジーである WMI (Windows Management Instrumentation) の使い方を
Visual Basic を使ってのんびり公開しています
WMI は Windows 7 や Windows 8、Windows 10 で便利に使えますよ!
また VB や VBA、.Net (VB・C#) などの開発環境以外でも Win32/Win64 API に依存しないので WMIC や
WSH (VBS・JS)・PowerShell などスクリプト言語・コマンドラインから有効に活用が出来ます
Windows ベースの社内 IT システムに関する資産管理、アセットマネジメントや監視業務の効率化、
インベントリ情報収集系システムツール開発に WMI はお勧めです

This website is created by Toh.
Copyright(C) 1997-2016 WMI Fun !! All rights reserved.
WMI Fun !! へのリンクはご自由に…相互リンクに関するお問い合わせはアンケートページからお願いします

∧ ページの先頭へ…