Active Directory 复制错误 8453:复制访问被拒绝

本文介绍如何排查 Active Directory 复制失败并生成错误 8453:复制访问被拒绝的问题。

原始 KB 数: 2022387

注意

家庭用户: 本文仅适用于技术支持代理和 IT 专业人员。 如果你正在寻找解决问题的帮助, 请询问Microsoft社区

总结

错误 8453 有以下主要原因:

  • 目标域控制器没有复制命名上下文/分区所需的权限。

  • 手动启动复制的管理员无权执行此操作。

    注意

    此条件不会影响定期复制或计划复制。

首要原因

对于时间段或计划复制,如果目标域控制器是只读域控制器(RODC):

企业只读域控制器安全组对不复制并返回错误 8453 的分区的命名上下文(NC)根目录没有 复制目录更改 权限。

热门解决方案

在 RODC 不复制的每个 NC 上,如果返回错误 8453,请向林根域的企业只读域控制器安全组授予 复制目录更改 权限。

示例:

RODC childdc2.child.contoso.com 不会复制 contoso.com 分区并返回错误 8453。 若要排查这种情况,请执行以下步骤:

  1. 在域控制器上 contoso.com 打开 ADSIEDIT.msc。

  2. 打开与 contoso.com 域 NC(默认命名上下文)的连接。

  3. 打开 dc=contoso,dc=com NC 的属性,然后选择“安全”选项卡。

  4. 选择“ 添加”,并在文本框中输入以下条目:
    Contoso\Enterprise 只读域控制器

    注意

    此组仅存在于林根域中。

  5. 选择“检查名称”,然后选择“确定”

  6. “企业只读域控制器 的权限”对话框中,清除自动选中的 “允许 ”复选框:

    • 读取
    • 读取域密码和锁定策略
    • 读取其他域参数
  7. 选择复制目录更改旁边的“允许”框,然后选择“确定”。

如果这些步骤无法解决问题,请参阅本文的其余部分。

现象

出现此问题时,会出现以下一个或多个症状:

  • DCDIAG 复制测试 (DCDIAG /TEST:Replications) 报告测试的域控制器 未通过测试复制 ,状态为 8453:复制访问被拒绝:

    Starting test: Replications  
    [Replications Check,<destination domain controller] A recent replication attempt failed:  
    From <source DC> to <Destination DC  
    Naming Context: <DN path of failing directory partition>  
    The replication generated an error (8453):  
    Replication access was denied.  
    The failure occurred at <date> <time>.  
    The last success occurred at <date> <time>.  
    %#% failures have occurred since the last success.  
    The machine account for the destination <destination DC>.  
    is not configured properly.  
    Check the userAccountControl field.  
    Kerberos Error.  
    The machine account is not present, or does not match on the.  
    destination, source or KDC servers.  
    Verify domain partition of KDC is in sync with rest of enterprise.  
    The tool repadmin/syncall can be used for this purpose.  
    ......................... <DC tested by DCDIAG> failed test Replications
    
  • DCDIAG NCSecDesc 测试 (DCDIAG /TEST:NCSecDesc) 报告 DCDIAG 测试的域控制器未通过测试 NCSecDec ,并且 DCDIAG 测试的一个或多个目录分区的 NC 头上缺少一个或多个权限:

    Starting test: NCSecDesc  
    Error NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS doesn't have  
    Replicating Directory Changes                               <- List of missing access  
    Replication Synchronization                                 <- rights required for each Manage Replication Topology                                       <- security group could vary  
    Replicating Directory Changes In Filtered Set               <- depending in missing  
    access rights for the naming context:                          <- right in your environment  
    DC=contoso,DC=com  
    Error CONTOSO\Domain Controllers doesn't have  
    Replicating Directory Changes All  
    access rights for the naming context:  
    DC=contoso,DC=com  
    Error CONTOSO\Enterprise Read-Only Domain Controllers doesn't have  
    Replicating Directory Changes  
    access rights for the naming context:  
    DC=contoso,DC=com  
    ......................... CONTOSO-DC2 failed test NCSecDesc
    
  • DCDIAG MachineAccount 测试(DCDIAG /TEST:MachineAccount)报告 DCDIAG 测试的域控制器失败测试 MachineAccount,因为域控制器计算机帐户上的 UserAccountControl 属性缺少SERVER_TRUST_ACCOUNTTRUSTED_FOR_DELEGATION标志:

    Starting test: MachineAccount  
    The account CONTOSO-DC2 is not trusted for delegation . It cannot  
    replicate.  
    The account CONTOSO-DC2 is not a DC account. It cannot replicate.  
    Warning: Attribute userAccountControl of CONTOSO-DC2 is:  
    0x288 = ( HOMEDIR_REQUIRED | ENCRYPTED_TEXT_PASSWORD_ALLOWED | NORMAL_ACCOUNT )  
    Typical setting for a DC is  
    0x82000 = ( SERVER_TRUST_ACCOUNT | TRUSTED_FOR_DELEGATION )  
    This may be affecting replication? 
    ......................... CONTOSO-DC2 failed test MachineAccount
    
  • DCDIAG KCC 事件日志测试指示与 Microsoft-Windows-ActiveDirectory_DomainService 事件 2896 的十六进制等效项:

    B50 十六进制 = 2896 十进制。 此错误可能在基础结构主域控制器上每 60 秒记录一次。

    Starting test: KccEvent  
    The KCC Event log test  
    An error event occurred. EventID: 0xC0000B50  
    Time Generated: 06/25/2010 07:45:07
    
    Event String:  
    A client made a DirSync LDAP request for a directory partition. Access was denied due to the following error.
    
    Directory partition:  
    <DN path of directory partition>
    
    Error value:  
    8453 Replication access was denied.
    
    User Action  
    The client may not have access for this request. If the client requires it, they should be assigned the control access right "Replicating Directory Changes" on the directory partition in question.
    
  • REPADMIN.EXE报告复制尝试失败并返回了 8453 状态。

    通常指示 8453 状态的 REPADMIN 命令包括但不限于以下内容。

    • REPADMIN /KCC

    • REPADMIN /REHOST

    • REPADMIN /REPLICATE

    • REPADMIN /REPLSUM

    • REPADMIN /SHOWREPL

    • REPADMIN /SHOWREPS

    • REPADMIN /SHOWUTDVEC

    • REPADMIN /SYNCALL

      显示从 CONTOSO-DC2 到 CONTOSO-DC1 的入站复制(失败并返回复制访问被拒绝错误)的示例输出REPADMIN /SHOWREPS如下所示:

      Default-First-Site-Name\CONTOSO-DC1  
      DSA Options: IS_GC  
      Site Options: (none)  
      DSA object GUID:  
      DSA invocationID:  
      DC=contoso,DC=com  
      Default-First-Site-Name\CONTOSO-DC2 via RPC  
      DSA object GUID: 74fbe06c-932c-46b5-831b-af9e31f496b2  
      Last attempt @ <date> <time> failed, result 8453 (0x2105):  
      Replication access was denied.  
      <#> consecutive failure(s).  
      Last success @ <date> <time>.
      
  • Active Directory 站点和服务(DSSITE)中的“立即 复制”命令。MSC) 返回 复制访问被拒绝 错误。

    右键单击源域控制器中的连接对象,然后选择 “复制”现在 会失败。 返回复制访问被拒绝错误。 将显示以下错误消息:

    Dialog title text: Replicate Now  
    Dialog message text: The following error occurred during the attempt to synchronize naming context <%directory partition name%> from Domain Controller <Source DC> to Domain Controller <Destination DC>:  
    Replication access was denied  
    
    The operation will not continue  
    Buttons in Dialog: OK
    

    运行复制命令后,复制访问被拒绝错误。

  • ACTIVE Directory 指令服务(AD DS)事件日志中记录了状态为 8453 的 NTDS KCC、NTDS 常规或 Microsoft-Windows-ActiveDirectory_DomainService 事件。

通常表示 8453 状态的 Active Directory 事件包括但不限于以下事件:

事件来源 事件 ID 事件字符串
Microsoft-Windows-ActiveDirectory_DomainService 1699 此目录服务未能检索为以下目录分区请求的更改。 因此,无法在以下网络地址将更改请求发送到目录服务。
Microsoft-Windows-ActiveDirectory_DomainService 2,896 客户端对目录分区发出 DirSync LDAP 请求。 由于出现以下错误,访问被拒绝。
NTDS General 1655 Active Directory 尝试与以下全局目录通信,但尝试失败。
NTDS KCC 1265 尝试使用参数建立复制链接
分区: <分区 DN 路径>
源 DSA DN: <源 DC NTDS 设置对象的 DN>
源 DSA 地址: <源 DC 完全限定的 CNAME>
站点间传输(如果有): <dn 路径>
失败并具有以下状态:
NTDS KCC 1925 尝试为以下可写目录分区建立复制链接失败。

原因

错误 8453(复制访问被拒绝)具有多个根本原因,包括:

  • 目标域控制器计算机帐户上的 UserAccountControl 属性缺少以下标志之一:
    SERVER_TRUST_ACCOUNTTRUSTED_FOR_DELEGATION

  • 一个或多个目录分区上不存在默认权限,以允许在操作系统的安全上下文中进行计划的复制。

  • 一个或多个目录分区上不存在默认或自定义权限,允许用户使用 DSSITE 触发即席或即时复制。MSC 立即复制、repadmin /replicaterepadmin /syncall或类似的命令。

  • 在相关目录分区上正确定义了触发即席复制所需的权限。 但是,用户不是已授予复制目录更改权限的任何安全组的成员。

  • 触发即席复制的用户是所需安全组的成员,并且这些安全组已被授予 “复制目录更改” 权限。 但是,通过用户帐户控制拆分用户访问令牌功能,从用户的安全令牌中删除授予复制目录更改权限的组中的成员身份。 此功能已在 Windows Vista 和 Windows Server 2008 中引入。

    注意

    不要将 Vista 和 Windows Server 2008 中引入的用户帐户控制拆分令牌安全功能与 Active Directory 服务存储的域控制器角色计算机帐户上定义的 UserAccountControl 属性混淆。

  • 如果目标域控制器是 RODC,则 RODCPREP 尚未在当前托管只读域控制器的域中运行,或者企业只读域控制器组没有 未复制的分区的“复制目录更改” 权限。

  • 你有轻型目录服务 (LDS) 实例。 LDS 配置容器中缺少受影响实例的 NTDS 设置对象。 例如,可以看到以下条目:

    CN=NtDs 设置,CN=Server1$ADAMINST1,CN=Server,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,CN={A560B9B8-6B05-4000-9A1F-9A853DB6615A}

Active Directory 错误和事件(如“症状”部分中提到的错误)也可能发生并生成错误 5 消息(访问被拒绝)。

“解决”部分中提到的错误 5 或错误 8453 的步骤无法解决当前复制失败的计算机上的复制失败,并生成其他错误消息。

生成错误 5 消息的 Active Directory 操作失败的常见根本原因包括:

  • 时间偏斜
  • 网络上中间设备对 UDP 格式的 Kerberos 数据包的碎片
  • 缺少 从网络 权限访问此计算机的权限。
  • 损坏的安全通道或域内信任
  • CrashOnAuditFail = 注册表中的 2

解决方法

若要解决此问题,请使用以下方法。

使用 DCDIAG + DCDIAG /test:CheckSecurityError 运行运行状况检查

  1. 在报告 8453 错误或事件的目标 DC 上运行 DCDIAG。
  2. 在目标域控制器报告 8453 错误或事件的源域控制器上运行 DCDIAG。
  3. DCDIAG /test:CheckSecurityError在目标域控制器上运行。
  4. DCDIAG /test:CheckSecurityError在源 DC 上运行。

修复无效的 UserAccountControl

UserAccountControl 属性包括一个位掩码,用于定义用户或计算机帐户的功能和状态。 有关 UserAccountControl 标志的详细信息,请参阅 User-Account-Control 属性

写(完整)DC 计算机帐户的典型 UserAccountControl 属性值为 532480 十进制或 82000 十六进制。 DC 计算机帐户的 UserAccountControl 值可能会有所不同,但必须包含 SERVER_TRUST_ACCOUNTTRUSTED_FOR_DELEGATION 标志,如下表所示。

属性标志 十六进制值 十进制值
SERVER_TRUST_ACCOUNT 0x2000 8192
TRUSTED_FOR_DELEGATION 0x80000 524288
UserAccountControl 值 0x82000 532480

只读域控制器计算机帐户的典型 UserAccountControl 属性值83890176十进制或 5001000 十六进制。

属性标志 十六进制值 十进制值
WORKSTATION_TRUST_ACCOUNT 0x1000 4096
TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION 0x1000000 16777216
PARTIAL_SECRETS_ACCOUNT 0X4000000 67108864
RODC 的典型 UserAccountControl 值 0x5001000 83890176
  • 目标域控制器上的 UserAccountControl 属性缺少SERVER_TRUST_ACCOUNT标志

    如果 DCDIAG MachineAccount 测试失败并返回失败的测试 MachineAcccount 错误消息,并且测试域控制器上的 UserAccountControl 属性缺少SERVER_TRUST_ACCOUNT标志,请在测试的域控制器 Active Directory 副本中添加缺失的标志。

    1. 启动 ADSIEDIT。域控制器的主机上缺少 DCDIAG 报告的SERVER_TRUST_ACCOUNT 的 MSC。
    2. 在 ADSIEDIT 的左上方窗格中右键单击 ADSIEDIT。MSC,然后选择 “连接到”。
    3. “连接设置”对话框中,单击“选择已知命名上下文”,然后选择“默认命名上下文(计算机帐户域分区)。
    4. 单击“ 选择”或“键入域或服务器”。 然后选择 DCDIAG 中发生故障的域控制器的名称。
    5. 选择“确定”
    6. 在域命名上下文中,找到并右键单击域控制器计算机帐户,然后选择“ 属性”。
    7. 双击 UserAccountControl 属性,然后记录其十进制值。
    8. 在程序员模式下启动 Windows 计算器(Windows Server 2008 及更高版本)。
    9. 输入 UserAccountControl十进制值。 将十进制值转换为其十六进制等效值,将0x80000添加到现有值,然后按等号 (=)。
    10. 将新计算 的 UserAccountContorl 值转换为其十进制等效值。
    11. 在 ADSIEDIT 中输入从 Windows 计算器到 UserAccountControl 属性的新十进制值。MSC。
    12. 选择“ 确定 ”两次以保存。
  • 目标域控制器上的 UserAccountControl 属性缺少TRUSTED_FOR_DELEGATION标志

    如果 DCDIAG MachineAccount 测试返回失败的测试 MachineAcccount 错误消息,并且测试域控制器上的 UserAccountControl 属性缺少 TRUSTED _FOR_DELEGATION 标志,请在测试的域控制器的 Active Directory 副本中添加缺失的标志。

    1. 启动Active Directory 用户和计算机(DSA。MSC)在由 DCDIAG 测试的域控制器的主机上。

    2. 右键单击域控制器计算机帐户。

    3. 选择“委派”选项卡。

    4. 在域控制器计算机帐户上,选择 “受信任的此计算机”以委派到任何服务(仅 Kerberos) 选项。

      受信任的此计算机用于委派到 D C 属性对话框中的“委派”选项卡下的任何服务选项。

修复无效的默认安全描述符

Active Directory 操作发生在启动操作的帐户的安全上下文中。 Active Directory 分区的默认权限允许执行以下操作:

  • 企业管理员组的成员可以在同一林中任何域中的任何域控制器之间启动即席复制。
  • 内置管理员组的成员可以在同一域中的域控制器之间启动即席复制。
  • 同一林中的域控制器可以使用更改通知或复制计划启动复制。

默认情况下,Active Directory 分区的默认权限不允许执行以下操作:

  • 一个域中的内置管理员组的成员无法从不同域中的域控制器启动临时复制到该域中的域控制器。
  • 不属于内置管理员组成员的用户无法从同一域或林中的任何其他域控制器启动即席复制。

根据设计,这些操作在修改默认权限或组成员身份之前失败。

权限在每个目录分区(NC 头)的顶部定义,并在整个分区树中继承。 验证显式组(用户是直接成员的组)和隐式组(显式组具有嵌套成员身份的组)是否具有所需的权限。 此外,请验证分配给隐式或显式组的拒绝权限是否优先于所需的权限。 有关默认目录分区的详细信息,请参阅 配置目录分区的默认安全性。

  • 验证每个目录分区顶部是否存在默认权限,该分区失败并返回复制访问被拒绝

    如果不同域中的域控制器之间或非域管理员在同一域中的域控制器之间失败,请参阅“ 授予非域管理员权限 ”部分。

    如果企业管理员组成员的临时复制失败,请专注于向企业管理员组授予的 NC 头权限。

    如果域管理员组的成员的临时复制失败,请专注于向内置管理员安全组授予的权限。

    如果林中的域控制器启动的计划复制失败并返回错误 8453,请专注于以下安全组的权限:

    • 企业域控制器

    • 企业只读域控制器

      如果只读域控制器(RODC)上的域控制器启动计划的复制失败并返回错误 8453,请验证是否向企业只读域控制器安全组授予了每个目录分区的 NC 头所需的访问权限。

      下表显示了根据各种 Windows 版本在架构、配置、域和 DNS 应用程序上定义的默认权限。

      每个目录分区所需的 DACL Windows Server 2008 及更高版本
      管理复制拓扑 X
      复制目录更改 X
      复制同步 X
      复制所有目录更改 X
      复制筛选器集中的更改 X

      注意

      DCDIAG NcSecDesc 测试在具有混合系统版本的环境中运行时可能会报告误报错误。

      DSACLS 命令可用于使用以下语法转储对给定目录分区的权限:
      目录分区的 DSACLS <DN 路径>

      例如,使用以下命令:

      C:\>dsacls dc=contoso,dc=com
      

      可以使用语法将命令定向到远程域控制器:

      c:\>dsacls \\contoso-dc2\dc=contoso,dc=com
      

      请谨慎使用 NC 的 DENY 权限,删除失败的用户是直接成员或嵌套成员的组的权限。

添加缺少的必需权限

在 ADSIEDIT 中使用 Active Directory ACL 编辑器。MSC 添加缺少的 DACLS。

授予非域管理员权限

向非域管理员授予以下权限:

  • 为非企业管理员在同一域中的域控制器之间复制
  • 在不同域中的域控制器之间复制

Active Directory 分区的默认权限不允许执行以下操作:

  • 一个域中的内置管理员组的成员无法从不同域中的域控制器启动即席复制。
  • 不是内置域管理员组成员的用户,用于在同一域或不同域中的域控制器之间启动即席复制。

这些操作在修改目录分区的权限之前失败。

若要解决此问题,请使用以下任一方法:

  • 将用户添加到已被授予复制目录分区所需权限的现有组。 (添加域管理员用于在同一域中进行复制,或添加企业管理员组以触发不同域之间的即席复制。

  • 创建自己的组,授予该组在整个林中对目录分区所需的权限,然后将用户添加到这些组。

有关详细信息,请参阅 KB303972。 向有问题的安全组授予“修复无效的默认安全描述符”部分中表中列出的相同权限。

验证所需安全组中的组成员身份

在向正确的安全组授予对目录分区所需的权限后,请验证启动复制的用户是否在直接安全组或嵌套安全组中具有授予复制权限的有效成员身份。 要执行此操作,请执行以下步骤:

  1. 使用临时复制失败并返回 复制访问被拒绝的用户帐户登录。

  2. 请在命令提示符处运行以下命令:

    WHOAMI /ALL
    
  3. 验证已授予复制目录的安全组的成员身份更改相关目录分区的权限。

    如果用户已添加到上次用户登录后更改的允许组,请再次登录,然后再次运行 WHOAMI /ALL 该命令。

    如果此命令仍然不显示预期安全组的成员身份,请在本地计算机上打开提升的命令提示符窗口,并在命令提示符下运行 WHOAMI /ALL

    如果组成员身份在提升和非提升的命令提示符生成的输出之间 WHOAMI /ALL 有所不同,请参阅 针对基于 Windows Server 2008 的域控制器运行 LDAP 查询时,你将获取部分属性列表

  4. 验证是否存在预期的嵌套组成员身份。

    如果用户获得以嵌套组成员身份运行即席复制的权限,这是已直接授予复制权限的组的成员,请验证嵌套组成员身份链。 我们已看到临时 Active Directory 复制失败,因为域管理员和企业管理员组已从内置管理员组中删除。

RODC 复制

如果计算机启动的复制在 RODC 上失败,请验证是否已运行 ADPREP /RODCPREP ,并且是否在每个 NC 头上向 企业只读域控制器组授予了“复制目录更改 ”。

LDS 服务器的 NTDS 设置对象缺失

在 Active Directory 轻型目录服务(LDS)中,可以在 DBDSUTIL 中删除不清除元数据的对象。 它可能会导致此问题。 若要将实例还原到配置集,必须在受影响的服务器上卸载 LDS 实例,然后运行 ADAM 配置向导。

注意

如果已为实例添加了 LDAPS 支持,则必须再次在服务存储中配置证书,因为卸载该实例也会删除服务实例。