首页 > 解决方案 > 来自 VSTS 管道的 PowerShell 远程

问题描述

我想在我的虚拟机上远程调用 PowerShell 命令。我在管道中添加了“在目标机器上运行 PowerShell”任务。我提供了:我的远程虚拟机的 IP、用户名和密码。这是我得到的错误:

无法创建 pssession。错误:'连接到远程服务器失败并显示以下错误消息:WinRM 无法完成操作。验证指定的计算机名称是否有效,该计算机可通过网络访问,并且 WinRM 服务的防火墙例外已启用并允许从该计算机进行访问。默认情况下,公共配置文件的 WinRM 防火墙例外限制对同一本地子网中的远程计算机的访问。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。

在我的远程虚拟机上,我做了:

Enable-PSRemoting
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

这些命令在这里提到:https ://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_troubleshooting?view=powershell-6

我还可以做些什么?

标签: azurepowershellazure-devopsazure-pipelines

解决方案


要通过 Windows 机器 WinRM 在目标机器任务上运行 PowerShell 脚本,您需要先在目标机器中配置 WinRM。有两种协议适合您:HTTP 和 HTTPS。HTTPS 更安全,值得推荐。如果使用 HTTPS,则需要在防火墙中打开 5986 端口并安装自签名证书。您可以按照PowerShell on Target Machines 任务中的步骤进行操作。

对于评论中的问题,您可以在测试证书中找到描述,我认为原因是您使用了您创建的自我证书。


推荐阅读