如果您是系统管理员,其中之一的工作就是在许多系统上安装、升级和删除软件。如果我告诉您,您不必再手动连接到每台机器并检查已安装的软件了,您会怎么想?实际上,您可以使用 PowerShell 列出已安装的软件!
在本博客文章中,我将向您展示如何使用 PowerShell 在本地机器和多台计算机上同时列出已安装的软件。

请注意,一些文章可能会告诉您执行类似
Get-WmiObject -Class win32_product
的操作。不要这样做。了解原因请看这里。
已安装的软件和注册表
供参考,已安装的软件存在于三个位置:
- 32位系统卸载注册表键
- 64位系统卸载注册表键
- 每个用户配置文件的卸载注册表键。
每个软件条目通常由软件的全局唯一标识符(GUID)定义。GUID 键的内部包含有关该特定软件的所有信息。要获取完整列表,PowerShell 必须枚举每个键,读取每个注册表值并解析结果。
由于正确解析这些值的代码远远超过一篇文章的容量,我预先构建了一个名为Get-InstalledSoftware
的函数,使用PowerShell列出安装的软件。如下所示,该函数将所有代码封装起来,以便为您列出计算机上安装的程序。
将此函数复制并粘贴到您的 PowerShell 控制台中或将其添加到您的脚本中后,您可以使用ComputerName
参数和特定的计算机名称调用它。
使用 PowerShell 列出已安装的软件
这样做时,您将针对安装的每个软件获取一个对象。您可以获取关于已安装的任何软件的丰富信息。
如果您提前知道软件名称,还可以使用Name
参数来限制只匹配该值的软件。
例如,也许您只想检查 Microsoft Visual C++ 2005 Redistributable (x64) 是否已安装。您只需将其作为Name
参数值,如下所示。
总结
使用 PowerShell 获取已安装的软件,您可以构建一个完全免费的工具,您和您的团队可以同时轻松地找到许多 Windows 计算机上安装的软件!
Source:
https://adamtheautomator.com/powershell-list-installed-software/