Jenkins执行PowerShell脚本

时间:2014-07-02 11:20:00

标签: windows powershell jenkins jenkins-plugins executionpolicy

我试图从Jenkins运行PowerShell脚本,但它似乎完全忽略了执行策略!这可以通过直接执行powershell.exe或使用PowerShell plugin

来实现

其他信息:

Jenkins作为Windows服务运行(使用本地系统帐户,非交互式)。确实连接到该服务器并检查执行策略RemoteSigned

PS C:\> whoami
nt authority\system

PS C:\> Get-ExecutionPolicy
RemoteSigned
PS C:\>

但是,在运行Jenkins构建时,情况并非如此。这是在构建步骤中执行Get-ExecutionPolicy -List的输出:

d:\workspace\test-job>powershell Get-ExecutionPolicy -list 
  Scope                         ExecutionPolicy
  -----                         ---------------
  MachinePolicy                 Undefined
  UserPolicy                    Undefined
  Process                       Undefined
  CurrentUser                   Undefined
  LocalMachine                  Undefined

我也尝试过从构建步骤中明确设置它,没有。

我错过了什么?

1 个答案:

答案 0 :(得分:10)

经过两个多小时拉头发,问题是x86 / x64 !!!

原来,Set-ExecutionPolicy的x64(默认)PowerShell对x86设置没有影响!

Jenkins是一个32位进程,从Windows服务运行 - 它执行x86 PowerShell!

此外,x86 PowerShell的Modules目录位于%systemroot%\SysWow64\WindowsPowerShell\1.0\Modules下,这是另一个需要记住的重要事实!