使用Powershell静默卸载应用程序

问题描述 投票:1回答:2

我有以下Powershell脚本,我正在使用该脚本获取Google Chrome的卸载字符串,然后我要以静默方式将其卸载。脚本中的第3行将弹出GUI卸载程序(因此到目前为止,似乎一切都正确),但是如果我在参数列表中添加“ / qn”或“ / quiet”,则卸载似乎不会在全部,即使我让它坐了几个小时。我想念什么?

    $AppName = "Google Chrome"
    $Chrome = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | Where-Object {$_.DisplayName -match $($AppName)}
    Start-Process -Wait -FilePath MsiExec.exe -Argumentlist "/X",$Chrome.UninstallString.TrimStart("MsiExec.exe /X")

感谢您的帮助,

安德鲁

powershell uninstall silent
2个回答
2
投票

如果是msi,则可以使用uninstall-package:

get-package *chrome* | uninstall-package -whatif

0
投票

而不是尝试使用/ X并删除/ X和其他东西,请尝试以下操作

# Get the key to uninstall
$chromeUninstall = $Chrome.Pspath.Split("\")[-1]

Start-Process -Wait -FilePath MsiExec.exe -Argumentlist "/X $ChromeUninstall /quiet /norestart"

或更简单的是,

Start-Process -Wait cmd.exe -ArgumentList "/c msiexec /X $ChromeUninstall /quiet /norestart"

[/c-执行由字符串指定的命令,然后终止]


在我的系统上,我得到两个卸载字符串。您可能需要考虑使用[0]

循环或选择列表中的第一个
© www.soinside.com 2019 - 2024. All rights reserved.