wmic product get 不能获取所有程序

use*_*630 4 windows windows-7 batch batch-file cmd.exe

当我使用

wmic product get name name,version
Run Code Online (Sandbox Code Playgroud)

我得到一个列表,其中显示了我 PC 上安装的所有程序,但仍然没有列出所有程序。当我转到控制面板 > 卸载程序时,我看到更多程序

gre*_*egg 7

根据 Microsoft:Win32_Product WMI 类表示由 Windows Installer 安装的产品(AKA .MSI 安装程序文件,msiexec)

由于还有其他安装程序/软件打包程序(InstallShield、Wise、NSIS [Nullsoft Scriptable Install System])显然没有在 WMI 中注册自己(因为它们可能早于它)我想我们必须在多个位置进行查询:(。标准在变化,因为 IT 总是如此,所以这只是我们必须处理的现实。正如您在评论中已经提到的,您可以在这些位置查询所有其他应用程序的注册表: HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall& HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

我猜 WMI 在这个位置查询注册表: HKEY_CLASSES_ROOT\Installer\Products

以下是一些包含其他信息的链接: