使用 PowerShell 卸载不同版本的 ClickOne 应用程序

Uninstall ClickOne application with different versions using PowerShell

我想使用 Powershell 卸载具有不同版本的应用程序引用 (.appref-ms)。

例如,有一个名为 [ApplicationName] 的应用程序引用,并且存在三个不同的版本。我希望 [ApplicationName] 版本 1.0.11 保持安装状态,同时卸载 1.0.1 和 1.0.3。

$InstalledApplicationNotMSI = Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall | foreach-object {Get-ItemProperty $_.PsPath}


$UninstallString = $InstalledApplicationNotMSI | ? { $_.displayname -eq "ApplicationName"} | select uninstallstring


cmd /c $UninstallString.UninstallString

您需要先定位到应用版本所在的字段。打开 regedit.exe 并导航至:

HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall

然后,在 PowerShell 脚本中,向您在此行中进行的查询添加一个额外的过滤条件:

$UninstallString = $InstalledApplicationNotMSI | ? { $_.displayname -eq "ApplicationName"} | select uninstallstring

例如:

$UninstallString = $InstalledApplicationNotMSI | ? { ( $_.displayname -eq "ApplicationName") -and ($_.DisplayVersion - eq "2.0")} | select uninstallstring

以上使用key下的DisplayVersion入口进一步过滤结果到你需要的应用