几天来,我一直在努力解决一些疯狂的问题,即从 Windows 10 通过 Hyper-V 管理器连接到我的 2012 R2 服务器。
设置:
- 客户端是运行 v1903 的 Windows 10 Pro 计算机
- 主机是运行 v9600 的 Hyper-V 2012 R2 机器
症状:
- Hyper-V 管理器能够成功连接到远程服务器,但在尝试加载虚拟机列表时显示“RPC”错误;所有其他功能均正常,包括创建新的虚拟机
- 此外,服务器管理器的所有功能均可运行,包括用于远程主机的 Windows PowerShell
以下是我目前所做的:
- 通过 Wins 10 客户端计算机上的 Windows 功能安装 Hyper-V 管理工具
- 从以下位置安装了适用于 Win 10 的 RSAThttps://www.microsoft.com/en-us/download/details.aspx?id=45520(尝试了所有三个版本)
- 按照本文概述的步骤进行操作:https://timothygruber.com/hyper-v-2/remotely-managing-hyper-v-server-in-a-workgroup-or-non-domain/
- 尝试更新防火墙以允许位于此处的 WMI:https://www.c-amie.co.uk/technical/rpc-server-unavailable-unable-to-establish-communication-between-and-when-connecting-to-hyper-v-2008-2008-r2-2012-2012-r2-from-hyper-v-manager-version-1709-2/
- 由于之前的修复不起作用,我们禁用了客户端和主机上的 Windows 防火墙;我们发现一个奇怪的问题,我们的路由器阻止了 WmiObject/RFC 调用,所以我通过连接到我的手机热点解决了这个问题;现在 Get-WmiObject 调用成功了
- 运行 WireShark 来验证流量是否流入和流出主机;流量似乎没有被阻止,因为我们看到 DCERPC 和 TCP 数据包分别流过 49152+ 和 135
- 按照本文启用“远程访问”:https://social.technet.microsoft.com/Forums/en-US/1b42bf4d-ce08-413d-8225-8117c92c67a5/enable-anonymous-logon-remote-access-in-component-services-using-command-prompt?forum=win10itpronetworking
- 运行“hvremote.swf /override /show /target:[FQDN OF HOST]”;除最终测试外,所有测试均通过:异步通知查询到 root\virtualization\v2 WMI 命名空间;我无法解决这个问题
- 我已将要连接的用户添加到主机上的“Hyper-V 管理员”组,并将登录信息添加到 Win 10 客户端上的凭据管理器
需要注意的一些重要事项: 我目前有另一台服务器运行 Windows 2016 v1607,并安装了 Hyper-V 管理器。这台服务器上的一切都运行正常,所以我也尝试在我的 Windows 10 客户端上镜像这台机器的设置。这让我相信主机上的一切都配置正确,因为我的 Win 2016 客户端能够毫无问题地连接和管理主机。我觉得我的 Windows 10 配置中缺少了一些东西,但同时,我觉得我几乎已经尝试了所有方法。我希望这里有一位专家可以给我一些启发。
如果我可以提供任何其他信息来帮助解决此问题,请告诉我。
提前致谢,马利克
答案1
解决方案已经找到!我不得不更深入地研究 RPC 连接。一旦我能够识别问题,这个问题就变得非常简单,而且有点愚蠢。我觉得自己在这个问题上花了 20 多个小时,这很愚蠢,但活到老学到老。:-)
一个词(或缩写),NAT。我的无线路由器有一个功能“端口扫描和 DoS 保护”,尽管两端的 Windows 防火墙都被禁用,但它显然无意中阻止了通过端口 135 的有效 RPC 调用。禁用此功能后,使用“HVRemote”的所有测试都通过了,包括我之前提到的错误:对 root\virtualization\v2 WMI 命名空间的异步通知查询。这解释了为什么我的异地 Win Server 2016 可以毫无问题地连接,但我的本地 Win 8.1 和 Win 10 客户端却无法连接。
我希望我的发现能够帮助其他遇到此问题的人,并节省他们数小时(或数天)的挫败感。
快速更新: 为了实现此功能,需要启用一些关键项。
主机必须能够访问客户端;如果您没有运行自己的 DNS,则可以通过在 Hyper-V 服务器上的 HOSTS 文件中创建条目来实现
如果您仍然遇到问题,在本地网络上为您的客户端分配一个静态 IP 并为该 IP 地址启用 DMZ 可能会有所帮助。