我想获得一个Windows中独特安装程序的列表,比如在windows中的“添加/删除程序”。但HKLM \ Software \ Microsoft \ Windows \ Current Version \ Uninstall中的数据, 有一些重复。我该如何过滤它们?
感谢
答案 0 :(得分:2)
推荐的Win32方法是使用Microsoft Installer API。您想要的功能是MsiEnumProductsEx。
答案 1 :(得分:0)
我使用Win32_Product表的'GetWmiObject'查询遇到的问题是,它希望已安装的程序使用标准的uuid密钥名称,并且我发现并非所有供应商都以此方式命名其注册表项。
在powershell中,我这样做是为了扫描所有键,而不管名称如何
$reg = Get-ChildItem "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse
foreach ($a in $reg) {
if ($a.GetValue("Publisher") -eq 'Publisher_Name') {
Write-Output $a.GetValue("DisplayVersion")
}
}