为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用PowerShell卸载应用程序?

如何使用PowerShell卸载应用程序?

是否有一种简单的方法可以使用PowerShell来挂接标准的“ 添加或删除程序 ”功能以卸载现有应用程序?还是检查应用程序是否已安装?
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

多年来,这个答案已经获得了不少好评。我想补充一些意见。从那时起我就没有使用过PowerShell,但是我记得观察到一些问题:


如果以下脚本的匹配项多于1,则它将不起作用,您必须附加将结果限制为1的PowerShell过滤器。我相信可以,-First 1但不确定。随时编辑。

如果MSI未安装该应用程序,则该应用程序将无法运行。编写它的原因如下,这是因为它修改了MSI以在没有干预的情况下进行卸载,这在使用本机卸载字符串时并不总是默认情况。

使用WMI对象需要花费很多时间。如果您只知道要卸载的程序的名称,这将非常快。


$uninstall32 = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString

$uninstall64 = gci "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString


if ($uninstall64) {

$uninstall64 = $uninstall64.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""

$uninstall64 = $uninstall64.Trim()

Write "Uninstalling..."

start-process "msiexec.exe" -arg "/X $uninstall64 /qb" -Wait}

if ($uninstall32) {

$uninstall32 = $uninstall32.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""

$uninstall32 = $uninstall32.Trim()

Write "Uninstalling..."

start-process "msiexec.exe" -arg "/X $uninstall32 /qb" -Wait}


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 1845 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信