PowerShell:远程命令执行和写入StdErr。如何避免错误信息?

时间:2011-08-11 15:22:29

标签: powershell error-handling powershell-remoting

PowerShell代码段:

$session = New-PSSession -ComputerName 'ALPHA' -Credential $cred
Invoke-Command -Session $session -ScriptBlock {
  cmd /c C:\Python27\python.exe test.py 
}

test.py python脚本将一些输出写入StdError,我相信这就是为什么会出现以下错误消息(红色):

WARNING:root:warning
    + CategoryInfo          : NotSpecified: (WARNING:root:warning:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

问题:如何防止显示此错误消息?实际上,应显示消息WARNING:root:warning,但不应显示NativeCommandError

将脚本输出重定向到$null对我不起作用,因为脚本输出显示。

cmd /c C:\Python27\python.exe test.py 2>&1之类的内容无效,错误仍会显示

我目前唯一能想到的解决方案 - 将输出重定向到文件,删除这些错误行,然后将过滤后的文件内容打印到控制台。但是这个解决方案有点疯狂,我相信应该有另一种“理智”的解决方案。

由于

1 个答案:

答案 0 :(得分:0)

我当前的解决方案:修改Python代码,使其将邮件写入StdOut而不是StdErr。值得庆幸的是,在我的情况下,这可以在不修改库代码的情况下完成(嘿,那是Python,它是动态的,因此极易扩展)。