使用 CNAME 时出现错误:“RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)”

使用 CNAME 时出现错误:“RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)”

运行Get-WmiObject Win32_ComputerSystem -ComputerName 'MyCnameRecord'出现错误:The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

然而,运行Get-WmiObject Win32_ComputerSystem -ComputerName 'ServerNameToWhichTheAboveCnameRefers'一切正常。

同样Get-WmiObject Win32_ComputerSystem -ComputerName 'IPOfServerWhichCnameAlsoCorrectlyResolvesTo'有效。

是否有人知道可能需要一些配置/安全设置才能允许通过 CNAME 记录对服务器进行 RPC 调用?我假设由于 IP 解析正确,并且可以通过 IP 工作,因此它应该可以通过 cname 记录工作;但显然不是。

背景

我们最近将 SQL Server 从物理群集迁移到独立 VM。我们为群集使用了 DNS 别名,在迁移到 VM 后我们保留了该别名,以尽量减少重新配置(即我们使用这种方法:https://www.mssqltips.com/sqlservertip/2663/using-friendly-names-for-sql-servers-via-dns/)。

迁移后,我们的一些监控软件在尝试查询数据库服务器的性能时开始出错。它通过 DNS 别名访问数据库服务器,而不是通过服务器名称(以前集群可以使用这种方式;但使用 DNS CNAME 记录时不再有效)。

上面的 PowerShell 代码只是一种演示底层问题的简化方法。

答案1

您是否查看过 LanmanServer 参数中的 OptionalNames 和 DisableStrictNameChecking?根据您的 Windows 版本,这些可能是问题所在。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

这在过去曾用于共享和打印,因此应该(可以)适用于其他 Win32 RPC 内容。

答案2

TheFiddlerWins 所描述的很可能是罪魁祸首。几个月前我处理过类似的问题,请参阅WMI 查询不能使用 FQDN 运行?

相关内容