Jenkins/Psexec - 当我尝试在虚拟机上运行批处理文件时出现错误代码 1
Posted
技术标签:
【中文标题】Jenkins/Psexec - 当我尝试在虚拟机上运行批处理文件时出现错误代码 1【英文标题】:Jenkins/Psexec - Error code 1 when I try to run a batch file on a virtual machine 【发布时间】:2014-07-03 10:55:05 【问题描述】:"C:\Temp\PsTools\PsExec.exe" -accepteula -i \\ukvc-miu29-12 -u Domain\Username -p Password "C:\Testing1\testing.bat"
上面的代码是在Jenkins里面输入的:Build -> Execute Windows batch command部分。
`C:\Testing1\testing.bat 在 ukvc-miu29-12 上退出,错误代码为 1。
C:\Program Files (x86)\Jenkins\jobs\Run 比较脚本\workspace>exit 1 构建步骤“执行 Windows 批处理命令”将构建标记为失败 完成:失败`
基本上是尝试使用 Psexec 工具访问我的虚拟机上的批处理文件并在其中自行运行它。
感谢您的任何帮助,并会迅速回复任何建议,谢谢!
【问题讨论】:
【参考方案1】:我不熟悉那里的 -i 参数,但我认为您在这里缺少 -W
参数-
试试这个:
"C:\Temp\PsTools\PsExec -u USERNAME -p PASSWORD -w "C:\Testing1\testing.bat"
您可能会发现此链接很有用:http://ss64.com/nt/psexec.html
【讨论】:
试过了,还是报错1,我不知道为什么:( :( - 对不起,我希望我能帮助你 - 但是代码 1 是返回码,因为你的 psexec 失败了 - 所以我会尝试从命令行从你的 Jenkins 主机运行该脚本,看看会发生什么您看到的其他输出及其抱怨的内容...如果您有更多信息,请更新。 所以终于弄清楚了 PSEXEC 对我失败的原因(至少我是这么认为的,看看它如何给我一个 0 而不是 1),我没有完全说明批处理的路径我想运行的文件。以下似乎对我有用:"C:\Temp\PSTools\PsExec.exe" -accepteula \\ukvc-miu29-12 cmd /c "\\ukvc-miu29-12\c$\Jenkins\test.bat"
但是现在,虽然它似乎运行成功,但什么也没发生。 ://
好的,是的,正如猜测的 psexec 错误 :) - 这听起来像是进步 - 现在尝试检查 bat 文件,自行运行它,看看是否有任何机会没有从中输出任何内容或者吃掉 psexec 的输出......通常在批处理文件开头的“ECHO ON”应该给出一些输出......
因此,在远程机器上自行运行批处理文件。运行大约需要 20 秒。令人担忧的是,当我通过 cmd 运行批处理文件时,它会使用文本文件填充我的日志文件夹,但通过 Jenkins 这样做不会导致相同的行为。在我的批处理文件的开头添加 echo 只会输出批处理文件中的代码行(jenkins 似乎没有选择它)。可能与不等待导致什么都没有发生的响应有关。将使用不同的选项进行调查,看看添加它们中的任何一个是否会有所作为。以上是关于Jenkins/Psexec - 当我尝试在虚拟机上运行批处理文件时出现错误代码 1的主要内容,如果未能解决你的问题,请参考以下文章
无法在 MS Azure 中的深度学习虚拟机 (DLVM) 上启动 jupyter notebook