windows - WMI "installed"查询与添加/删除程序列表不同?

标签 windows windows-installer wmi

尝试使用 WMI 获取 Windows XP 的已安装程序列表。使用 wmic,我试过:

wmic /output:c:\ProgramList.txt product get name,version

我得到了许多已安装程序的列表,但是在根据“添加/删除程序”显示的内容删除此列表后,我看到在添加/删除程序的 GUI 中列出的程序比 WMI 查询要多得多。我需要使用另一个 WMI 查询来安装其余程序吗?或者还有其他地方我需要寻找休息吗?

此外,WMI 查询中列出了两个已安装的程序,它们不在“添加/删除程序”中。知道为什么吗?

最佳答案

我相信您的语法使用的是 Win32_Product WMI 中的类。一个原因是此类仅显示使用 Windows Installer (See Here) 安装的产品。 Uninstall Registry Key是您最好的选择。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

评论更新:

卸载注册表项是列出已安装和未安装内容的标准位置。这是添加/删除程序列表将用于填充应用程序列表的位置。我确信有些应用程序没有在此位置列出自己。在那种情况下,您将不得不求助于另一种更粗暴的方法,例如搜索 Program Files 目录或查看“开始”菜单程序列表。这两种方式肯定都不理想。

在我看来,查看注册表项是最好的方法。

关于windows - WMI "installed"查询与添加/删除程序列表不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673233/

相关文章:

windows - 从 cmd.exe 设置持久环境变量

windows - ediff 在 Windows 上的 emacs 中不起作用

windows - 为什么 WmiPrvSE.exe 持有我进程的作业对象的句柄?

c++ - 提示用户在卸载时关闭应用程序 - WIX

c# - 在 .NET 中以编程方式检索断开连接的网络适配器信息

c#-4.0 - 修改网络适配器属性时如何保证独占访问

windows - Json.net 无法在 visual studio 2012 中安装

windows - Windows Shell 中的 ImageMagick 命令替换

wpf - VSTO Office (Excel) 加载项 - WPF XAML 样式、ResourceDictionary

installation - Wix - 升级总是运行较旧的安装程序 msi 并且在尝试读取旧 msi 时失败