PowerShell不会返回运行可执行文件的错误

时间:2016-02-18 17:19:18

标签: powershell ssis executable

我遇到使用执行流程任务执行的PowerShell脚本的问题。可执行文件生成错误,需要将其返回给SSIS,从而导致程序包失败。

我的流程任务中的设置如下:

enter image description here

我的PowerShell代码尝试了一下。所以通常应该捕获(致命)错误。 Finally块将正确的退出代码返回给SSIS(这是有效的,如果我在两个块中放入1,则包失败)。

Try
{

    $program = "Y:\Program Files (x86)\VMMa\Process Add Txt\MP_Add_txt.exe"
    #edited lines to capture the error
    $e = Start-Process -FilePath "$program" -wait -passthru
    if ($e.exitcode -ne 0) {
    write-error "I failed with error $($e.exitcode)";
    $err1 = 1;
    }
    #end edit
}
Catch
{
    #Write-Host "Error in function";
    $err1 = 1;
}
Finally
#{Write-Output $err1 }
{
    if($err1 -eq 1)
    {
        ## - Custom Exit Code:
        [Environment]::Exit("1");
    }
    Else
    {
        #Write-Output $result;
        [Environment]::Exit("0");
    }
}

运行期间生成的错误:

enter image description here

SSIS将任务标记为成功。问题是我的PowerShell代码,我猜是因为最后的块正在运行。任何帮助将不胜感激!

enter image description here

0 个答案:

没有答案