Active Directory 域加入问题排除指南

本指南提供了排查 Active Directory 域加入问题时使用的基本概念。

故障排除清单

  • 域名系统 (DNS):每当加入域时出现问题,首先要检查的项目之一就是 DNS。 DNS 是 Active Directory(AD)的核心,确保其各个方面正常运作,包括域加入过程。 请确保以下各项:

    • DNS 服务器地址正确。
    • 如果有多个 DNS 域正在运行,则 DNS 后缀搜索顺序是正确的。
    • 没有引用同一计算机帐户的过时或重复的 DNS 记录。
    • 反向 DNS 不会指向其他名称作为 A 记录。
    • 可以对域名、域控制器 (DC) 和 DNS 服务器进行 ping 测试。
    • 检查特定服务器的 DNS 记录冲突。
  • Netsetup.log:排查域加入问题时,Netsetup.log文件是有价值的资源。 netsetup.log文件位于 C:\Windows\Debug\netsetup.log

  • 网络跟踪:在 AD 域加入期间,客户端与某些 DNS 服务器之间以及客户端与某些 DC 之间会发生多种类型的流量。 如果在上述任何流量中看到错误,请按照该协议或组件的相应故障排除步骤将其缩小范围。 有关详细信息,请参阅 使用 Netsh 管理跟踪

  • 域连接加固变更:2022年10月11日及之后发布的 Windows 更新包含由 CVE-2022-38042 引入的额外保护措施。 除非存在以下条件之一,否则这些保护会有意阻止域加入操作重复使用目标域中的现有计算机帐户:

    • 尝试操作的用户是现有帐户的创建者。
    • 计算机由域管理员组的成员创建。

    有关详细信息,请参阅 KB5020276—Netjoin:域加入强化更改

端口要求

下表列出了客户端计算机和 DC 之间打开所需的端口。

端口 协议 应用程序协议 系统服务名称
53 TCP DNS(域名系统) DNS 服务器
53 UDP DNS(域名系统) DNS 服务器
389 UDP DC 定位器 LSASS 公司
389 TCP LDAP 服务器 LSASS 公司
88 TCP Kerberos Kerberos 密钥分发服务器
135 TCP RPC RPC 终结点映射程序
445 TCP 中小型企业 (SMB) Lanman服务器
1024-65535 TCP RPC 在客户端和域控制器之间处理 DSCrackNames、SAMR 和 Netlogon 调用的 RPC 终结点映射器。

常见问题和解决方案

域加入错误代码 原因 相关文章
0x569 出现此错误的原因是,用于域加入的用户帐户在为域加入操作提供服务的域控制器(DC)上缺少从网络访问此计算机的权限。 故障排除错误代码0x569:用户未被授予在此计算机上的请求登录类型
0xaac或0x8b0 尝试使用现有计算机帐户名称将计算机加入域时,会发生此错误。 故障排除错误代码0xaac:使用现有计算机帐户加入域时失败
0x6BF 或 0xC002001C 当网络设备(路由器、防火墙或虚拟专用网络(VPN)设备)拒绝加入客户端与域控制器(DC)之间的网络数据包时,会出现此错误。 对状态代码 0x6bf 或 0xc002001c 进行故障排除:远程过程调用失败且未执行
0x6D9 当加入的客户端和域控制器 (DC) 之间的网络连接被阻止时,会出现此错误。 对错误代码 0x6D9 “从端点映射器中没有更多可用的端点” 进行故障排除
0xa8b 当您将工作组计算机加入域时,会出现此错误。 排查错误代码 0xa8b:尝试解析正在加入的域中的 DC 的 DNS 名称失败
0x40 此问题与获取服务器消息块 (SMB) 会话的 Kerberos 票证有关。 对错误代码 0x40 “指定的网络名称不再可用” 进行故障排除
0x54b 出现此错误的原因是无法联系指定的域,这表明查找域控制器 (DC) 时出现问题。 故障排除错误代码 0x54b
0x0000232A 此错误表示无法解析域名系统 (DNS) 名称。 对错误代码 0x0000232A 进行故障排除
0x3a 当客户端计算机在客户端计算机和域控制器 (DC) 之间的传输控制协议 (TCP) 389 端口上缺乏可靠的网络连接时,会发生此错误。 排查状态码0x3a:指定服务器无法执行请求的操作
0x216d 当用户帐户超过可加入域的 10 台计算机的限制时,或者当组策略限制用户将计算机加入域时,会出现此错误。 故障排除状态代码0x216d:您的计算机无法加入域

将基于 Windows 的计算机加入域时发生的其他错误

有关详细信息,请参阅:

有关域加入问题的数据收集

若要排查域加入问题,以下日志可能会有所帮助:

  • Netsetup 日志
    此日志文件包含有关域加入活动的大多数信息。 该文件位于客户端计算机上 %windir%\debug\netsetup.log
    默认情况下,此日志文件处于启用状态。 无需显式启用它。

  • 网络跟踪
    网络跟踪包含客户端计算机与相对服务器(如 DNS 服务器和域控制器)之间通过网络进行通信。 应在客户端计算机上将其收集。 多个工具可以收集网络跟踪(如 Wireshark),netsh.exe 包含在所有 Windows 版本中。

可以单独收集每个日志。 或者,可以使用Microsoft提供的一些工具将它们收集在一起。 为此,请遵循以下部分中的步骤。

手动收集

  1. 在要加入 AD 域的客户端计算机上下载并安装 Wireshark。
  2. 使用管理员权限启动应用程序,然后开始捕获。
  3. 尝试加入 AD 域以重现错误。 记录错误消息。
  4. 停止在应用中捕获并将网络跟踪保存到文件中。
  5. 收集位于 %windir%\debug\netsetup.log 的 netsetup.log 文件。

使用身份验证脚本

身份验证脚本是由Microsoft开发的轻型 PowerShell 脚本,用于简化日志收集,以排查身份验证相关问题。 若要使用它,请执行以下步骤:

  1. 在客户端计算机上下载 身份验证脚本 。 将文件解压缩到文件夹。

  2. 使用管理员权限启动 PowerShell 窗口。 切换到包含这些提取文件的文件夹。

  3. 运行 start-auth.ps1,当出现提示时,接受最终用户许可协议,并在警告不受信任的发布者时允许执行。

    注释

    如果由于执行策略不允许运行脚本,请参阅 about_Execution_Policies

  4. 命令成功完成后,请尝试加入 AD 域以重现错误。 记录错误消息。

  5. 运行 stop-auth.ps1,如果出现关于不受信任发布者的警告,请允许执行。

  6. 日志文件保存在 authlogs 子文件夹中,其中包括 Netsetup.log 日志和网络跟踪文件(Nettrace.etl)。

使用 TSS 工具

TSS 工具是由Microsoft开发的另一种工具,用于简化日志收集。 若要使用它,请执行以下步骤:

  1. 在客户端计算机上下载 TSS 工具 。 将文件解压缩到文件夹。

  2. 使用管理员权限启动 PowerShell 窗口。 切换到包含这些提取文件的文件夹。

  3. 运行下面的命令:

    TSS.ps1 -scenario ADS_AUTH -noSDP -norecording -noxray -noupdate -accepteula -startnowait
    

    如果系统提示,请接受 EULA;如果出现不受信任发布者的警告,请允许执行。

    注释

    如果由于执行策略不允许运行脚本,请参阅 about_Execution_Policies

  4. 该命令需要几分钟才能完成。 命令成功完成后,请尝试加入 AD 域以重现错误。 记录错误消息。

  5. 运行TSS.ps1 -stop,如果收到关于不受信任发布者的警告,请允许执行。

  6. 日志文件保存在 C:\MS_DATA 子文件夹中,并且已压缩。 ZIP 文件名遵循 TSS_<hostname>_<date-time><>-ADS_AUTH.zip格式。

  7. zip 文件包括 Netsetup.log和网络跟踪。 网络跟踪文件名为 <hostname>_<date>-<time>-Netsh_packetcapture.etl