Batch file 在jenkins中使用psexec.exe时,句柄无效

Batch file 在jenkins中使用psexec.exe时,句柄无效,batch-file,jenkins,psexec,Batch File,Jenkins,Psexec,我在Windows7系统上使用Jenkins。我想用它在远程Windows系统上执行批处理脚本。批处理脚本将用于闪存开发板并运行一些测试。我遇到了psexec.exe。这在命令提示符窗口中运行得很好——我可以连接并运行脚本,而不会出现任何问题,但当我尝试让Jenkins执行此操作时,我会得到以下输出: PsExec v2.11 - Execute processes remotely Copyright (C) 2001-2014 Mark Russinovich Sysinternals -

我在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“域\用户名”-p“密码”“C:\test.bat”

与用户名关联的用户在远程系统上具有管理员权限(ABCDEFG不是系统的真实名称)


有谁能帮我弄清楚为什么Jenkins不能做到?或者,有没有一种更简单/更好的方法通过Jenkins在远程Windows系统上执行批处理脚本?

对不起,我没有足够的声誉发表评论,但这是一个打字错误吗?自

句柄无效

可能意味着计算机地址无效。试一试

 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

编辑:在快速搜索后也可以找到与之相关的内容。

感谢您的帮助,特别是Technext,我有了一个解决方案

我需要运行“services.msc”,找到“Jenkins”,右键单击它,然后转到“Properties”。属性窗口出现后,我必须单击“停止”按钮停止Jenkins,打开“登录”选项卡,输入用户名和密码(我在命令提示符下运行时使用的用户名),然后再次启动Jenkins。摆脱了Jenkins中的“句柄无效”信息

更新:
更好的解决方案是进入我使用psexec.exe进入的系统,进入控制面板>用户帐户>允许其他用户访问此计算机。单击“添加…”并输入Jenkins用于运行其命令的用户名和域(要找到此项,请在浏览器窗口中打开Jenkins,转到“管理Jenkins”>“系统信息”并在“环境变量”下查找用户名和USERDOMAIN)。确保您授予它管理员权限。然后单击ok。现在psexec.exe不应该有“句柄无效”的问题。

检查一下远程机器的简单重启并不能解决问题。此外,添加参数-h和-accepteula可能会有所帮助。修改命令:


psexec.exe\\ABCDEFG-u“域\用户名”-p“密码”-h-accepteula“C:\test.bat”

如果您登录到生成服务器,是否能够成功调用上述Windows批处理命令?作为Jenkins实例运行的用户是否有权访问您试图访问的计算机?登录到运行Jenkins的Windows系统的用户有权访问远程系统(ABCDEFG)。他们可以从运行Jenkins的系统上的命令行成功运行该批处理命令,但如果让Jenkins执行该命令,该批处理命令将不起作用。这种行为是通过Jenkins一直发生还是有时成功?它总是发生。尽管Jenkins,但我从未见过它成功。我不能说我在Jenkins的经历遇到过这个问题,通常像这样的问题归结为运行Jenkins实例的用户的权限问题。对于使用
psexec
无效句柄
消息,存在一些建议性问题,这些问题似乎建议使用其他方法。我建议试试看你是否有更好的成功。带有txt文件的@tag不起作用。我得到了相同的“句柄无效”响应。运行jenkins的用户是否可以执行该命令,因为我遇到了一些问题,其中psexec与用户一起失败,即使
-u domain\user
是正确的。正如我现在看到的,运行jenkins的用户将自己作为用户执行
-u domain\user
。这是关于psexec首先尝试使用它运行的用户,然后使用给定的凭据进行尝试,但一开始失败并放弃,不记得确切的原因。就是这样。非常感谢分享你的答案!有一个非常类似的问题,运行Jenkins的服务帐户已经是远程计算机上本地管理员组的间接成员(通过另一个安全组),但是我有完全相同的错误。将Jenkins服务帐户直接添加到本地管理员组为我解决了问题。@headinabook您好,我不知道如何在windows server 2012 R2上找到“允许其他用户访问此计算机”,您能告诉我吗?