【问题标题】:Uninstall a product from powershell从 powershell 卸载产品
【发布时间】:2016-04-17 06:14:09
【问题描述】:

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

我试过了

msiexec /x {guid}

但我无法卸载该产品

我用的时候效果很好

Wmic product where identifyingnumber={guid} call uninstall

【问题讨论】:

  • 你放了产品指南吗?还是您按字面意思输入“guid”?
  • GUID 必须放在大括号中 (msiexec /x "{########-####-####-####-############}")。如果这没有帮助,您需要提供更多信息。你有错误吗?如果是这样,它说明了什么?您是否在启用日志记录的情况下运行命令 (/l*v logfile)?
  • 我也使用了带括号的确切 guid
  • 您能回答其余的 Ansgar Wiechers 问题吗?
  • 我刚得到一个弹出窗口,通常在错误地给出 msiexec 的参数时出现。我没有收到任何错误,除了

标签: powershell guid uninstallation


【解决方案1】:
$WMI = Get-WmiObject win32_product -Filter 'IdentifyingNumber = "{guid}"'
$WMI.Uninstall()

【讨论】:

    【解决方案2】:

    你需要引用参数。请注意,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 的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2021-11-27
      • 2020-06-23
      • 2011-02-16
      • 2022-12-15
      相关资源
      最近更新 更多