2014-07-22 37 views
1

我想使用Jenkins PowerShell插件运行PowerShell脚本并且脚本产生以下错误:
“错误:目标系统必须运行32位操作系统“Jenkins PowerShell插件无法执行脚本 - “错误:目标系统必须运行32位操作系统”

从属服务器在Windows 2008 R2服务器上运行,脚本在本地和远程从我的Windows 7/x64桌面运行良好,但不会通过插件运行。
我也尝试使用Windows批处理命令插件来运行它,并且这也行不通 - 同样的错误消息。
我缩小了问题,并发现产生错误的行:

$results = openfiles /query /fo csv | Select-String $versionPath 

它看起来像openFiles散命令导致的问题,我认为这是因为詹金斯开始PowerShell的x86版本,但我不知道需要做些什么才能在正确的CPU架构上运行。

任何帮助将不胜感激。

+0

'C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ 1.0 \ powershell.exe - > x64' 'C:\ WINDOWS \ Syswow64资料\ WindowsPowerShell \ 1.0 \ powershell.exe - > x32' 尝试盯着第二个 – Naigel

+0

我试过两种。看起来Jenkins在运行PowerShell插件时转到x86版本的PowerShell,在运行Windows批量插件时转到x86版本的CMD。如果我直接从CMD的x86版本调用脚本,我会得到相同的错误消息。 – NoamSTMS

回答

2

像我以为,詹金斯正在使用CMD和PowerShell的x86版本运行作业。 为了让他们使用他们的x64版本运行,我必须使用x64版本的Java运行slave。

以下解决方案来得很晚,但是这是去的最佳途径:

  1. 确保您没有安装在服务器上的任何一个Java版本的x86。如果你安装了32位Java版本,Jenkins奴隶将使用这些版本来运行你的工作。 x64版本的Java可以下载here
  2. 在您的服务器上启动Internet Explorer的x64版本,并转到Jenkins的'管理节点'页面以将奴隶安装到您的服务器上。
  3. 最后 - 将从站安装为Windows服务。
相关问题