如何解决未经手动接受,无法使用注册表项远程卸载 Google Chrome
此命令卸载除谷歌浏览器之外的其他软件,提供程序为程序。我尝试了很多东西,但这不起作用。 请帮忙
解决方法
您说您的 Google Chrome 安装是通过 Programs
包管理提供程序执行的,而不是通过 msi
提供程序(对于后者,见底部)。
假设 $_.Meta.Attributes["UninstallString"]
有一个值,它包含一个包含 no-shell / for-cmd.exe
命令行 的字符串,通常不会 在使用 Invoke-Expression
直接从 PowerShell 执行时有效,因为 PowerShell 比需要 引用 的 cmd.exe
具有更多元字符,特别是 {
和 }
,用于 GUID。
- 更根本的是,
&
,call operator不支持执行整个命令行,它只需要命令的名称或路径或可执行文件,可选后跟参数。
在最简单的情况下(可能是异步执行,如果卸载可执行文件是一个 GUI 应用程序,例如 msiexec
),您可以执行以下操作:
Get-Package 'Google Chrome' | % {
cmd /c ($_.Meta.Attributes['UninstallString'] + ' /S')
}
有关详细信息,包括确保同步执行基于 msiexec
的卸载的方法,请参阅 this answer。
如果您的 Chrome 浏览器是通过 msi
软件包提供商安装的(验证:(Get-Package 'Google Chrome').ProviderName
):
并非所有已安装的程序都具有 UninstallString
属性(拥有 QuietUninstallString
属性的程序更少),并且由 msi
提供程序安装的 Google Chrome 没有。
但是,您应该能够通过管道连接到 Uninstall-Package
以进行静默(无人值守)卸载:
Get-Package 'Google Chrome' | Uninstall-Package
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。