本文提供了一个解决方案,指出当计算机是子域的成员时,计算机无法识别网络的问题。
原始 KB 数: 980873
现象
你有一台运行 Windows Vista、Windows Server 2008、Windows 7 或 Windows Server 2008 R2 的计算机。 当此计算机是子域的成员时,计算机无法标识网络。 它可能会导致计算机上的防火墙设置为公共配置文件。
此外,类似于以下示例的事件记录在应用程序事件日志中:
注意
错误0x54B指示指定的域不存在或无法联系。
原因
出现此问题的原因是计算机无法连接到林域中的主域控制器(PDC),计算机已加入子域。 网络位置感知(NLA)服务希望能够枚举域的林名称,以便为连接选择正确的网络配置文件。 该服务通过调用 DsGetDcName 林根名称并向根域控制器发出 UDP(用户数据报协议)端口 389 上的 LDAP(轻型目录访问协议)查询来执行此操作。 该服务预期能够连接到林域中的 PDC 以填充以下注册表子项:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\IntranetForests
如果某些内容妨碍了 DNS 名称解析或与 DC 的连接尝试,则 NLA 无法在连接上设置相应的网络配置文件。
解决方法
若要解决此问题,请使用以下任一方法。
方法 1
将防火墙设备配置为不阻止 UDP/TCP 端口 389 上的通信。 有关如何执行此操作的详细信息,请参阅 Windows 的服务概述和网络端口要求。
方法 2
警告
如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统才能解决。 Microsoft 不能保证可解决这些问题。 修改注册表的风险由您自行承担。
- 在子域中配置一台计算机以从根域连接到 PDC。
- 重新启动计算机。 计算机现在应该能够识别网络。 此外,防火墙上的配置文件将设置为域配置文件。
- 将以下注册表子项作为文件导出到域中的共享位置:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\IntranetForests - 将步骤 3 中导出的注册表子项导入到无法从域林连接到 PDC 的其他计算机。
- 重新启动计算机。 计算机现在应该能够识别网络,防火墙上的配置文件将设置为域配置文件。
方法 3
如果足以根据子域名标识网络配置文件,则在 NLA 积极重试期间缓解 NLA 花费的时间可能是正确的方法。
若要部署更改 NLA 使用的重试计数的注册表设置,请执行以下步骤:
-
创建与路径下的林根域匹配的新注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\Intranet\ -
在林根域名称的新创建的注册表项中,添加以下两个注册表值:
- 值为 1 的故障REG_DWORD
- 值为 0 的成功REG_DWORD
这将导致 NLA 达到其最低重试计数,并导致识别持续几分钟。