【问题标题】:How to run a PowerShell script as a job in Jenkins如何在 Jenkins 中将 PowerShell 脚本作为作业运行
【发布时间】:2012-05-14 05:43:43
【问题描述】:

这个问题听上去很简单,但是上网查了一下还是没弄明白。我基本上想在 Jenkins 中执行一个 PowerShell 脚本(例如 script.ps1)并报告成功/失败。

尝试 1:以“执行 Windows 批处理命令”的形式运行以下命令

powershell -File c:\scripts\script.ps1

这按预期启动,但几秒钟后退出。

尝试 2:以“执行 Windows 批处理命令”的形式运行以下命令

powershell -NoExit -File c:\scripts\script.ps1

这会成功运行整个脚本,但它永远不会停止。我不得不手动中止脚本。

【问题讨论】:

    标签: powershell jenkins powershell-2.0


    【解决方案1】:

    嗯,有一个PowerShell 插件,无论如何它都在包装外壳。我在我的服务器上使用它,以标准符号执行脚本:

    powershell -File test001.ps1
    

    它没有任何怪癖。

    【讨论】:

    • 酷,我尝试了插件,但无法让它运行 ps1 文件。但我从未尝试过上面的符号。会尝试这种方式,谢谢!
    • 我使用了以下:powershell -ExecutionPolicy Unrestricted -File file.ps1
    • 我也无法让插件正常工作,可能与执行策略或其他有关。不得不使用 powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File script.ps1 退回到标准命令行
    【解决方案2】:

    我发现问题归结为 PowerShell 分别管理 32 位和 64 位版本的执行策略。结帐http://www.gregorystrike.com/2011/01/27/how-to-tell-if-powershell-is-32-bit-or-64-bit/ 尝试启动两者。在两者中运行Get-ExecutionPolicy,你会发现它们是不同的。

    至少在 1.4 版中,插件似乎最终使用 32 位进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多