4

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

また、ビルドステップから明示的に設定しようとしましたが、何もしませんでした。

私は何が欠けていますか?

4

1 に答える 1

11

2時間以上髪を引っ張った後、問題はx86/x64でした!!!

結局のところ、Set-ExecutionPolicyx64 (デフォルト) の PowerShell は x86 設定に影響を与えません!

Jenkins は、Windows サービスから実行される 32 ビット プロセスであり、x86 PowerShell を実行します。

さらに、x86 PowerShell の Modules ディレクトリは の下%systemroot%\SysWow64\WindowsPowerShell\1.0\Modulesにあります。これも覚えておくべき重要な事実です。

于 2014-07-02T12:58:00.393 に答える