詹金斯为什么不能找到PsExec?

时间:2014-01-16 22:04:22

标签: jenkins psexec

我遇到了“执行Windows批处理命令”构建步骤无法找到PsExec的问题。 为了帮助缩小问题范围,我使用以下构建步骤创建了一个测试项目: enter image description here

C:\Windows\System32\PsExec /?
PsExec /?
C:\users\admin\Desktop\PsExec /?

以下是结果: Results of the jenkin's project

Building in workspace C:\SoveraHIMDEV-10.2.1
[SoveraHIMDEV-10.2.1] $ cmd /c call C:\Users\admin\AppData\Local\Temp\hudson9054484821341580808.bat

C:\SoveraHIMDEV-10.2.1>C:\Windows\System32\PsExec /? 
'C:\Windows\System32\PsExec' is not recognized as an internal or external command,
operable program or batch file.

C:\SoveraHIMDEV-10.2.1>PsExec /? 
'PsExec' is not recognized as an internal or external command,
operable program or batch file.

C:\SoveraHIMDEV-10.2.1>C:\users\admin\Desktop\PsExec /? 

PsExec v2.0 - Execute processes remotely
Copyright (C) 2001-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec executes a program on a remote system, where remotely executed console
applications execute interactively.

如您所见,它从绝对路径运行到桌面,但仅在使用'PsExec'或'C:\ Windows \ System32 \ PsExec'时才会运行。但是,所有这三个示例都是从命令行正确执行的。

我已将PsExec可执行文件添加到Jenkins机器的C:\ Windows \ System32文件夹中。 PsExec在执行'PsExec /?'时有效从命令行,Jenkins在其路径配置中显示“C:\ Windows \ System32”。

的java.library.path:

C:\Program Files (x86)\Jenkins\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\app\admin\product\11.1.0\client_1\bin;C:\Program Files (x86)\Windows Resource Kits\Tools\;C:\apache-maven-3.1.1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd;.

环境路径:

C:\app\admin\product\11.1.0\client_1\bin;C:\Program Files (x86)\Windows Resource Kits\Tools\;C:\apache-maven-3.1.1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd

我可以从'C:\ Windows \ System32'

运行其他可执行文件

我错过了什么阻止詹金斯找到PsExec?

1 个答案:

答案 0 :(得分:2)

这可能是file system virtualization的问题。 将文件复制到C:\Windows\System32时,它可能只对您可见,而不是Jenkins。请将其复制到SysWOW64文件夹。