首页 > 解决方案 > PS:模拟CCleaner“卸载”工具列出PC上安装的程序

问题描述

CCleaner 包含一个工具,用于列出并卸载 PC 上的程序。此列表似乎以比浏览卸载注册表项更全面的方式包含应用程序。Atom(开源文本编辑器)就是一个例子。该程序不会出现在卸载注册表中,而是安装在用户的 AppData 文件夹中(我不知道在不构建自定义包的情况下为所有用户安装此程序的方法)。

我编写了一个脚本来定期安装和更新某些软件包。这使我可以轻松地让它们保持最新状态,而无需每周访问十几个网站或每次我想更新它们时构建自定义安装程序(它们不会像 Chrome 或 Firefox 那样自动更新)。因此,我需要一个可以动态创建并用于检查更新以及是否需要执行安装程序的列表。

所以我的问题是:我如何模拟 CCleaner 在创建卸载程序列表时所做的事情 - 以编程方式?我可以执行 GUI 并导航到卸载工具并单击“保存到文本文件”,但这不是动态的。任何允许我捕获(在 Powershell 脚本中)CCleaner 在卸载工具中生成的相同应用程序列表的答案都是可以接受的。

标签: windowspowershellregistry

解决方案


您也可以使用Get-Package列出已安装的程序。它将列出 Atom。您可能需要将注册表方法与Get-Package未显示全部的情况结合起来。

Get-Package | Where-Object name -like *atom*

Name       Version     Source      ProviderName                                                                                                 
----       -------      ------     ------------                                                                                                 
Atom       1.53.0                  Programs  

推荐阅读