使用Powershell卸载应用程序

时间:2018-10-30 10:38:51

标签: powershell

我在虚拟机上安装了一个第三方代理,需要使用Powershell删除它。

它显示在控制面板中,添加/删除程序,但没有使用get-wmiobjectget-itemproperty hklm卸载注册表项路径显示:

get-itemproperty HKLM:\\software\microsoft\windows\currentversion\uninstall* | select-object displayname, displayversion, publisher

还有谁知道我可以使用脚本将其删除的方法吗?

4 个答案:

答案 0 :(得分:0)

尝试:

 $installedMsiObject = Get-WmiObject -Class Win32_Product | Where-Object { $_.PackageName -like "*YourPkgName* }
 if ($installedMsiObject) {
    try {
       $installedMsiObject.UnInstall() | Out-Null
    }
    catch {
       Write-Error "Error occurred: $_"
    }
 }

答案 1 :(得分:0)

将来包括您尝试过的所有代码,即使它不起作用!仅列出您尝试过的命令的名称并不是很有用,因为我们看不到您在做什么,因此必须猜测。因此,您有评论和不相关的答案。


现在您终于显示了您的代码(我已经编辑了您的答案以将其隐藏在注释中),我可以看到您只是在检查两个Uninstall关键位置之一

在64位操作系统(当今大多数计算机)上,有两个位置:

  • HKLM:\SOFTWARE\Microsoft [..]
  • HKLM:\SOFTWARE\Wow6432Node\Microsoft [..]

以下是有关如何在其中搜索firefox的示例:

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"

$app = Get-ChildItem -Path $RegPath | Get-ItemProperty | Where-Object {$_.DisplayName -match "firefox" }

然后您可以执行$app.QuietUninstallString$app.UninstallString-您可能无法同时使用两者,具体取决于应用程序。

答案 2 :(得分:0)

如果是msi安装程序(powershell 5.1),这应该可以工作。 Powershell 7不支持msi或程序提供程序。

get-package *softwarename* | uninstall-package

或者通过程序提供程序,您可能会看到卸载字符串,但是必须添加更多内容以进行静默卸载,例如“ / S”。

get-package *softwarename* | % { $_.metadata['uninstallstring'] } 

答案 3 :(得分:-1)

这是一篇旧文章,但请在此回复,以防其他人使用。我为此打了好几天...

除了上面引用的[2] HKLM注册表路径(一个用于32位注册表,另一个用于64位注册表)之外,您还需要查看 HKCU:\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall ,以查询“按用户”安装。 Chrome,MS Teams,Zoom,ReadyTalk Desktop等应用程序默认情况下以“每用户”身份安装。您不会在HKLM下找到安装程序/卸载程序信息。