我们可以远程连接到不同虚拟网络的 Azure VM
Can we connect to Azure VM remotely which is different Virtual Network
我有 2 个 Azure VM,比如 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
出现以下错误:
New-PSSession:[] 连接到远程服务器失败,出现以下错误消息:WinRM 无法完成操作。验证指定的计算机名称是否有效,是否可以通过网络访问该计算机,是否已启用 WinRM 服务的防火墙例外并允许从此计算机进行访问。默认情况下,public 配置文件的 WinRM 防火墙例外限制对同一本地子网内的远程计算机的访问。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。
我已经尝试了我在互联网上找到的所有解决方案,但 none 解决了我的问题。
两个 VM 的 VirtualNetwork/Subnet 不同,它们都没有 public IP 和 DNS 名称(这是业务要求,不能更改)。所以我使用私有 IP 来 login.Location 两个虚拟机也是不同的。
有没有可能是这个原因?
首先,您应该通过虚拟网络面板上的网络对等确认两个不同的虚拟网络连接正在工作。这是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 远程管理。您还可以通过 运行ning netstat -a
检查端口 5985 是否正在侦听。
在客户端上
运行命令提示符中的winrm quickconfig
命令配置WinRM服务。在远程 PS 的客户端中将远程机器的 IP 地址添加到受信任的主机中。 Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 172.18.20.4
然后运行你的命令截图。
我有 2 个 Azure VM,比如 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
出现以下错误:
New-PSSession:[] 连接到远程服务器失败,出现以下错误消息:WinRM 无法完成操作。验证指定的计算机名称是否有效,是否可以通过网络访问该计算机,是否已启用 WinRM 服务的防火墙例外并允许从此计算机进行访问。默认情况下,public 配置文件的 WinRM 防火墙例外限制对同一本地子网内的远程计算机的访问。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。
我已经尝试了我在互联网上找到的所有解决方案,但 none 解决了我的问题。
两个 VM 的 VirtualNetwork/Subnet 不同,它们都没有 public IP 和 DNS 名称(这是业务要求,不能更改)。所以我使用私有 IP 来 login.Location 两个虚拟机也是不同的。
有没有可能是这个原因?
首先,您应该通过虚拟网络面板上的网络对等确认两个不同的虚拟网络连接正在工作。这是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 远程管理。您还可以通过 运行ning netstat -a
检查端口 5985 是否正在侦听。
在客户端上
运行命令提示符中的winrm quickconfig
命令配置WinRM服务。在远程 PS 的客户端中将远程机器的 IP 地址添加到受信任的主机中。 Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 172.18.20.4
然后运行你的命令截图。