在PowerShell脚本中为整个脚本设置输出重定向?

时间:2017-05-03 09:34:14

标签: powershell

我使用System Center Orchestrator来运行执行某些操作的PowerShell脚本。执行脚本的组件能够获取Write-OutputWrite-Host的结果,但其他流将丢失。但我真的很喜欢其他可用的流,特别是标准错误流。

有没有办法设置stderrstdout的重定向?

我知道你可以为执行2>&1的单个命令执行此操作,但由于脚本有很多行,所以将它附加到脚本中的每一行都会很乏味。我可以在脚本中执行脚本,但这会导致一些其他问题。我的猜测是应该可以使用C#进行设置,但我不确定在这种情况下要查找什么。

1 个答案:

答案 0 :(得分:0)

如果您通过powershell.exe cmdlet并使用提供的start-process参数将脚本包装到另一个-redirectstandarderror调用中,则可以获取这些流。然后你的包装器脚本应解析所有流。

如果由于orchestrator设置了一些局部变量而无法调用嵌套的Powershell进程,则可以使用Write-Output $error作为记录所有(最多$MaximumErrorCount)个错误的方法进入标准输出。不完全是错误流,而是一个开始。如果您的$ErrorActionPreference设置为" SilentlyContinue"还会填充此内容。