如何使用 PowerShell 卸载 MSI 包?


要使用 PowerShell 卸载 MSI 包,我们需要产品代码,然后可以使用 msiexec 文件将产品代码与特定应用程序一起用于卸载。

可以使用 Get-PackageGet-WmiClass 方法检索产品代码。在此示例中,我们将卸载 7-zip 包。

$product = Get-WmiObject win32_product | `
where{$_.name -eq "7-Zip 19.00 (x64 edition)"}
$product.IdentifyingNumber

上述命令将检索产品代码。要使用 msiexec 卸载产品,请在产品 ID 中使用 /x 开关。以下命令将使用上述检索到的代码卸载 7-zip。

msiexec /x $product.IdentifyingNumber /quiet /noreboot

这是 cmd 命令,但在 PowerShell 中可以运行,但是我们无法控制此命令的执行。例如,在这之后执行的下一个命令将立即执行。要在卸载完成之前等待,可以在 PowerShell 中使用 -Wait 参数使用 Start-Process。

Start-Process "C:\Windows\System32\msiexec.exe" `
-ArgumentList "/x $($product.IdentifyingNumber) /quiet /noreboot" -Wait

要在远程计算机上运行相同命令,请使用 Invoke-Command。

Invoke-Command -ComputerName TestComp1, TestComp2 `
   -ScriptBlock {
      $product = Get-WmiObject win32_product | where{$_.name -eq "7-Zip 19.00 (x64 edition)"}
      $product.IdentifyingNumber
      Start-Process "C:\Windows\System32\msiexec.exe" `
      -ArgumentList "/x $($product.IdentifyingNumber) /quiet /noreboot" -Wait
   }

更新于:31-8-2021

24K+ 次浏览

开启你的职业生涯

完成课程即可获得认证

开始
广告