问题 13:如何列出特定计算机上已经安装的所有应用?

转载http://www.microsoft.com/china/technet/community/scriptcenter/resources/wmifaq.mspx#EXEAE

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, arrSubKeysFor Each strSubKey In arrSubKeysintRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _"DisplayName", strValue)If intRet <> 0 ThenintRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _"QuietDisplayName", strValue)End IfIf (strValue <> "") and (intRet = 0) ThenWScript.Echo strValueEnd If
Next

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 colItemsWScript.Echo "DisplayName: "  & objItem.DisplayNameWScript.Echo "DisplayVersion: " & objItem.DisplayVersionWScript.Echo "InstallLocation: " & objItem.InstallLocationWScript.Echo "KeyName: " & objItem.KeyName
Next

WMI 获得已安装应用程序列表相关推荐

  1. CCleaner如何列出已安装的程序

    我们的计算机上一般会下载很多个必要的软件,但是如果我的计算机出现问题,需要重装系统,可能有些软件就得丢失,或者是打算重新购买一台新的计算机,那么我们就需要在新的计算机上重新安装软件,但有一些软件你可能 ...

  2. ios获取已安装的应用列表

    ios获取已安装的应用列表 #ios -(NSMutableArray*) getInstallAppInfo{NSMutableArray *arrayAppInfo = [[NSMutableAr ...

  3. iOS获取已安装的app列表(私有库)+ 通过包名打开应用

    1.获取已安装的app列表 - (void)touss {Class lsawsc = objc_getClass("LSApplicationWorkspace");NSObje ...

  4. 获取Android手机已安装应用程序的安装包

    手把手教你获取Android手机已安装应用程序的安装包 前言: 某天临时访问了一个网址然后下载了一个APP,过了一段时间想要将这个APP安装在其他手机上面或者是介绍给其他小伙伴安装的时候发现该应用在应 ...

  5. 【HMS core】【Analytics Kit 解决方案】为何华为分析SDK在初始化之前就会获取已安装的应用列表?

    1.问题背景 华为分析SDK在初始化之前就会调用相关的API读取手机上已安装的应用列表,这一行为的发生是在用户尚未同意相关的隐私条款之前就进行了,因此就导致应用在别的应用市场上架审核时可能会出现警告或 ...

  6. android 安装包 权限,确定Android中已安装应用程序使用的权限列表

    我必须确定我的设备上已安装的应用程序使用的权限列表. 我已经安装了应用程序列表,并使用以下代码包名称: PackageManager pm = this.getPackageManager(); In ...

  7. C# 检查当前系统已安装的程序app/两种方法检测

    一.目的.构思 1.检测当前系统有没有安装某个程序,如果没有就重新安装. 2.在网上找到了两种方法,可惜都找不到需要检测的app. 二.code实现 1.查找注册列表方式.要在winform的proj ...

  8. 【语音从零之五】用科大讯飞语音包实现语音打开已安装应用程序

    [更新]有人说不会使用科大讯飞的语音包,这里是传送门,可以参考从零系列的前四篇文章 (一)利用科大讯飞语音包实现Android语音识别Demo (二)科大讯飞语音包Mscdemo的使用 (三)自定义类 ...

  9. android 获取已安装应用(App)列表

    效果图 获取手机上已安装应用列表,将获取到的信息用集合返回,可以自己定义是否过滤系统应用,Appinfo是一个实体类,包含应用的名称 包名 图标icon等等 /*** 获取手机已安装应用列表* @pa ...

最新文章

  1. Python通过http、url获取数据
  2. 软件学院学生在数据管理国际会议SIGMOD程序竞赛中喜获佳绩
  3. 在IIS8.5的环境下配置WCF的Restful Service
  4. python基础练习(五)
  5. hibernate 最新 jar 下载
  6. 【⭐C/C++の深入浅出⭐】int数与多枚举值互转
  7. python标准库之socket_python标准库SocketServer学习
  8. pytorch自定义模型执行过程
  9. 安卓学习笔记44:开源框架okhttp3入门
  10. pytorch保存.pth文件
  11. java一个和_你知道Java中和||放一个表达式中怎么执行吗-百度经验
  12. python3 数据结构_python系列十一:python3数据结构
  13. 游戏窗口化工具_仙剑奇侠传16珍藏版大合集(含各个版本和工具)
  14. 数论学习-初等数论基础总览
  15. 取消idm下载器和google浏览器的关联(让谷歌浏览器禁止使用idm插件)
  16. linux复制压缩包到另一个文件夹,linux复制文件到另一个文件夹或目录
  17. 高薪利器:四大热门云计算认证推荐
  18. vue页面引用百度地图怎么让百度logo不显示
  19. 电脑端哔哩哔哩视频下载
  20. 蛇形填数【附重点步骤详细注释】

热门文章

  1. weblogic部署步骤
  2. websocket handshake unexpected response code 404问题
  3. (转载)设计模式之-策略模式(Strategy)
  4. 光信噪比 (OSNR) 的概念及其重要性
  5. iOS多任务:suspend VS terminate
  6. Tips/Tricks#3:利用JavaScript选择GridView行
  7. cmd命令窗口mysql查询表数据命令行_cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)...
  8. 设置最大值_Power BI经典技巧:在走势图上标注最大值、最小值…
  9. 学Python的女生好不好找工作?
  10. python定位方法_selenium+python定位元素方法