Jenkins execute PowerShell scripts

I’m trying to run PowerShell scripts from Jenkins, but it seems to completely ignore the execution policy! This happens either by executing powershell.exe directly, or using the PowerShell plugin

Additional information:

Jenkins is running as a Windows Service (using the Local System account, non-interactive). Connecting to that server, and checking execution policy is indeed RemoteSigned:

PS C:\> whoami
nt authority\system

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

However, when running a Jenkins build, this is not the case. Here’s the output of executing Get-ExecutionPolicy -List inside a build step:

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

I also tried setting it explicitly from the build step, nothing.

What am I missing?

  • Set up ruby globally for all users on ubuntu 14.04
  • Jenkins Version Number Format Substring
  • Create resusable jenkins pipeline script
  • Run Jenkins jobs on Linux under a User
  • Behave test runner has no colored output on Jenkins
  • Jenkins : poll-mailbox-trigger-plugin and SMTP
  • One Solution collect form web for “Jenkins execute PowerShell scripts”

    After more than two hours of pulling my hair, the problem was x86/x64!!!

    Turns out, Set-ExecutionPolicy of x64 (default) PowerShell has no effect on the x86 settings!

    Jenkins is a 32-bit process, running from a Windows service – it executes the x86 PowerShell!

    In addition, the Modules directory for x86 PowerShell is located under %systemroot%\SysWow64\WindowsPowerShell\1.0\Modules, another important fact to remember!

    Git Baby is a git and github fan, let's start git clone.