域与目录服务

Windows 中的密码更改处理和冲突解决功能 - Windows Server

· 52CE 我爱测

本文介绍一个注册表值,管理员可以用于控制联系主域控制器(PDC)的时间,这有助于降低站点之间的通信成本并减少 PDC 上的负载。 重要 本文包含有关修改注册表的信息。 在修改注册表之前,请务必备份注册表并确保您知晓如何在出现问题时还原注册表。 有关如何备份、还原和编辑注册表的详细信息,请参阅 适用于高级用户的 Windows 注册表信息(../performance/windows-registry-advanced-users)。 原始 KB 数: 22

本文介绍一个注册表值,管理员可以用于控制联系主域控制器(PDC)的时间,这有助于降低站点之间的通信成本并减少 PDC 上的负载。

重要

本文包含有关修改注册表的信息。 在修改注册表之前,请务必备份注册表并确保您知晓如何在出现问题时还原注册表。 有关如何备份、还原和编辑注册表的详细信息,请参阅 适用于高级用户的 Windows 注册表信息。

原始 KB 数: 225511

总结

默认情况下,当用户密码重置或更改时,或者当域控制器收到使用不正确密码的客户端身份验证请求时,将联系充当 Windows 域的 PDC 灵活单一主操作(FSMO)角色所有者的 Windows 域控制器。 本文介绍管理员可用于控制何时联系 PDC 的注册表值,这有助于降低站点之间的通信成本并减少 PDC 上的负载。

对于计算机帐户,无法与 PDC 通信。 身份验证失败时,计算机将使用最近一个密码重试身份验证。 在同一行中,计算机会在解密他们收到的 Kerberos 服务票证时尝试最新的密码。

详细信息

警告

如果注册表编辑器使用不当,则可能会产生严重问题,导致重新安装操作系统。 Microsoft 无法保证可以解决因注册表编辑器使用不当而造成的问题。 请慎用注册表编辑器,风险自负。

可以修改以下注册表值来控制密码更改通知和密码冲突解决,如下所示:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters

  • 注册表值:AvoidPdcOnWan
  • 注册表类型:REG_DWORD
  • 注册表值数据:0(或值不存在)或 1
    • 0 或值不存在 = FALSE (禁用)
    • 1 = TRUE (若要启用)
  • 默认值:(值不存在)

密码更改通知

Windows 可写域控制器接收用户密码更改或重置请求。 密码更改在本地进行,然后使用 Netlogon 服务作为远程过程调用(RPC)立即发送到 PDC FSMO 角色所有者。 然后,PDC 和域控制器(DC)使用 Active Directory 复制过程将密码更改复制到合作伙伴。 如果 Windows 只读域控制器(RODC)收到密码更改请求,它的工作方式类似于将请求转发到其中心 DC 的身份验证代理,就像它是接收请求的第一个 DC 一样。

如果 AvoidPdcOnWan 值设置为 TRUE,并且 PDC FSMO 位于另一个站点,则不会立即将密码更改发送到 PDC。 但是,通过常规 Active Directory 复制更新更改。 如果 PDC FSMO 位于同一站点,则不使用 AvoidPdcOnWan 值,并且密码更改会立即传达给 PDC。

即使 AvoidPdcOnWan 为 FALSE 或未设置,如果向 PDC 发送请求时遇到问题(例如网络中断)也可能不会将更新的密码发送到 PDC 模拟器。 在这种情况下,不会记录任何错误。 然后,使用普通 AD 复制分发更新。

密码冲突解决

默认情况下,如果用户尝试使用根据本地数据库不正确的密码进行身份验证,Windows 域控制器会查询 PDC FSMO 角色所有者。 如果用户从客户端发送的密码在 PDC 上正确,则允许访问客户端,并且域控制器将复制密码更改。

管理员可以使用 AvoidPdcOnWan 值来控制 Active Directory 域控制器何时尝试使用 PDC FSMO 角色所有者解决密码冲突。 PDC 完成登录,身份验证成功用于对用户进行身份验证。

如果 AvoidPdcOnWan 值设置为 TRUE,并且 PDC FSMO 角色所有者位于另一个站点,则域控制器不会尝试根据 PDC FSMO 上存储的密码信息对客户端进行身份验证。 但是,请注意,这会导致拒绝对用户的访问权限。 这可能会导致工作效率影响,因为许多用户不会尝试以前的密码进行身份验证。 在某些情况下,他们可能不知道以前的密码。

即使 AvoidPdcOnWan 为 FALSE 或未设置,也可能在 PDC 模拟器中尝试不正确的密码,如果向 PDC 发送请求时遇到问题,例如网络中断。 在这种情况下,不会记录任何错误。 在这种情况下,拒绝登录尝试。

涉及 RODC 时,方案有所不同。 如果 RODC 上的身份验证请求失败并出现密码错误,RODC 会将请求发送到中心 DC,而中心 DC 又将其发送到 PDC。 如果在 PDC 上成功,则用户身份验证会成功。 如果允许 RODC 缓存用户密码,它将请求从其中心 DC 复制用户密码。 但中心 DC 仍然只有旧密码。 RODC 仅通过正常复制周期获取新密码。 在复制新密码之前,它将继续需要中心或 PDC。

密码复制处理

当可写 DC 将密码更改转发到 PDC 时,用户密码在两个 DC 上设置。 这两个 DC 都将在其出站复制中包含此新密码。

如果这两个更改到达 DC,则会执行正常的 AD 冲突解决。 属性的 AD 版本相同,但 PDC 的时间戳会稍旧一些,将使用初始 DC 的密码。

它没有区别,因为数据有效负载是相同的,因为两个 DC 都编写了相同的新密码值。

目录服务事件日志中的日志记录

Windows Server 2022 添加了事件,用于跟踪与 PDC 模拟器的交互活动,了解密码更新通知。

事件 ID 3035

以下注册表项中的类别“27 PDC 密码更新通知”类别 4 的 PDC 记录事件 ID 3035:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      3035
Task Category: PDC Password Updates
Level:         Informational
Description:
Active Directory Domain Services successfully processed a password update notification sent from a Backup Domain Controller (BDC).
 BDC:      <Computer Name>
 User:      <User Name>
 User RID:  <RID>

事件 ID 3036

如果在从备份域控制器(BDC)的调用中更新 PDC 时出错,则会记录事件 ID 3036:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      3036
Task Category: PDC Password Updates
Level:         Warning
Description:
Active Directory Domain Services failed to process a password update notification sent from a Backup Domain Controller (BDC).
The user may experience temporary authentication failures until the updated credentials are successfully replicated to the PDC via normal replication schedules.
 BDC:      <Computer Name>
 User:      <User Name>
 User RID:  <RID>
 Error:     <Error Code>

重要

在运行 Windows Server 2022 或更高版本的 BDC 处理运行 Windows Server 2019 或更早版本的密码更新通知时,可能会出现错误代码为 8440 的事件 ID 3036。 鉴于此较新的 PDC 和较旧的 BDC 组合,当 BDC 为尚未复制到 PDC 的新用户帐户发送密码更新通知时,PDC 上会出现错误代码为 8440 的事件 ID 3036。 若要防止此问题,请将 BDC 升级到 Windows Server 2022 或更高版本。

事件 ID 3037

以下注册表项中的类别“27 PDC 密码更新通知”类别 4 的 BDC 记录事件 ID 3037:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      3037
Task Category: PDC Password Updates
Level:         Informational
Description:
Active Directory Domain Services successfully sent a password update notification to the Primary Domain Controller (PDC).
 User:      <User Name>
 User RID:  <RID>

事件 ID 3038

如果在 BDC 的调用中更新 PDC 时出现错误,则会记录事件 ID 3038:

Log Name:      Directory Service
Source:        Microsoft-Windows-ActiveDirectory_DomainService
Event ID:      3038
Task Category: PDC Password Updates
Level:         Warning
Description:
Active Directory Domain Services failed to send a password update notification to the Primary Domain Controller (PDC).
The user may experience temporary authentication failures until the updated credentials are successfully replicated to the PDC via normal replication schedules.
 User:      <User Name>
 User RID:  <RID>
 Error:     <Error Code>

例如,错误代码 c0000225 映射到STATUS_NOT_FOUND。 在本地域控制器上新创建用户且在 PDC 的复制延迟内设置用户密码时,会出现此错误。

还可以在事件 ID 3038 中看到网络或 RPC 相关错误。 例如,当防火墙阻止 BDC 与 PDC 之间的通信时,可能会收到此事件。

参考

如何配置 Active Directory 和 LDS 诊断事件日志记录

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于高级用户的 Windows 注册表信息(../performance/windows-registry-advanced-users)。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。