2012年11月28日水曜日

[Script][VBS]WMIを使う場合のひな形サンプル

呼び出し方

WMI 空間への認証済み接続であるWbemLocator を作成 / Win32_Process 'WbemLocator オブジェクトを作成
Set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer

Set objClassSet = objService.ExecQuery("Select * From Win32_Process")

For Each objClass In objClassSet
  If objClass.Name = "iexplore.exe" Then i = i + 1
Next

If i = 0 Then
  MsgBox "IE は起動していません。"
Else
  MsgBox "IE は " & i & " 個起動しています。"
End If

SWbemServices オブジェクトのモニカーを利用してWbemLocatorを作成 'WbemLocator オブジェクトを作成
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

For Each objProcess in colProcesses
  If objProcess.Name = "chrome.exe" Then j = j + 1
Next

If j = 0 Then
  MsgBox "Chrome は起動していません。"
Else
  MsgBox "Chrome は " & j & " 個起動しています。"
End If

WQL(Windows Query Language)で条件を指定することができる Set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer

Set objClassSet = objService.ExecQuery("Select * From Win32_Process Where Name = ""iexplore.exe""")

For Each objClass In objClassSet
  i = i + 1
Next

If i = 0 Then
  MsgBox "IE は起動していません。"
Else
  MsgBox "IE は " & i & " 個起動しています。"
End If

モニカー(winmgmts:)を利用しても同じことができる strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = ""chrome.exe""")

For Each objProcess in colProcesses
  j = j + 1
Next

If j = 0 Then
  MsgBox "Chrome は起動していません。"
Else
  MsgBox "Chrome は " & j & " 個起動しています。"
End If


Script のページに戻る

0 件のコメント:

コメントを投稿