我使用System Center Orchestrator来运行执行某些操作的PowerShell脚本。执行脚本的组件能够获取Write-Output
和Write-Host
的结果,但其他流将丢失。但我真的很喜欢其他可用的流,特别是标准错误流。
有没有办法设置stderr
到stdout
的重定向?
我知道你可以为执行2>&1
的单个命令执行此操作,但由于脚本有很多行,所以将它附加到脚本中的每一行都会很乏味。我可以在脚本中执行脚本,但这会导致一些其他问题。我的猜测是应该可以使用C#进行设置,但我不确定在这种情况下要查找什么。
答案 0 :(得分:0)
如果您通过powershell.exe
cmdlet并使用提供的start-process
参数将脚本包装到另一个-redirectstandarderror
调用中,则可以获取这些流。然后你的包装器脚本应解析所有流。
如果由于orchestrator设置了一些局部变量而无法调用嵌套的Powershell进程,则可以使用Write-Output $error
作为记录所有(最多$MaximumErrorCount
)个错误的方法进入标准输出。不完全是错误流,而是一个开始。如果您的$ErrorActionPreference
设置为" SilentlyContinue"还会填充此内容。