使用powershell卸载exe软件

Posted

技术标签:

【中文标题】使用powershell卸载exe软件【英文标题】:Uninstall a exe software using powershell 【发布时间】:2019-01-19 00:57:38 【问题描述】:

我正在关注this thread 从我的 Windows 10 系统中卸载 mozilla firefox。

我最初使用 exe 安装程序安装了 mozilla firefox,但没有得到执行 gwmi -Class Win32_Product 的 mozilla 条目。

有什么方法可以在我的 Windows 系统上触发该软件的卸载程序?

注意:我不能为此目的使用 msi 安装程序。

【问题讨论】:

【参考方案1】:

如果你跑了

Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ | ?  $_ -match "Firefox" 

它将UninstallString 显示为:

C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe

您应该能够运行它来删除 Firefox。使用/s 开关运行静默卸载。

类似的东西:

'"C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe /s"' | cmd

【讨论】:

专业提示:如果您使用正斜杠,它在 Windows 上效果很好,并且在 *** 上也能更好地突出显示。 这个答案的第一步会生成一个哈希表,我们被要求从中找到一个值并在第二步中手动使用它。如果通过管道传递答案的第一步以选择卸载可执行文件的路径,然后通过管道传递以执行卸载,则可以改进此答案,所有这些都在一个命令或脚本中。【参考方案2】:

使用架构差异添加修改后的工作代码

$x86App  = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' | ?  $_ -match "Firefox" 

$x64App = Get-ChildItem 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | ?  $_ -match "Firefox" 

if ($x86App)

$UninstallPath = ($x86App |Get-ItemProperty).UninstallString
Start-Process -NoNewWindow -FilePath $UninstallPath -ArgumentList " /s"


elseif($x64App)

$UninstallPath = ($x64App |Get-ItemProperty).UninstallString
Start-Process -NoNewWindow -FilePath $UninstallPath -ArgumentList " /s"


【讨论】:

我想你可能有这些倒退。 我在这里找不到 Python 3.6。如果我通过将“Python”替换为“Firefox”来将其用于 Python,则它不起作用。我错过了什么吗?

以上是关于使用powershell卸载exe软件的主要内容,如果未能解决你的问题,请参考以下文章

想要使用PowerShell将不同的字符串分成多个部分的通用方法

Powershell 调用使用 App.config 的 .NET 程序集

Powershell:卸载提示用户输入的软件

powershell 远程卸载软件

如何卸载win10系统自带程序

powershell 从注册表中检索软件包的卸载信息