Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vNext发布模板的部署日志中获取powershell脚本输出?_Powershell_Release Management_Ms Release Management - Fatal编程技术网

如何在vNext发布模板的部署日志中获取powershell脚本输出?

如何在vNext发布模板的部署日志中获取powershell脚本输出?,powershell,release-management,ms-release-management,Powershell,Release Management,Ms Release Management,这篇博文是我发现的唯一一篇接近问题的文章,但它没有解释如何使用PS/DSC配置部署以使用verbose选项运行: 我可以获取此基于代理的发布模板来运行脚本: Write-Debug "debug" Write-Output "output" Write-Verbose "verbose" Write-Warning "warning" 此版本的深入部署日志提供了一个包含以下行的日志: output WARNING: warning 如果在Arguments字段中添加-verbose,那么日

这篇博文是我发现的唯一一篇接近问题的文章,但它没有解释如何使用PS/DSC配置部署以使用verbose选项运行:

我可以获取此基于代理的发布模板来运行脚本:

Write-Debug "debug"
Write-Output "output"
Write-Verbose "verbose"
Write-Warning "warning"
此版本的深入部署日志提供了一个包含以下行的日志:

output
WARNING: warning
如果在Arguments字段中添加-verbose,那么日志中还会出现一行“verbose:verbose”

这很好,但我需要访问系统变量($Stage、$BuildNumber等)。当我创建一个vNext模板来运行相同的脚本(说明如下:)时,日志报告:

Copying recursively from \\vsalm\Drops2\TestBuild\TestBuild_20130710.3 to c:\Windows\DtlDownloads\my vnext component succeeded.

很高兴这个复制操作成功了,但是我希望我的脚本的输出也在这个日志中。是否有人知道如何配置“使用PS/DSC部署”操作,以便版本管理捕获powershell脚本输出

对于vNext发布模板,如果希望在日志中看到powershell脚本输出,请尝试使用-Verbose开关编写Verbose


例如,
写详细的“一些文本”-详细的

请允许我无耻地插入关于这个主题的内容,因为我发现要得到一个能把所有事情都做好的脚本并不容易

以下脚本框架可确保在记录标准输出时不会出现空行,并且在出现第一个错误时停止处理,在这种情况下,错误详细信息和截至该点的标准输出都可以在MSRM中看到:

function Deploy()
{
    $ErrorActionPreference = "Stop"

    try
    {
        #
        # Deployment actions go here.
        #
    }
    catch
    {
        # Powershell tracks all Exceptions that occured so far in $Error
        Write-Output "$Error"

        # Signal failure to MSRM:
        $ErrorActionPreference = "Continue"
        Write-Error "Error: $Error"
    }
}

pushd $Global:ApplicationPath
Deploy | Out-String | Write-Verbose -Verbose
popd

这只是最终的结果,可以找到其背后的解释。

这是可行的,但我的发行版中有一个try/catch块,在这之后,没有更多的消息被写入,而该部分中的操作执行得很好。。。