Windows如果 DC 的计算机名称包含大写字母,DNS 将注册 DC 的重复 SRV 记录
12/07/2020
本文内容
本文帮助修复了Windows DNS 在域控制器的 SRV (SRV) 记录中注册重复服务器位置(如果其计算机名称包含大写字母)的问题。
适用于: WindowsServer 2019、Windows Server 2016
原始 KB 编号: 4496901
症状
在使用 AD DS 集成 DNS Windows的部署中, (一个或多个基于 Windows Server 2019 或基于 Windows Server 2016 的域控制器) 域控制器。 至少有一个 DCS 的计算机名称包含大写字符。
在这种情况下,你会注意到域的 DNS 记录包括其计算机名称中具有大写字符 (SRV) 记录中的重复服务器位置。 一条记录在所有小写字符的 RDATA 中包含计算机名称,另一条记录在 RDATA 中包含计算机名称,大小写与计算机名称相同。
原因
发生此行为的原因是,Windows服务器 DNS 功能管理 SRV 记录的 RDATA 段方式发生变化。 在 Windows Server 2012 R2 和早期版本中,RDATA 段仅包含小写字母。 如果计算机名称包含大写字母,DNS 功能会将其转换为小写形式。 但是,dns Windows Server 2016 (或更高版本) 接受大写和小写字母。
当 DNS 服务器检查计算机名称是否已具有关联的 SRV 记录时,它不会在发生更改时进行说明。 因此,它将 winserv16.contoso.com 和 WinServ16.contoso.com 考虑为不同的地址。
因此,如果使用以下配置,您可能会看到意外影响:
域中的所有 DNS 服务器和 DC 都从 Windows Server 2012 R2 (或早期版本) 升级到 Windows Server 2016 (或更高版本) 。 DNS 数据库可能会为计算机名称中具有大写字符的任何 DC 生成额外的 SRV 记录。
域中的所有 DNS 服务器和 DC 都运行Windows Server 2012或更早版本。 在成员服务器上安装 DNS 服务器角色Windows Server 2016,然后将该成员服务器提升为同一域中的 DC。 如果 Windows Server 2016 DC 的计算机名称中具有大写字符,则 DNS 中将具有额外的 SRV 记录。
您的域包含运行各种版本的 Windows Server 的 DCS 和 DNS 服务器。 主 DNS 服务器是运行 Windows Server 2012 或更早版本,辅助 DNS 服务器是 Windows Server 2016 DC。 主 DNS 服务器变得不可用,并且您将 Windows Server 2016 DC 更改为新的主 DNS 服务器。 进行此更改后,DNS 数据库可能会为计算机名称中具有大写字符的任何 DC 生成额外的 SRV 记录。
解决方案
Microsoft 已发布可缓解此问题的更新。 下表列出了受影响版本更新的相关版本Windows。
此更新在 NETLOGON 中引入了新的组策略设置。ADMX 文件,如下表所述。
策略名称
注册域控制器 SRV 记录时使用小写 DNS 主机名
策略路径
计算机配置 \ 策略 \ 管理模板 \ 系统\Net 登录 \ DC 定位器 DNS 记录\
策略值
1 (默认值) 。 已启用此策略。 该策略会清除重复的 DNS SRV 记录。 在 DC 上安装更新时,这将成为该 DC 的默认本地配置的一部分。
0。禁用该策略。 在此设置下,有问题的行为将继续,并且计算机名称包含大写字符的 DC 将继续注册包含这些大写字符的 SRV 记录。 值 0 仅支持紧急或测试使用。 它不应在典型条件下使用。 如果未配置策略或缺少值,DC 将恢复为新的默认本地配置,并且将策略视为已启用。
更新将添加与此策略关联的以下注册表项。 (提供此信息仅供参考。)
注册表子项: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Netlogon\Parameters
注册表项:DnsSrvRecordUseLowerCaseHostNames
数据类型:REG_DWORD
安装更新后
备注
安装更新、手动清理记录或禁用策略时,无需重新启动或禁用 Netlogon 服务。 安装更新后,无需重新启动计算机。
当您安装更新 (或在禁用) 的环境中启用策略时,Netlogon 服务会尽力删除包含大写字符的现有 DNS 记录。
我们建议你安装此修补程序 (或启用策略) ,然后等待一两天,以允许 Netlogon 获取和应用新设置。 然后,等待足够长的时间,以便在整个环境中复制更改。 此后,检查所有剩余重复项的 DNS 记录。 策略可能会丢失一些重复记录。 在这种情况下,您必须手动删除这些记录。
可以使用以下命令Windows PowerShell记录:
Get-DnsServerResourceRecord -ZoneName "contoso.com" -RRType Srv
备注
在此命令中 contoso.com , 是占位符域名。
若要删除剩余的重复记录,请运行以下 PowerShell 命令:
Remove-DnsServerResourceRecord -ZoneName "contoso.com" -RRType Srv -Name "" -RecordData ""
禁用策略不需要任何清理。
重要
Microsoft 发布了一个更新,以解决此问题并防止其定期发生。 建议您安装更新,而不是解决该问题。
解决方法 1:防止重复的 SRV 记录
您可以使用以下方法防止 DNS Windows创建重复的 SRV 记录:
在将成员服务器升级到 DC 或将 DC 升级到 Windows Server 2016 或更高版本之前,请确保其计算机名称仅包含小写字符。
确保创建、修改或使用计算机名称的所有内部生成过程、工具和脚本也使用小写字符。
如果您无法重命名您的 DCS (或者如果需要很长时间) ,请配置 DNS 拓扑,以便运行 Windows Server 2016 或更高版本的 DCS 使用运行 Windows Server 2016 或更高版本的 DNS 服务器。 同样,将运行 R2 Windows Server 2012的 DC 配置为使用在 R2 或更早版本Windows Server 2012 DNS 服务器。
解决方法 2:删除重复的 SRV 记录
若要在遇到此问题后解决此问题,您必须使用所有小写字符重命名您的 DCS。 根据部署的详细信息,可能需要手动重新配置设置或删除文件。 本节按复杂性顺序提供以下解决方法:
重要
在使用这些方法之一之前,请查看以下文章。 这些文章提供了重命名 DC 需要遵循的详细步骤。 它们还提供有关在降级或重命名 DC 后可能需要执行的其他清理任务的信息。
备注
如果在重命名 DC 后遇到任何问题,请将其 DC 名称还原为原始内容。
方法 1:重命名单 DC 域中的 DC
如果有一个 DC,请使用重命名域控制器中的步骤将 DC 的计算机名称更改为只包含小写字符的新名称。 对于单个 DC,则不需要进行降级和重新执行。
重要
我们强烈建议任何域包含至少两个 DCS。 如果您只有一个 DC,则只要 DC 遇到问题,您的域就会变得不可用。
方法 2:重命名多 DC 域中的 DCS
如果域中具有多个 DC,请针对每个受影响的 DC 执行以下步骤:
重命名计算机,为计算机指定只包含小写字符的名称。
再次将计算机提升为 DC。
在所有 DCS 重新联机时,应 (混合大小写) SRV 记录。
方法 3:重命名 DCS 并删除所有存储的 SRV 记录
如果方法 1 和方法 2 未提供满意的结果,请针对每个受影响的 DC 执行以下步骤:
在降级的计算机上,按照以下步骤操作:
重命名计算机,为计算机指定只包含小写字符的名称。
停止 netlogon 服务。 为此,请打开提升的命令提示符窗口,然后运行 net stop netlogon 。
删除 \ C: Windows \ System32\config 文件夹中的 \ 以下文件:
netlogon.dnb
netlogon.dns
在其他一个 DCS 上,打开"服务器管理器",选择"工具",然后选择 "DNS"。
在 DNS 管理器中,检查"前向查找区域"下的容器,然后删除已降级的 DC 的 SRV 记录。
在重命名的计算机上,启动 netlogon 服务。 为此,请打开提升的命令提示符窗口,然后运行 net start netlogon 。
再次将重命名的计算机提升为 DC。