Jenkins调用Powershell脚本时报NativeCommandError

Posted by Kerwen Blog on July 7, 2020

在用Jenkins 调用一个powershell脚本时,输出的log里面有以下奇怪的error信息

1
2
+ CategoryInfo          : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

后来Google了一下,发现是Powershell本身的一个bug。我在Powershell脚本里面调用了PSEXEC这么一个exe,而PSEXEC在执行的过程中除了输出正常的log信息外,还会向STDERR里写信息。而Powershell在处理STDERR的时候抛出了异常,但这个异常其实并不影响脚本的正常运行,只是在log里面会有一堆恼人的error。 解决方案是在调用Powershell脚本时,将STDERR信息重定向到nul

1
powershell test.ps1 2>nul

这样修改其实是把所有的STDERR给屏蔽掉了,有一定的风险。

Reference1
Reference2
Reference3
Reference4