我们可以远程连接到不同虚拟网络的Azure VM

时间:2018-09-17 13:23:14

标签: powershell azure-virtual-machine azure-powershell azure-virtual-network

我有2个Azure VM,例如VM1VM2。我已通过RDP登录VM1。现在,我的要求是通过Powershell从VM2连接到VM1并远程运行一些命令。

当我运行以下命令时:

$UserName = "<IP>\username"
$Password = ConvertTo-SecureString "password@123" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)
$s = New-PSSession -ComputerName <IP> -Credential $psCred

出现以下错误:

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

我尝试了在互联网上找到的所有解决方案,但没有一个解决了我的问题。

两个VM的VirtualNetwork / Subnet不同,并且它们都没有公用IP和DNS名称(这是一项业务要求,不能更改)。所以我使用的是专用IP登录,两个VM的位置也不同。

这可能是原因吗?

1 个答案:

答案 0 :(得分:2)

首先,您应该通过虚拟网络面板上的Network Peering确认两个不同的虚拟网络连接正在正常工作。这是Demo

然后,您需要在与该子网关联的NSG的入站规则中打开端口5985。另外,临时关闭本地防火墙以运行以下脚本。或者,您可以使用以下命令添加传入规则,以允许端口5985上的流量:

New-NetFirewallRule -Name "winrm_http" -DisplayName "winrm_http" -Enabled True -Profile Any -Action Allow -Direction Inbound -LocalPort 5985 -Protocol TCP

在服务器上

在命令提示符中运行winrm quickconfig命令以分析和配置WinRM服务。运行Enable-PSRemoting -Force以将计算机配置为WinRM远程管理。您还可以通过运行netstat -a来检查端口5985是否正在侦听。

enter image description here

在客户端上

在命令提示符中运行winrm quickconfig命令以配置WinRM服务。将远程计算机的IP地址添加到远程PS客户端中的受信任主机。 Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 172.18.20.4

然后运行您的命令作为屏幕截图。

enter image description here

参考:Enable PowerShell Remoting

相关问题