PowerShell快速高效地获取安装的软件列表 1


我想之前分享过如何使用WMI查询的方式获取安装的软件列表:

Get-WmiObject win32_product

小弟以前只知道WMI查询慢,很慢,从来没有体会过它会慢到让人抓狂,近乎崩溃。一个同事在他的机器上运行后,运行了两个小时,仍然没有结束,也没有一行结果返回。

这使我不得不投入到注册表的怀抱了。要扫描注册表,PowerShell表示没有任何压力。但是唯一需要我们小心的就是这里可能会有三个路径:

  1. ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall’
  2. ‘HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall’
  3. ‘HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall’

第一个表示的是机器级别的软件。

第二个表示仅限当前用户安装的软件(ClickOne程序默认可以从这个路径下查询)。

第三个和第一个类似,只是只可能出现在64位操作系统上。

具体的调用函数可以参考:

Get-InstalledSoftwares.ps1

也可以直接在控制台调用:

Invoke-Expression (new-object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/mosserlee/PSTips/master/Functions/Get-InstalledSoftwares.ps1') 
Get-InstalledSoftwares

 

本文链接: https://www.pstips.net/get-installedsoftwares.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “PowerShell快速高效地获取安装的软件列表