【问题标题】:PowerShell wants to prompt in TeamCityPowerShell 想要在 TeamCity 中提示
【发布时间】:2017-01-23 21:51:24
【问题描述】:

我正在运行 PowerShell 脚本作为 TeamCity 中的构建后步骤之一,并且有一次我试图创建一个空文件作为后续步骤的占位符。我开始的代码是:

New-Item $MyPathAndFileName -Force

这在我的 ISE 机器上运行良好。然而,在 TeamCity 中执行它会导致整个构建步骤(以及构建配置)失败,并出现以下构建日志条目:

Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.

然后我将附加到我的代码中以结束:

if((Test-Path $MyPathAndFileName) -ne 0)
    {Remove-Item $MyPathAndFileName -Force}
New-Item $$MyPathAndFileName -Force -Confirm:$false -ErrorAction SilentlyContinue -WarningAction SilentlyContinue -InformationAction SilentlyContinue

失败的总是 New-Item 行。

我的问题是我可以吗

a) 让 PowerShell 写出它试图显示的提示,以便我可以找出问题所在?,或者

b) 在没有提示的情况下创建新项目?

【问题讨论】:

  • 是否可能是teamcity运行的账号没有权限?
  • 我可以看到你的问题的重点,但同一脚本的其他部分和构建配置的实际编译步骤已经写入相关文件夹
  • 您是否尝试按照建议的here 添加-confirm:$false

标签: powershell teamcity


【解决方案1】:

在这种情况下,我们的 TeamCity 服务器上的一个代理运行的是旧版本的 PowerShell,并且期望 -Type 参数命名为“文件”。这适用于该行,但该代理在处理 zip 文件的后续脚本行中遇到了问题。

由于我们无法升级 PowerShell 版本,我们将临时解决方法设置为构建配置,代理要求来命名成功运行构建所需的特定代理。

不过,底线是 PowerShell 在 TeamCity 服务器上执行并试图提示用户的问题占了上风。将提示写入构建日志的方法将有助于智能故障查找。

感谢您的回复。

【讨论】:

    猜你喜欢
    • 2015-11-29
    • 1970-01-01
    • 2016-07-12
    • 2010-12-06
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多