我有一个 Jenkins (1.493) 项目,它使用 Jenkins PowerShell 构建步骤来执行 PowerShell 脚本。在该脚本中,我想调用另一个存储在文件中的脚本。我现在已将其简化为以下内容:
Jenkins PowerShell 构建步骤中的脚本:
& "\\stemmer.local\sidevelopment\cvdev\devbase\jenkins\PowerShell\Test.ps1"
Test.ps1 的内容:
write-host 'Hello world!'
每当执行此 Jenkins 项目时,PowerShell 构建步骤都会无限期挂起。
到目前为止我已经尝试/验证的事情:
- 在调用之前添加一些输出
Test.ps1
向我表明 Jenkins PowerShell 脚本正在正常执行到Test.ps1
被调用的位置。 - 该文件
Test.ps1
存在并且可以从执行脚本的构建从站访问。如果我更改文件名,我会从 PowerShell 收到预期的错误消息... - 在第一个脚本中交换“for”不会改变任何东西。此外,使用点源而不是
&
没有帮助。 Test.ps1
可以使用 Jenkins PowerShell 脚本中使用的相同命令行从 powershell 本身正确执行该文件。- PowerShell 的执行策略已
unrestricted
在我的开发主机以及 Jenkins 构建从站上设置为。 - 我尝试用如下所示的 Windows 批处理命令构建步骤替换 PowerShell 构建步骤:
powershell.exe -InputFormat None -File "\\stemmer.local\sidevelopment\cvdev\devbase\jenkins\PowerShell\Test.ps1"
并使用 powershell.exe 的参数进行了一些操作,但结果是 - 在那些语法和其他方面正确的情况下据我所知 - 总是一样的。
我只发现很少提到听起来相似的问题,但其他地方提到的方法都没有帮助我解决这个问题。我非常困惑,想知道以前是否有人遇到过这个问题(甚至可能遇到过我想运行的场景)。
非常感谢您的任何意见!
Volker