Set oClassSet = oService.ExecQuery("Select * From Win32_Product)
ここのWin32_ProductはMSI でインストールされる製品を表します。
さらに、この一覧でソフト名称が「Microsoft」を含むソフトを取り出したい場合、下記のようにWQLを書く。
Set oClassSet = oService.ExecQuery("Select * From Win32_Product Where Name Like '%Microsoft%'")
以下はサンプルコードです。コピーペし、xxxxx.vbsに保存したら、実行してみてくださいね。
'*****************************************************
'* --MSIでインストール済みのアプリ一覧を表示方法
'* -例:Microsoftソフトがインストールされたかを確認
'* Author: MaTao
'*****************************************************
Option Explicit
'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr '表示メッセージ
'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件を WQL にて指定する。
' インストール済みのソフトから取り出し
'Set oClassSet = oService.ExecQuery("Select * From Win32_SoftwareFeature Where Caption Like '%Microsoft%'")
' MSIでインストールされたアプリから取り出し
Set oClassSet = oService.ExecQuery("Select * From Win32_Product Where Name Like '%Microsoft%'")
'コレクションを解析する。
For Each oClass In oClassSet
sMesStr = sMesStr & oClass.Name & " v" & oClass.Version & vbCrLf
Next
MsgBox "MSI でインストールされた製品に関する情報です。" & vbCrLf & vbCrLf & sMesStr
'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
zanmai @2016年03月31日
» ①②③④の順で設定できるはず。…