使用WMI删除程序后的输出 - Powershell

时间:2018-06-08 13:29:24

标签: powershell

我正在使用WMI远程卸载软件,它可以正常移除软件。我正在努力的是使用它的结果(成功与否)给出一个简单的输出消息而不是命令的正常输出。我通常使用$ lastexitcode,但无论命令是否成功,它都会运行到我成功的卸载消息。这是我正在尝试使用的内容:

$app = Get-WmiObject Win32_Product -ComputerName "$computer" | where { $_.vendor -eq "APN, LLC" }
$app.Uninstall()
if ($lastexitcode -eq 0)
        {
        write-host -ForegroundColor Green "Programm Successfully Removed"
        }    
    else
        {
        write-host -ForegroundColor red "There was a problem uninstalling the program"
        }

当我在其上留下操作输出时返回:

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0
PSComputerName   :

我想我可以用ReturnValue做点什么,但我不知道怎么做。任何帮助将不胜感激。

编辑:解决方案归功于布鲁斯的回答:

$app = Get-WmiObject Win32_Product -ComputerName "$computer" | where { $_.vendor -eq "APN, LLC" }
$appuninstall = $app.Uninstall()
if ($appuninstall.returnvalue -eq 0)
        {
        write-host -ForegroundColor Green "Programm Successfully Removed"
        }    
    else
        {
        write-host -ForegroundColor red "There was a problem uninstalling the program"
        }

1 个答案:

答案 0 :(得分:2)

$LastExitCode仅在运行本机命令(外部.exes)时设置。在您的代码中,您希望在变量中捕获对Uninstall()的调用结果,然后在if语句中使用该对象的返回代码属性。