PowerShell远程误差TFS生成Visual Studio的测试代理部署任务(PowerShe

2019-11-05 00:28发布

我正在整合的自动化UI功能测试到非XAML TFS构建。

我的构建定义指定以下构建步骤: - 获取资源 - 的NuGet安装程序 - 的MSBuild - Windows机器上的文件复制 - Visual Studio的测试代理部署 - 运行功能测试

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

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

发生在 '错误'[服务器]:5986' 。 细节:“连接到远程服务器[服务器]用下面的错误消息失败:客户端无法连接到在请求中指定的目的地。 验证目标上的服务正在运行且正在接受请求。 咨询日志和文件上的目标运行WS-Management服务,最常见的IIS或WinRM的。 如果目标是WinRM服务,在目标上运行以下命令来分析和配置WinRM服务:“WinRM的quickconfig”。 欲了解更多信息,请参阅about_Remote_Troubleshooting帮助主题。“。 对于故障排除,请参阅https://aka.ms/remotevstest 。

我研究这个错误表明问题与PowerShell远程相关,而不是TFS版本(TFS的建设任务包要在远程虚拟机执行的PowerShell命令)。

我已经确认并反复检查目标(测试剂)WinRM服务服务器按照错误消息的建议; WinRM服务上,并配置为接受请求。 我也运行了“WinRM的quickconfig”命令,按建议。 不过问题依然存在。

我们的服务器是在同一个域。 我对测试剂(远程)VM,但给build(本地)VM没有获得管理权限。

我一直在努力与这个问题有一段时间了; 我倒是很欣赏,可能有助于解决任何见解。

感谢您寻找。

更新:

嗨安迪,感谢寻找和回答。

我遵循的步骤,按您的建议:

以下你提供的链接时,Windows 8.1和Windows Server 2012 R2,我发现,“重要说明:此更新已被更新2919355取代。” 检查过我的测试剂盒,更新2919355已安装完毕。

“输入-PSSession将本地主机” cmdlet返回的错误:“连接到远程服务器本地主机与以下错误消息失败:WinRM的客户端发送一个HTTP服务器的请求,并得到了回应称该请求的HTTP URL不可用这个。通常由不支持WS-Management协议HTTP服务器返回的......”

然后我执行“启用,PSRemoting”按照建议,并确认“是”执行每个动作。 在此之后,“输入-PSSession将本地主机”的另一执行返回相同的错误了。

最后,我再次尝试“启用,PSRemoting -Force”; 这回:“WinRM的已经被设置为接收这台计算机上的WinRM的请求已经被设置为这台计算机上远程管理。”

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

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

Answer 1:

根据错误信息,这是由于在WinRM配置的问题。

请确保您已启用您的构建代理目标机 PSRemoting,运行命令Enable-PSRemoting -Force

请尝试以下的东西缩小问题的范围:

  • 这可能涉及到包KB2883200的是Windows 8.1和Windows Server 2012 R2 。 所以,在这种情况下,你可以检查您是否安装了补丁KB2883200 ,如果不只是下载并安装它,然后再试一次(您可能需要后,重新启动虚拟机
    安装KB)。
  • 检查您是否已经启用了PSRemoting的测试代理VM:

    1. 远程的虚拟机,以管理员身份运行命令运行PowerShell的:

      Enter-PSSession localhost

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

      Enable-PSRemoting

    3. 如果这不起作用,或者说,它已经建立,然后尝试运行下面的命令:

      Enable-PSRemoting -Force

此外,你可以参考下面的文章手动配置WinRM服务:

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



Answer 2:

好吧,我刚才在我的更新指示给原来的职位,我已经用尽了(多次),安迪和其他地方上面提供的建议。

尽管“启用,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 ”。

我更新了这个为“Enabled”。

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

这解决了这个问题。



文章来源: PowerShell Remoting error with TFS build Visual Studio Test Agent Deployment task