我在Windows7系统上使用Jenkins。我想用它来在远程Windows系统上执行批处理脚本。批处理脚本将用于刷新开发板并运行一些测试。我遇到了psexec.exe。这通过命令提示符窗口很好 - 我可以连接并运行脚本没有任何问题,但是当我尝试让Jenkins这样做时,我得到以下输出:
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
The handle is invalid.
Connecting to ABCDEFG...
Couldn't access ABCDEFG:
Connecting to ABCDEFG...
Build step 'Execute Windows batch command' marked build as failure
我在两种情况下使用的命令是: psexec.exe \\ ABCDEFG -u“DOMAIN \ username”-p“password”“C:\ test.bat”
与用户名相关联的用户在远程系统上具有管理员权限(ABCDEFG不是系统的真实名称)。
任何人都可以帮我弄明白为什么它不能通过Jenkins工作吗?或者,是否有更简单/更好的方法通过Jenkins在远程Windows系统上执行批处理脚本?
答案 0 :(得分:5)
感谢您的所有帮助,特别是Technext,我有一个解决方案。
我需要运行" services.msc",找到" Jenkins",右键单击它,然后转到"属性"。一旦属性窗口出现,我不得不点击"停止"按钮停止詹金斯,打开"登录"选项卡,输入我的用户名和密码(通过命令提示符运行时使用的用户名),然后再次启动Jenkins。摆脱"句柄无效"詹金斯的消息。
更新: 一个更好的解决方案是进入我使用psexec.exe进入的系统,进入控制面板>用户帐户>授予其他用户访问此计算机的权限。点击"添加..."并输入Jenkins用于运行其命令的用户名和域(要查找此信息,请在浏览器窗口中打开Jenkins,转到Manage Jenkins>系统信息并在环境变量下查找USERNAME和USERDOMAIN)。确保您授予管理员权限。然后单击确定。现在psexec.exe不应该有"句柄无效"问题。
答案 1 :(得分:0)
抱歉,我没有足够的评论声誉,但是单曲是错字吗?从那以后
句柄无效。
可能意味着计算机地址无效。尝试
psexec.exe \\ABCDEFG -u "DOMAIN\username" -p "password" "C:\test.bat"
注意两个反斜杠以访问本地映射的计算机。
否则如果不起作用,我推荐@ tag
psexec.exe @servername.txt -u "DOMAIN\username" -p "password" "C:\test.bat"
其中@ servername.txt是一个包含仅服务器名的文本文件,每行一个。 file参数处理\
的格式ex servername.txt
ABCDEFG
COMPUTER2
编辑:在一些快速谷歌搜索后也发现它可能与windows security有关。
答案 2 :(得分:0)
检查远程机器的简单重启并不能解决问题。此外,添加参数-h和-accepteula可能会有所帮助。修改后的命令:
psexec.exe \\ABCDEFG -u "DOMAIN\username" -p "password" -h -accepteula "C:\test.bat"