Jenkins执行PowerShell脚本

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

附加信息:

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

 PS C:\> whoami nt authority\system PS C:\> Get-ExecutionPolicy RemoteSigned PS C:\> 

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

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

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

我错过了什么?

Solutions Collecting From Web of "Jenkins执行PowerShell脚本"

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

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

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

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