WMI 获得已安装应用程序列表 Win32_Product WMI 类代表通过 Windows Installer 安装的所有应用程序。
来源:互联网 发布:excel数据服务器 编辑:程序博客网 时间:2024/06/15 21:54
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
- WMI 获得已安装应用程序列表 Win32_Product WMI 类代表通过 Windows Installer 安装的所有应用程序。
- WMI 已安装的应用程序类
- android获得已安装应用程序列表
- android获得已安装应用程序列表
- WMI使用的WIN32_类库名 WMI使用的WIN32_类库名 包括:硬件类、操作系统类、安装应用程序类、WMI服务管理类、性能计数器类
- [小代码]获得已安装应用程序的列表
- 安卓获得已安装的应用程序列表
- WMI Series 8:规范化自己的应用程序
- 获得所有安装在手机上的应用程序的数据
- WMI类--所有可用的WMI的类封装
- WMI类--所有可用的WMI的类封装
- 通过WMI获得硬件信息
- 安装 DNS WMI Provider
- 演示如何使用WMI获得本地机器的进程列表
- 通过WMI获得硬盘和CPU的物理序列号
- Windows mobile 判断应用程序是否安装,获取已经安装的应用程序列表
- 在包内调用installer安装应用程序的方法
- 获得所有已安装程序的信息
- ssm框架细枝末节之导出
- modelsim-win64-10.4-se 下载、安装、破解全攻略
- 【欧拉筛/线性筛】BZOJ2813 奇妙的Fibonacci
- 自己所学专业介绍
- RAW格式转化为BMP
- WMI 获得已安装应用程序列表 Win32_Product WMI 类代表通过 Windows Installer 安装的所有应用程序。
- 指针的好处
- 十大必须禁止的服务!
- Fragment解决重复加载的问题
- java正则\\1
- Adaptive large neighborhood search Heuristics for the vehicle routing problem with stochastic deman
- C语言提示:什么是"逻辑或";…
- 自动生成页码
- 单片机和FPGA的区别