如何解决如何使用Powershell在控制面板的“程序和功能”中获取“查看已安装的更新”列表?
尝试获取所有已安装的更新(包括第三方应用程序的更新,例如Acrobat等),方法是单击控制面板中“程序和功能”中的“查看已安装的更新”。
以下方法没有帮助,可能是因为它们仅限于Microsoft / Windows:
f1 xs = sum (map foldT xs)
-- f1 = sum . map foldT
Example: I want to get KB2565063 from attached image below
谢谢
解决方法
您可以使用以下cmdlet来获取计算机上已安装更新的完整列表(包括第三方应用程序更新):
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*
此cmdlet会为每个对象返回很多属性,包括DisplayName,DisplayVersion,语言,EstimatedSize,PSPath等。您可以通过在上述cmdlet之后通过管道| select <property_name1>,<property_name2>
来过滤需要获取的属性。
我假设您要与msu提供程序一起打包:
Object
,
我发现了以下选项:
$x = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like "*foo*" }
$y = Get-ItemProperty HKLM:\SOFTWARE\Classes\Installer\Dependencies\* | Where-Object {$_.DisplayName -like "*foo*" }
在$ x中,您具有“卸载程序”中的软件,在$ y中,您具有来自“已安装的更新”的更新。
我对此不太满意,我想知道Windows如何实际上将$ x和$ y链接在一起而不仅仅搜索名称。
也许有人可以为我们修复缺少的部分:-)
编辑
我找到了解决方法:
Get-ItemProperty HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.ParentDisplayName -like "*foo*" }
这将返回一个对象,其中ParentDisplayName
是您的程序,DisplayVersion
是更新版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。