您的位置:首页 > 其它

WMI 获得已安装应用程序列表   Win32_Product WMI 类代表通过 Windows Installer 安装的所有应用程序。

2017-06-29 10:07 1136 查看
WMI 获得已安装应用程序列表

  Win32_Product WMI 类代表通过 Windows Installer 安装的所有应用程序。但是,这个 WMI 类可能不会列出所有出现在‘添加/删除程序’中的程序。 解决该问题的一种方法是从注册表中搜集已安装程序的信息(注意:并不是所有程序在安装的时候都会向注册表写入信息)。本主题给出了达到此目的的两种方法:使用脚本直接读取注册表中的信息,使用 MOF 文件和脚本从 WMI
中获取该信息。
  1.
  以下脚本用于列出计算机上已经安装的应用程序。使用 WMI System Registry Provider 直接从注册表中搜集信息的脚本:

  strHost = "." Const HKLM = &H80000002 Set objReg = GetObject("winmgmts://" & strHost & _ "/root/default:StdRegProv") Const strBaseKey = _ "Software\Microsoft\Windows\CurrentVersion\Uninstall\" objReg.EnumKey HKLM, strBaseKey, arrSubKeys For Each strSubKey
In arrSubKeys intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _ "DisplayName", strValue) If intRet $amp;<amp;$gt; 0="" then="" intret="objReg.GetStringValue(HKLM," strbasekey="" &="" strsubkey,="" _="" "quietdisplayname",="" strvalue)="" end=""
if="" (strvalue="" $amp;<amp;$gt;="" "")="" and="" (intret="0)" wscript.echo="" strvalue="" next="" <="" p="" style="margin: 0px; padding: 0px; list-style: none;">
  2.
  以下 MOF 文件和它的配套脚本展示了另外一种从注册表中获取已安装应用的方法。如果使用 MOF 文件,请按以下步骤操作:

  步骤 1:复制以下 MOF 语法到记事本并保存为一个 .MOF 文件(例如 products.mof)。

  qualifier dynamic:ToInstance; qualifier ProviderClsid:ToInstance; qualifier ClassContext:ToInstance; qualifier propertycontext:ToInstance; [dynamic, provider("RegProv"), ProviderClsid("{fe9af5c0-d3b6-11ce-a5b6-00aa00680c3f}"), ClassContext ("local|HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall")
] class Products {   [key] string KeyName;   [read, propertycontext("DisplayName")]   string DisplayName;   [read, propertycontext("DisplayVersion")]   string DisplayVersion;   [read, propertycontext("InstallLocation")]   string InstallLocation; };

  步骤 2:在命令提示行键入 mofcomp products.mof.该命令将 MOF 文件存入 WMI 存储库。

  步骤 3:MOF 存入存储库之后,使用以下脚本获取数据。

  strComputer = "." Set WMI = GetObject("winmgmts:\\" & strComputer & _ "\root\default") Set colItems = WMI.ExecQuery("Select * from Products") For Each objItem In colItems WScript.Echo "DisplayName: " & objItem.DisplayName WScript.Echo "DisplayVersion: " &
objItem.DisplayVersion WScript.Echo "InstallLocation: " & objItem.InstallLocation WScript.Echo "KeyName: " & objItem.KeyName Next
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: