使用 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
入口进一步过滤结果到你需要的应用
我想使用 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
入口进一步过滤结果到你需要的应用