インストールされているソフトウェアの一覧

WMIを使ってスクリプトで適当に取れるんじゃないか、と予想したが、いまいちうまくいかないようだ。


最初にWin32_ProductとWin32_SoftwareFeatureが使えそうだと言うのはすぐ検索で見つかったが、どうもこの2つはWindows Installerでインストールされたソフトしかひっかからないっぽい。


というわけで直接レジストリ(Uninstall)から引っ張ってくるしかないようだ。

Const HKEY_LOCAL_MACHINE = &H80000002

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

unKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"

objReg.EnumKey HKEY_LOCAL_MACHINE, unKeyPath, arrSubKeys

For Each Subkey in arrSubKeys
    objReg.GetStringValue HKEY_LOCAL_MACHINE, unKeyPath & "\" & subkey, "DisplayName", strValue
    If Not IsNull(strValue) Then 
        Wscript.Echo strValue
    End If
Next

wscript.Quit