PowerShell 列出所有可卸载的应用程序

由于大多数标准应用程序都向 Windows 注册了卸载程序,我们通过在 Windows 注册表中查找它们便可以在本地对其进行处理。 无法保证找到系统上的每个应用程序。 但可以在下列注册表项的“添加或删除程序” 中显示的列表中查找所有程序:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Uninstall 列中的一个值匹配。
我们可以检查此项以查找应用程序。 若要更加轻松地查看 Uninstall 项,我们可以将 PowerShell 驱动器映射到此注册表位置:

PS C:/Users/maxsu> New-PSDrive -Name Uninstall -PSProvider Registry -Root HKLM:/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Uninstall                              Registry      HKEY_LOCAL_MACHINE/SOFTWARE/Micr...

现在具有一个名为“Uninstall:”的驱动器,可用于快速方便地查找应用程序安装。 我们可以查找已安装应用程序的数量,方法是计算’’Uninstall: PowerShell’’驱动器中的注册表项数:

PS C:/Users/maxsu> (Get-ChildItem -Path Uninstall:).Count
107

我们可以使用各种以 Get-ChildItem 开头的技术进一步在此列表中搜索应用程序。 若要获取应用程序列表并将其保存在 $UninstallableApplications 变量中,请使用以下命令:

$UninstallableApplications = Get-ChildItem -Path Uninstall:

若要显示 Uninstall 下注册表项中的注册表条目的值,请使用注册表项的 GetValue 方法。 该方法的值是注册表条目的名称。
例如,若要查找 Uninstall 项中应用程序的显示名称,请使用以下命令:

PS C:/Users/maxsu> $UninstallableApplications = Get-ChildItem -Path Uninstall:
PS C:/Users/maxsu> $UninstallableApplications | ForEach-Object -Process { $_.GetValue('DisplayName') }
7-Zip 18.05 (x64)
EditPlus (64 bit)
Git version 2.19.0
Mozilla Firefox 72.0.2 (x64 en-US)
Mozilla Maintenance Service
Apache NetBeans IDE 11.2
NetBeans IDE 8.2
Python 3.7.0 (Anaconda3 5.3.1 64-bit)
Vulkan Run Time Libraries 1.0.61.0
Vulkan Run Time Libraries 1.0.65.1
Vulkan Run Time Libraries 1.0.65.1
WinRAR 5.50 (64-位)
Windows App Certification Kit Native Components
用于 SQL Server 的 Active Directory Authentication Library
Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.40664
Microsoft Azure Authoring Tools - v2.9.5.3
Intel(R) Rapid Storage Technology
Apple 应用程序支持 (64 位)
vs_Graphics_Singletonx64
Windows SDK for Windows Store Apps DirectX x64 Remote
Update for Windows 10 for x64-based Systems (KB4023057)
Intel(R) Management Engine Components
Microsoft Visual C++ 2010  x64 Redistributable - 10.0.40219
Microsoft .NET Core 1.0.6 - Host FX Resolver (x64)

不能保证这些值是唯一的。 在以下示例中,两个已安装的项将显示为“Windows Media 编码器 9 系列”:

$UninstallableApplications | Where-Object -FilterScript {
  $_.GetValue("DisplayName") -eq "Microsoft Silverlight"
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/266825.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论