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

Powershell 我们可以远程连接到不同虚拟网络的Azure VM吗,powershell,azure-virtual-machine,azure-powershell,azure-virtual-network,Powershell,Azure Virtual Machine,Azure Powershell,Azure Virtual Network,我有两个Azure虚拟机,比如VM1和VM2。我已通过RDP登录VM1。现在,我的要求是通过powershell从VM1连接到VM2,并远程运行一些命令 当我运行以下命令时: $UserName = "<IP>\username" $Password = ConvertTo-SecureString "password@123" -AsPlainText -Force $psCred = New-Object System.Management.Automation.PSCreden

我有两个Azure虚拟机,比如VM1和VM2。我已通过RDP登录VM1。现在,我的要求是通过powershell从VM1连接到VM2,并远程运行一些命令

当我运行以下命令时:

$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
它给出了以下错误:

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

我在网上找到的所有解决办法都试过了,但没有一个能解决我的问题

两个虚拟机的虚拟网络/子网不同,它们都没有公共IP和DNS名称,这是业务要求,无法更改。所以我使用私有IP登录。两个虚拟机的位置也不同


这可能是原因吗?

首先,您应该通过虚拟网络面板上的网络对等来确认两个不同的虚拟网络连接是否正常工作。这是

然后,您需要打开与该子网关联的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-强制启用机器配置为进行WinRM远程管理。您还可以通过运行netstat-a检查端口5985是否正在侦听

客户

在命令提示符下运行winrm quickconfig命令以配置winrm服务。将远程计算机的IP地址添加到远程PS客户端中的受信任主机。设置项-路径WSMan:\localhost\client\TrustedHosts-值172.18.20.4

然后将命令作为屏幕截图运行


Ref:

请确认一下。这两个虚拟机位于不同的子网或vnet?@NancyXiong MSFT不同的vnet以及不同的子网如果这有帮助,您可以接受它,或者如果您需要更多信息,请告诉我。谢谢回复。我按照上面链接中给出的步骤进行全局VNet对等。在第五步,当我从一台机器ping到另一台机器时,它说请求超时。你能尝试用它的私有ip从vm1 rdp到vm2吗?另外,请检查是否在两个VNET中都启用了对等。不,我无法从一个VM到另一个VM进行RDP。是的,我在两个Vnets中都启用了对等。如果是对等状态,它应该是连接的。并且,在VM上本地关闭防火墙,仍然是相同的错误吗?