目标计算机上的 PowerShell 在 TFS 2018 发布管道中失败

Posted

技术标签:

【中文标题】目标计算机上的 PowerShell 在 TFS 2018 发布管道中失败【英文标题】:PowerShell on Target Machines Fails in TFS 2018 Release Pipeline 【发布时间】:2020-08-18 15:14:27 【问题描述】:

我是 TFS2018 的新手,我正在尝试配置 CI/CD 管道。我的构建成功并且在我的发布管道中,我需要在我的部署服务器上运行 powershell 脚本,因此我在目标机器任务上使用了 RUN PowerShell。我想,正确提供了所有必需的信息并运行了发布,但在此任务中得到了如下错误

Connecting to remote server xxx.xxx.xx.xx failed with the following error message : The WinRM client cannot process the request. Default authentication may be used with an IP address under the following conditions: the transport is HTTPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more information on how to set TrustedHosts run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.

请在下面找到我的任务配置

我尝试将我的 TFS2018 服务器添加为目标服务器上的trustedHost,但问题仍然存在。请提出建议和帮助。

【问题讨论】:

你在目标机器上打开了WinRM端口吗? @Shayki Abramczyk - 我对此不太确定。我在 powershell 中尝试了命令 Configure-SMRemoting.exe -enable ,它显示 Server Manager Remoting is already enabled 。有意义吗? 根据升级消息`传输是 HTTPS 或目标在 TrustedHosts 列表中,并提供了明确的凭据。`不确定您的情况是否支持 Http。您是否尝试过使用 HTTPS 与目标机器进行通信。有关 HTTP 和 HTTPS 的 WinRM 配置的更多详细信息,请参考此链接:docs.microsoft.com/en-us/azure/devops/pipelines/apps/cd/… 【参考方案1】:

    通过powershell将TFS服务器机器添加到Target机器中的TrustedHost。Set-Item WSMan:localhost\client\trustedhosts -value ServerDC

    确保在此任务中提供的凭据是管理员角色,同时在这种情况下他们可以访问 TFS。如果提供的凭据没有 TFS 管理员特权,则任务无法调用代理来触发 VisualStudioRemoteDeployer

【讨论】:

【参考方案2】:

这就是所谓的 PowerShell 的双跳问题,通常这意味着您尝试使用与运行用户的凭据不同的凭据登录到远程计算机。那么在您的情况下, $(adminUserName) 与代理相同吗?如果不是,那么您可以尝试将该用户更改为与代理相同。如果没有,那么您需要做更多的事情,然后将机器添加到trustedHost。在 SPN 上观看此视频,它可能对 https://www.youtube.com/watch?v=yFgdPcLOs-g 有所帮助,这里是关于双跳问题的详细说明 https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ps-remoting-second-hop?view=powershell-7

【讨论】:

以上是关于目标计算机上的 PowerShell 在 TFS 2018 发布管道中失败的主要内容,如果未能解决你的问题,请参考以下文章

目标机器上的 TFS2015 Powershell

您的代理计算机上未安装 SQL Powershell 模块。请按照以下步骤执行此任务

目标机器上的 PowerShell -TFS 任务,在远程服务器中更改执行策略后安全警告仍然存在

Powershell在远程计算机上使用命令行参数执行远程exe

通过 Powershell 远程 TFS 签入

powershell 脚本在 100 台计算机上重新启动服务