从PowerShell卸载产品

时间:2016-01-12 14:58:02

标签: powershell guid uninstall

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

我试过这个

msiexec /x {guid}

但我无法卸载产品

使用

时工作正常
Wmic product where identifyingnumber={guid} call uninstall

2 个答案:

答案 0 :(得分:8)

$WMI = Get-WmiObject win32_product -Filter 'IdentifyingNumber = "{guid}"'
$WMI.Uninstall()

答案 1 :(得分:3)

你需要引用这个论点。请注意,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}

还有Avshalom提到的通过WMI的方式。