本文告诉大家如何通过 WMI 获取系统安装的软件,这个方法不能获取全部的软件


通过 Win32_Product 可以获取系统安装的软件

            var mc = "Win32_Product";
var managementObject = new[]
{
"Caption",
"Description",
"IdentifyingNumber",
"InstallDate",
"InstallLocation",
"HelpLink",
"HelpTelephone",
"InstallSource",
"Language",
"LocalPackage",
"Name",
"PackageCache",
"PackageCode",
"PackageName",
"ProductID",
"RegOwner",
"RegCompany",
"SKUNumber",
"Transforms",
"URLInfoAbout",
"URLUpdateInfo",
"Vendor",
"WordCount",
"Version",
};
ManagementClass managementClass = new ManagementClass(mc);
ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();
var str = new StringBuilder(); foreach (ManagementObject m in managementObjectCollection)
{
foreach (var temp in managementObject)
{
try
{
str.Append(temp);
str.Append(" ");
str.Append(m[temp]?.ToString() ?? "");
str.Append("\n");
}
catch (Exception e)
{
Console.WriteLine(temp + " " + e);
}
} str.Append("\n");
} return str.ToString();

输出 str 的内容

Caption           : 坚果云
Description : 坚果云
IdentifyingNumber : {FEA8B01C-3F43-470A-BB28-679B1AEEC6E8}
InstallDate : 20180305
InstallLocation : C:\Program Files\Nutstore\
HelpLink : http://help.jianguoyun.com
HelpTelephone :
InstallSource : C:\Users\linde\AppData\Roaming\NutstoreClient\install\AEEC6E8\
Language : 2052
LocalPackage : C:\WINDOWS\Installer\4acb3a9.msi
Name : 坚果云
PackageCache : C:\WINDOWS\Installer\4acb3a9.msi
PackageCode : {3802EFD2-0953-4527-835E-E4C459062CD5}
PackageName : Nutstore.x64.msi
ProductID :
RegOwner :
RegCompany :
SKUNumber :
Transforms : C:\WINDOWS\Installer\{FEA8B01C-3F43-470A-BB28-679B1AEEC6E8}\Nutstore.mst
URLInfoAbout : https://www.jianguoyun.com/
URLUpdateInfo :
Vendor : 上海亦存网络科技有限公司
WordCount : 0
Version : 4.0.8 Caption : Apple 应用程序支持 (32 位)
Description : Apple 应用程序支持 (32 位)
IdentifyingNumber : {5A659BE5-849B-484E-A83B-DCB78407F3A4}
InstallDate : 20190221
InstallLocation : C:\Program Files (x86)\Common Files\Apple\Apple Application Support
HelpLink : http://www.apple.com/cn/support/
HelpTelephone : (86) 800 810 2323
InstallSource : C:\Users\linde\AppData\Local\Temp\IXP246.TMP\
Language : 2052
LocalPackage : C:\WINDOWS\Installer\1a1ef7b.msi
Name : Apple 应用程序支持 (32 位)
PackageCache : C:\WINDOWS\Installer\1a1ef7b.msi
PackageCode : {F3D0B996-B6DB-4283-9565-004518A6610B}
PackageName : AppleApplicationSupport.msi
ProductID :
RegOwner :
RegCompany :
SKUNumber :
Transforms :
URLInfoAbout : http://www.apple.com/cn/
URLUpdateInfo : http://www.apple.com/cn/
Vendor : Apple Inc.
WordCount : 0
Version : 7.3

Win32_Product class (Windows)

更多 WMI 博客请看

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

dotnet 通过 WMI 获取系统安装软件的更多相关文章

  1. PowerShell 通过 WMI 获取系统安装软件

    本文告诉大家如何通过 WMI 获取系统安装的软件 通过 Win32_Product 可以获取系统安装的软件 Get-WmiObject Win32_Product | Format-List Capt ...

  2. dotnet 通过 WMI 获取系统安装的驱动

    本文告诉大家如何通过 WMI 获取用户已经安装的驱动程序 通过 Win32_SystemDriver 可以获取用户已经安装的驱动程序 var mc = "Win32_SystemDriver ...

  3. PowerShell 通过 WMI 获取系统安装的驱动

    本文告诉大家如何通过 WMI 获取用户已经安装的驱动程序 通过下面代码可以获取用户已经安装的驱动程序 Get-WmiObject Win32_SystemDriver | Format-List Ca ...

  4. dotnet 通过 WMI 获取系统信息

    本文告诉大家如何通过 WMI 获取系统信息 通过 Win32_OperatingSystem 可以获取系统信息 var mc = "Win32_OperatingSystem"; ...

  5. dotnet 通过 WMI 获取系统启动的服务

    本文告诉大家如何通过 WMI 获取系统启动的服务 通过 Win32_Service 可以获取系统启动的服务 获取的时候只需要拿Caption和State就可以 var mc = "Win32 ...

  6. dotnet 通过 WMI 获取系统补丁

    本文告诉大家如何通过 WMI 获取补丁 通过 Win32_QuickFixEngineering 可以获取系统启动的服务 下面代码只是获取补丁的 kb 字符 const string query = ...

  7. dotnet 通过 WMI 获取设备厂商

    本文告诉大家如何通过 WMI 获取设备厂商 通过 Win32_ComputerSystem 可以获取电脑系统信息 通过下面代码可以获取 机器型号 和 制造厂商 var mc = "Win32 ...

  8. dotnet 通过 WMI 获取指定进程的输入命令行

    本文告诉大家如何使用 WMI 通过 Process 获取这个进程传入的命令行 使用下面代码,使用 Win32_Process 拿到所有的进程,通过 WHERE 判断当前的进程,然后拿到进程传入的命令 ...

  9. Java获取系统安装软件列表

    /** * @author <a href="mailto:foohsinglong@gmail.com">kevin.long</a> * @descri ...

随机推荐

  1. 公司电脑安装mysql出现小问题

    按步骤将mysql安装好后,在自己电脑完全没问题,但是在公司电脑安装的时候出现了这样的问题. 查阅资料以后,找到了问题: 参考链接:https://blog.csdn.net/huacode/arti ...

  2. 关于JSP的淘汰问题(转)

    来源:http://1t.click/peD 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开.你要是这辈子就吃java这碗饭,就不要去研究什么css,js等等. 把你的 ...

  3. 洛谷 P1505 [国家集训队]旅游 树链剖分

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例: 输出样例: 说明 思路 AC代码 总结 题面 题目链接 P1505 [国家集训队]旅游 题目描述 Ray 乐 ...

  4. hdu2044 dp

    /* 每一种情况都可以由周围2个点得出 */ #include<stdio.h> int main() { __int64 dp[]; int i,t,l,r; dp[]=; dp[]=; ...

  5. Effective C++: 05实现

    26:尽可能延后变量定义式的出现时间 1:只要你定义了一个变量而其类型带有一个构造函数或析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本:当这个变量离开其作用域时,你便得承受析构成 ...

  6. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性

    数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性:1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问 ...

  7. 设置PHP最长运行时间

    通常来说,默认的PHP程序最大运行时间是30s,如果你的程序运行超过这个时间限制,那么会有类似Maximum execution time of 30 seconds exceeded的报错. 有几种 ...

  8. jmeter循环和计数器

  9. async/await运用-前端表单弹窗验证同步书写方式(React)

    在前端项目中,我们经常会碰到这样的场景: 当前我们有一个表单需要填写,在完成表单填写后经过校验之后会弹出短信或者其他形式验证码,进行补充校验,然后一起提交给接口. 场景如下图: 当前为创建操作,编辑操 ...

  10. uniapp APP端使用指纹

    使用插件指纹模板: https://ext.dcloud.net.cn/plugin?id=358 Fingerprint模块管理指纹识别 要使用指纹识别功能需要具备条件: 确认当前设备环境是否支持指 ...