我在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在远程Windows系统上执行批处理脚本?
感谢您的帮助,特别是Technext,我有一个解决方案.
我需要运行"services.msc",找到"Jenkins",右键单击它,然后转到"属性".一旦属性窗口出现,我不得不点击"停止"按钮停止Jenkins,打开"登录"选项卡,输入我的用户名和密码(我通过命令提示符运行时使用的用户名),然后再次启动Jenkins.这摆脱了詹金斯的"句柄无效"消息.
更新:更好的解决方案是进入我使用psexec.exe进入的系统,进入控制面板>用户帐户>让其他用户访问此计算机.单击"添加..."并输入Jenkins用于运行其命令的用户名和域(要查找此信息,请在浏览器窗口中打开Jenkins,转到Manage Jenkins> System Information并在Environment Variables下查找USERNAME和USERDOMAIN ).确保您授予管理员权限.然后单击确定.现在psexec.exe不应该有"句柄无效"问题.