Powershell 使用VS Online Build Server/Release Management连接到Azure VM时出错

Powershell 使用VS Online Build Server/Release Management连接到Azure VM时出错,powershell,azure-devops,azure-virtual-machine,ms-release-management,Powershell,Azure Devops,Azure Virtual Machine,Ms Release Management,有时我认为我是唯一一个尝试使用此配置的人 使用Visual Studio Online作为生成控制器,使用RM Update 4作为发布管理器 在这一点上,构建本身运行良好,我正在努力编写一个部署脚本,RM将在构建完成后启动该脚本 我可以让脚本启动,但我在实际脚本中遇到了问题。对于初学者来说,脚本只是试图在Azure VM上创建一个目录,然后再转到更有用的东西,比如实际移动软件 起初我试过了 Enter-PSSession -ComputerName fecprocessing.cloudapp

有时我认为我是唯一一个尝试使用此配置的人

使用Visual Studio Online作为生成控制器,使用RM Update 4作为发布管理器

在这一点上,构建本身运行良好,我正在努力编写一个部署脚本,RM将在构建完成后启动该脚本

我可以让脚本启动,但我在实际脚本中遇到了问题。对于初学者来说,脚本只是试图在Azure VM上创建一个目录,然后再转到更有用的东西,比如实际移动软件

起初我试过了

Enter-PSSession -ComputerName fecprocessing.cloudapp.net –UseSSL
Invoke-Command fecprocessing.cloudapp.net {mkdir C:\data\}
这让我抓狂

连接到远程服务器thatserver.cloudapp.net失败,原因是 以下错误消息:目标上的服务器证书无效 计算机(thatserver.cloudapp.net:5986)存在以下错误:

SSL证书由未知的证书颁发机构签名

所以经过一些研究,我尝试了这个

$so = New-PSSessionOption-SkipCACheck:$true-SkipCNCheck:$true-SkipRevocationCheck:$true
Enter-PSSession-ComputerName thatserver.cloudapp.net-UseSSL-SessionOption$so
Invoke-Command thatserver.cloudapp.net {mkdirC:\data\}
这是返回的可怕

连接到远程服务器thatserver.cloudapp.net失败,原因是 以下错误消息:WinRM客户端无法处理该请求。 如果身份验证方案不同于Kerberos,或者 客户端计算机未加入域,则必须使用HTTPS传输 或者必须将目标计算机添加到TrustedHosts 配置设置。使用winrm.cmd配置TrustedHosts。注 TrustedHosts列表中的计算机可能未通过身份验证。 您可以通过运行以下命令来获取更多信息 命令:winrm help config。有关更多信息,请参阅
关于远程疑难解答帮助主题。您应该使用Azure的vNext模板。他们有内置的身份验证,您可以将Azure帐户与RM关联,使事情变得更简单

您还可以在VSO中使用内置的RM服务器,这样您就不必自己动手了


注意:您还必须将其中一个选项从true翻转为false。不记得属性的名称,但只有几个选项以及环境、组件和PS脚本。。。你需要向下滚动,这与身份验证有关。

你用了错误的方法。当您通过vNext发布模板执行PowerShell脚本时,它将在目标计算机上执行。您不需要乱搞
Enter PSSession
或担心凭据--您可以在“Execute PS/DSC Script”操作中输入所有这些信息


此外,您的#1解决方案与您遇到的问题无关:发布发生在构建完成之后。当您遇到此错误时,生成服务器不再参与。

我正在使用vNext模板。RM可以执行诸如启动和停止环境之类的操作,以便部件正确地进行身份验证。RM在启动无法进行身份验证的脚本后调用的是PowerShell脚本。我正在VSO中使用RM服务器。它链接到“https://***.vsrm.visualstudio.com:443/defaultcollection”在我的开发机器上运行的RM的唯一部分是客户端我添加了一个关于要翻转的附加位的注释。在我的一个屏幕截图中找不到它,但它位于Powershell执行属性上,为真/假。应该是假的。