运行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 运行?。