繁体   English   中英

TFS构建Visual Studio测试代理部署任务时发生PowerShell远程处理错误

[英]PowerShell Remoting error with TFS build Visual Studio Test Agent Deployment task

我正在将自动UI功能测试集成到非XAML TFS构建中。

我的构建定义指定了以下构建步骤:-获取源-NuGet安装程序-MSBuild-Windows计算机文件副本-Visual Studio测试代理部署-运行功能测试

前四个步骤成功完成。 步骤4(Windows机器文件复制)将测试项目应用程序文件夹的内容从构建服务器复制到托管测试代理的另一个远程VM。 目的是在构建服务器上完成构建(按当前设置),然后将测试项目复制到测试代理服务器,部署测试代理并在测试VM上运行功能测试。

我遇到了第5步(Visual Studio测试代理部署)的问题; 返回了以下错误:

发生在“ [服务器名称]:5986”上的错误。 详细信息:'连接到远程服务器[server_name]失败,并显示以下错误消息:客户端无法连接到请求中指定的目标。 验证目标上的服务正在运行并且正在接受请求。 有关在目标(通常是IIS或WinRM)上运行的WS-Management服务的信息,请查阅日志和文档。 如果目标是WinRM服务,请在目标上运行以下命令以分析和配置WinRM服务:“ winrm quickconfig”。 有关更多信息,请参见about_Remote_Troubleshooting帮助主题。 有关故障排除,请参阅https://aka.ms/remotevstest

我对这个错误的研究表明,问题与PowerShell Remoting关联,而不是TFS构建(TFS构建任务包装了要在远程VM上执行的PowerShell命令)。

我已经根据错误消息建议检查并仔细检查了目标(测试代理)服务器上的WinRM服务; WinRM服务已打开并且已配置为接受请求。 我还按照建议运行了“ winrm quickconfig”命令。 问题仍然存在。

我们的服务器在同一域中。 我对测试代理(远程)VM具有管理特权,但是无法访问构建(本地)VM。

我已经为这个问题苦苦挣扎了一段时间。 我非常感谢任何有助于解决问题的见解。

感谢您的光临。

更新:

您好安迪,感谢您的查找和回答。

我按照您的建议执行了以下步骤:

在提供的链接Windows 8.1和Windows Server 2012 R2上,我发现“重要的更新已被更新2919355取代。” 选中我的测试代理框后,已安装更新2919355。

“ Enter-PSSession localhost” cmdlet返回错误:“连接到远程服务器localhost失败,并显示以下错误消息:WinRM客户端向HTTP服务器发送了一个请求,并得到响应,指示所请求的HTTP URL不可用。这是通常由不支持WS-Management协议的HTTP服务器返回...”

然后,我按照建议执行了“ Enable-PSRemoting”,并确认“是”以执行每个操作。 此后,再次执行“ Enter-PSSession localhost”将返回与以前相同的错误。

最后,我再次尝试了“ Enable-PSRemoting -Force”; 返回:“ WinRM已设置为在此计算机上接收请求。WinRM已设置为用于此计算机上的远程管理。”

进一步尝试在服务器上远程执行PS1脚本将返回原始错误。

我的测试代理服务器正在运行Windows Server 2012 R2,我正在使用PowerShell版本4.0。

根据错误消息,这是由于WinRM配置中存在问题。

确保已在构建代理程序目标计算机上启用了PSRemoting,运行命令Enable-PSRemoting -Force

请尝试以下操作以缩小问题范围:

  • 这可能与Windows 8.1和Windows Server 2012 R2软件包KB2883200有关。 因此,在这种情况下,您可以检查是否已安装修补程序KB2883200 ,如果不只是下载并安装该修补程序,则可以再试一次(您可能需要在重启虚拟机之后
    安装KB)。
  • 检查是否已在测试代理VM上启用PSRemoting

    1. 远程到VM,以管理员身份运行PowerShell,运行命令:

      Enter-PSSession localhost

    2. 如果失败,那么您需要通过运行以下命令来启用PSRemoting:

      Enable-PSRemoting

    3. 如果这不起作用或表明已设置,请尝试运行以下命令:

      Enable-PSRemoting -Force

此外,您可以参考以下有关手动配置WinRM服务的文章:

如何在远程计算机上运行PowerShell命令

好的,正如我之前在原始帖子的更新中指出的那样,我已经(反复)用完了安迪和其他地方提供的建议。

即使执行'Enable-PSRemoting -Force'cmdlet返回“在测试代理服务器的管理控制台中,WinRM已经设置为在此计算机上接收请求。WinRM已经设置为在此计算机上进行远程管理。” ,(在“ Local Computer Policy\\Computer Configuration\\Administrative Templates\\Windows Components\\Windows Remote Management (WinRM)\\WinRM Service\\ ),设置“ Allow remote server management through WinRM ”被标记为“ Not configured ”。

我将此更新为“已启用 ”。

然后,我在Windows防火墙中创建了一个新的入站规则(在更新上面的WinRM服务配置时提示),配置为允许安全连接,并通过默认的TCP端口5985添加我指定的构建服务器。

这样就解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM