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的主要内容,如果未能解决你的问题,请参考以下文章

在虚拟机中运行的 Linux 上的 oprofile

VM中Panda_gbq导入错误(谷歌云平台虚拟机)

无法在 MS Azure 中的深度学习虚拟机 (DLVM) 上启动 jupyter notebook

在 java sdk 中配置虚拟机期间的 OS 磁盘类型支持

无法让 Azure 虚拟机为网站提供服务

如何通过Vagrant设置VM名称?