一尘不染

Jenkins执行PowerShell脚本

jenkins

我正在尝试从Jenkins运行PowerShell脚本,但是它似乎完全忽略了执行策略!通过直接执行powershell.exe或使用PowerShell插件来实现

附加信息:

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

我还尝试从构建步骤明确设置它,什么也没有。

我想念什么?


阅读 351

收藏
2020-07-25

共1个答案

一尘不染

经过两个多小时的梳理,问题出在x86 / x64上!!!

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

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

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

2020-07-25