从 powershell 卸载产品

Uninstall a product from powershell

如何使用产品的 GUID 卸载产品

我试过了

msiexec /x {guid}

但是我无法卸载该产品

当我使用

时它工作正常
Wmic product where identifyingnumber={guid} call uninstall
$WMI = Get-WmiObject win32_product -Filter 'IdentifyingNumber = "{guid}"'
$WMI.Uninstall()

你需要引用论点。请注意,PowerShell 使用大括号作为其语法的一部分(用于定义脚本块),因此将它们传递给本机命令确实......出乎意料的事情(从本机命令的角度来看):

PS Home:\> args {foo}
argv[0] = H:\Batches\args.cmd
argv[1] = -encodedCommand
argv[2] = ZgBvAG8A
argv[3] = -inputFormat
argv[4] = xml
argv[5] = -outputFormat
argv[6] = text

PowerShell 显然试图以一种不会中断的方式支持调用 powershell { statements }。并且在这个过程中导致大量意外输入到本机命令,这些命令恰好不是 PowerShell。

请注意,引用解决了这个问题:

PS Home:\> args '{foo}'
argv[0] = H:\Batches\args.cmd
argv[1] = {foo}

还有 提到的通过 WMI 的方法。