Active Directory 複寫錯誤 5 - 拒絕存取

本文說明 AD 作業失敗並出現錯誤 5:拒絕存取的情況的徵兆、原因和解決步驟。

適用:Windows Server 2012 R2
原始 KB 編號: 2002013

徵狀

  1. DCDIAG 報告 Active Directory 複寫測試失敗,錯誤狀態代碼 (5) : 拒絕存取

    Testing server: <site name><destination dc name>  
    Starting test: Replications  
    Replications Check  
    [Replications Check,<destination DC name] A recent replication attempt failed:  
    From <source DC> to <destination DC>  
    Naming Context: <directory partition DN path>  
    The replication generated an error (5):  
    Access is denied.  
    The failure occurred at <date> <time>.  
    The last success occurred at <date> <time>.
    3 failures have occurred since the last success.
    
  2. DCDIAG 報告 DsBindWithSpnEx () 失敗,錯誤 5。

  3. REPADMIN.EXE 報告上次復寫嘗試失敗,狀態為 5。

    REPADMIN 通常會指出狀態 5 的命令包含但不限於:

    • REPADMIN /KCC
    • REPADMIN /REPLICATE
    • REPADMIN /REPLSUM
    • REPADMIN /SHOWREPL
    • REPADMIN /SHOWREPS
    • REPADMIN /SYNCALL

    顯示從 CONTOSO-DC2 到 CONTOSO-DC1 的輸入複寫失敗並發生複寫存取遭拒錯誤的範例輸出REPADMIN /SHOWREPS如下所示:

    Default-First-Site-Name\CONTOSO-DC1  
    DSA Options: IS_GC  
    Site Options: (none)  
    DSA object GUID: b6dc8589-7e00-4a5d-b688-045aef63ec01  
    DSA invocationID: b6dc8589-7e00-4a5d-b688-045aef63ec01  
    
    ==== INBOUND NEIGHBORS ======================================  
    
    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 5 (0x5):  
    Access is denied.  
    <#> consecutive failure(s).  
    Last success @ <date> <time>.
    
  4. 狀態為 5 的 NTDS KCC、NTDS 一般或 Microsoft-Windows-ActiveDirectory_DomainService 事件會記錄在目錄服務事件記錄檔中。

    通常會指出 8524 狀態的 Active Directory 事件包括但不限於:

    事件 來源 事件字串
    NTDS 一般 1655 Active Directory 嘗試與下列全域編錄通訊,但嘗試失敗。
    NTDS KCC 1925 嘗試建立下列可寫入目錄分割區的復寫連結失敗。
    NTDS KCC 1926 嘗試使用下列參數建立唯讀目錄分割區的複寫連結失敗。
  5. Active Directory 月臺和服務中的 replicate now 命令會傳回 Access 遭到拒絕

    以滑鼠右鍵按兩下來源 DC 的連線物件, 然後選擇複寫現在 會失敗,並 拒絕存取。 螢幕錯誤訊息正文和螢幕快照如下所示:

  6. 對話框標題文字: 立即複寫

    對話訊息正文:

    嘗試將命名內容 <%directory partition name%> 從域控制器來源 DC> 同步處理至域控制器<<目的地 DC> 時,發生下列錯誤:拒絕存取

    作業將不會繼續

    對話框中的按鈕: 確定

    [立即復寫] 對話框中顯示存取遭拒錯誤。

原因

錯誤 5 的有效根本原因: 拒絕存取 包括:

  1. 登錄中的 RestrictRemoteClients 設定值為 2
  2. [ 從網络存取這部計算機 ] 用戶權力未授與 企業域控制器 群組或觸發立即復寫的系統管理員。
  3. 目的地 DC 登錄中的 CrashOnAuditFail 設定值為 2
  4. 目的地 DC 和來源 DC 所使用的金鑰發佈中心 (KDC) 之間有時間差異。 時間差異超過預設網域原則中定義的 Kerberos 所允許的時間扭曲上限。
  5. 來源和目的地 DC 之間有 SMB 簽署不符的情況。
  6. 來源和目的地 DC 之間有 LMCompatiblity 不符的情況。
  7. 服務主體名稱因為簡單的復寫延遲或復寫失敗而未註冊或不存在。
  8. UDP 格式的 Kerberos 封包正由路由器和交換器等網路基礎結構裝置分散。
  9. 來源或目的地DC上的安全通道無效。
  10. 信任鏈結中的信任關係已中斷或無效。
  11. 登錄區段中的 HKLM\System\CurrentControlSet\Control\LSA\Kerberos\DomainsKDCNames 設定不正確地包含本機 Active Directory 功能變數名稱。
  12. 某些網路適配器具有 「大型傳送卸除 」功能。
  13. 在來源或目的地DC上使用迷你防火牆網路適配器篩選器驅動程式的防病毒軟體。

Active Directory 錯誤和事件,例如此 KB 的徵兆區段中所述的錯誤和事件,也可能會失敗,並出現錯誤 8453,並拒絕類似的錯誤字串 復寫存取。 下列根本原因可能導致 AD 作業失敗,並出現 8453: 複寫存取遭到拒絕 ,但不會造成失敗,錯誤 5: 複寫遭到拒絕

  1. 複寫 目錄變更 許可權不允許 NC 標頭。
  2. 開始復寫的安全性主體不是已授與 複寫目錄變更之群組的成員。
  3. 屬性中遺漏旗標, UserAccountControl 包括 SERVER_TRUST_ACCOUNTTRUSTED_FOR_DELEGATION
  4. RODC 升級為網域,而不需要第一次執行 ADPREP /RODCPREP

解決方案

AD 複寫失敗,錯誤 5 有多個根本原因。 使用下列工具一開始解決此問題:

  • DCDIAG
  • DCDIAG /TEST:CheckSecurityError
  • 公開常見問題的 NETDIAG

如果仍然無法解決,請以最常見、最不複雜、最不具干擾性的順序,將已知原因清單移至最不常見、最複雜、最具干擾性的順序。

執行 DCDIAG、DCDIAG /TEST:CheckSecurityError 和 NETDIAG

一般 DCDIAG 會執行多個測試。

DCDIAG /TEST:CheckSecurityErrors 已撰寫以執行特定測試 (包括 SPN 註冊檢查) ,以針對 Active Directory 作業復寫失敗進行疑難解答,

  • 錯誤 5: 拒絕存取
  • 錯誤 8453: 複寫存取遭到拒絕

DCDIAG /TEST:CheckSecurityErrors 不會在 DCDIAG 的預設執行過程中執行。

  1. 在目的地DC上執行 DCDIAG
  2. 執行 DCDIAG /TEST:CheckSecurityError
  3. 執行 NETDIAG
  4. 解決 DCDIAG 和 NETDIAG 所識別的任何錯誤。 重試先前失敗的復寫作業。 如果仍然失敗,請繼續進行。

很長的一環

  1. RestrictRemoteClients 值設定為 2

    這個登錄值 RestrictRemoteClients 會設定為 中的 0x2HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC值。

    若要解決此問題:

    1. 停用強制執行此設定的原則。

    2. 刪除登錄 RestrictRemoteClients 設定並重新啟動。

      如需此設定的詳細資訊,請參閱 RestrictRemoteClients 登錄機碼已啟用

      登錄 RestrictRemoteClients 值是由下列組策略設定所設定:

      計算機設定>系統管理範>本系統>遠端過程調用 - 未經驗證 RPC 用戶端的限制

      如果原則設定已啟用,且設定為 [已驗證但不例外],則會套用 0x2 的登錄值。

      此選項只允許已驗證的 RPC 用戶端連線到套用原則設定之電腦上執行的 RPC 伺服器。 它不允許例外狀況。 如果您選取此選項,系統就無法使用 RPC 接收遠端匿名呼叫。 此設定絕對不應該套用至域控制器。

  2. 取 [從網络許可權存取這部計算機 ]。

    在 Windows 的預設安裝中,預設域控制器原則會連結到域控制器 OU 容器。 它會將 網路使用者的存取權 授與下列安全組:

    本機原則 預設域控制器原則
    系統管理員 系統管理員
    已驗證的使用者 已驗證的使用者
    所有人 所有人
    企業域控制器 企業域控制器
    [Pre-Windows 2000 compatible Access] [Pre-Windows 2000 compatible Access]

    如果 Active Directory 作業失敗,並出現錯誤 5: 存取遭到拒絕,請確認:

    • 上述清單中的安全組已獲得預設域控制器原則中 網路許可權的存取 權。
    • 域控制器電腦帳戶位於域控制器 OU 中。
    • 默認域控制器原則會連結至域控制器 OU 或裝載計算機帳戶的替代 OU。
    • 組策略正在目前記錄錯誤 5 的目的地域控制器上套用。
    • 拒絕從網路用戶權力存取這部計算機 尚未啟用或未參考失敗的直接或巢狀群組。
    • 原則優先順序、封鎖繼承、WMI 篩選等不會阻止原則設定套用至DC角色計算機。

    原則設定可以使用 RSOP 進行驗證。MSC,但 GPRESULT /Z 是慣用的工具,因為它更精確。

    注意事項

    本機原則的優先順序高於網站、網域和 OU 中定義的原則。

    注意事項

    系統管理員通常會在預設域控制器原則中,從網路直接從網路移除企業域控制器每個人群組。 拿掉這兩者是嚴重的。 沒有任何理由從此許可權移除 企業域控制器 ,因為只有DC是此群組的成員。

  3. CrashOnAuditFail = 2

    當 = 的值為 2HKLM\System\CurrentControlSet\Control\LSA\CrashOnAuditFail,AD 複寫會失敗,

    CrashOnAduitFail啟用 [稽核:如果無法記錄 群組原則 中的安全性稽核設定,且本機安全性事件記錄檔已滿時,就會觸發值 2

    啟用稽核時,Active Directory 域控制器特別容易達到最大容量安全性記錄檔,而且安全性事件記錄檔的大小已受限於 [請勿覆寫事件 (手動清除記錄檔) 或在 事件檢視器 或組策略對等項目中視需要覆寫選項。

    使用者動作:

    如果 HKLM\System\CCS\Control\LSA\CrashOnAuditFail = 為 2

    • 清除安全性事件記錄檔 (視需要儲存至替代位置)
    • 重新驗證安全性事件記錄檔上的任何大小條件約束,包括以原則為基礎的設定。
    • 重新建立 CrashOnAuditFail (REG_DWORD) = 1
    • 重新開機

    CrashOnAuditFail看到值為 01 時,某些 CSS 工程師已解決存取遭拒錯誤,方法是再次清除安全性事件記錄檔、刪除the CrashOnAuditFail登錄值,然後重新啟動目的地 DC。

    相關內容: 管理稽核和安全性記錄

  4. 過度的時間扭曲

    默認網域原則中的 Kerberos 原則設定允許在 KDC 域控制器與 Kerberos 目標伺服器之間的系統時間 (預設值) 5 分鐘的差異,以防止重新執行攻擊。 某些檔指出用戶端與 Kerberos 目標之間的時間必須彼此相隔五分鐘內的時間。 其他則指出,在 Kerberos 驗證的內容中,重要的時間是呼叫端所使用的 KDC 與 Kerberos 目標上的時間之間的差異。 此外,Kerberos 並不在意相關 DC 上的系統時間符合目前的時間。 它只在意 KDC 和目標 DC 之間的相對時間差異是在 Kerberos 原則所允許的最大時間扭曲 (預設值 5 分鐘或更少) 。

    在 Active Directory 作業的內容中,目標伺服器是目的地 DC 所連絡的來源 DC。 Active Directory 樹系中的每個域控制器 (目前執行 KDC 服務) 是潛在的 KDC。 因此,您必須針對來源 DC 考慮所有其他 DC 上的時間精確度,包括目的地 DC 本身的時間。

    檢查時間精確度的兩種方法包括:

    C:\> DCDIAG /TEST: CheckSecurityError
    

    AND

    C:\> W32TM /MONITOR
    

    在失敗複寫要求時,在目的地DC上尋找LSASRV 40960事件,此要求會使用擴充錯誤來引用來源DC的 GUIDed CNAME 記錄:

    0xc000133:主域控制器的時間與備份域控制器或成員伺服器的時間不同,數量太大。

    網路追蹤會擷取連線到來源DC (上共用資料夾的目的地電腦,以及其他作業) 可能會顯示螢幕上發生 擴充錯誤的錯誤。 但網路追蹤會顯示:

    來自來源 DC 的 KerberosV5:TGS 要求領域 > TGS 要求
    KerberosV5:KRB_ERROR - KRB_AP_ERR_TKE_NVV (33) > TGS 回應,其中KRB_AP_ERR_TKE_NYV > 對應至票證尚未有效

    TKE_NYV回應表示 TGS 票證上的日期範圍比目標上的時間還新,表示時間偏差過長。

    注意事項

    W32TM /MONITOR 只會檢查測試計算機網域中 DC 的時間,因此您必須在每個網域中執行此作業,並比較網域之間的時間。

    注意事項

    如果發現系統時間不正確,請努力找出原因,以及可以採取哪些動作來防止不正確的時間。 樹系根 PDC 是否已設定外部時間來源? 參考時間來源是否在線且可在網路上使用? 時間服務是否正在執行? DC 角色電腦是否設定為使用NT5DS階層來來源時間?

    注意事項

    當 Windows Server 2008 R2 目的地 DC 的時差太大時,復 寫現在 會在 DSSITE 中命令。MSC 失敗,並出現螢幕上的錯誤 客戶端與伺服器之間有時間和/或日期差異。 此錯誤字串會對應至具有符號錯誤名稱的 1398 十進位/0x576 十六進位錯誤ERROR_TIME_SKEW

    相關內容: 設定時鐘同步處理容錯以防止重新執行攻擊

  5. SMB 簽署不符

    SMB 簽署的最佳相容性矩陣是由四個原則設定及其登錄型對等專案所定義:

    原則設定 登錄路徑
    Microsoft 網路用戶端:如果伺服器同意) ,則以數位方式簽署通訊 ( HKLM\SYSTEM\CCS\Services\Lanmanworkstation\Parameters\Enablesecuritysignature
    Microsoft 網路用戶端:數位簽署通訊 (一律) HKLM\SYSTEM\CCS\Services\Lanmanworkstation\Parameters\Requiresecuritysignature
    Microsoft 網路伺服器:如果伺服器同意) ,則以數位方式簽署通訊 ( HKLM\SYSTEM\CCS\Services\Lanmanserver\Parameters\Enablesecuritysignature
    Microsoft 網路伺服器:數位簽署通訊 (一律) HKLM\SYSTEM\CCS\Services\Lanmanserver\Parameters\Requiresecuritysignature

    將焦點放在目的地和來源域控制器之間的SMB簽署不相符,其中傳統案例是已啟用或需要一端設定,但另一端已停用。

    注意事項

    內部測試顯示SMB簽署不相符,導致複寫失敗,錯誤為1722: RPC Server 無法使用

  6. UDP 格式化 Kerberos 封包片段

    網路路由器和交換器可能會分割或完全卸除 Kerberos 和 EDNS0 所使用的大型 UDP 格式網路封包, (DNS) 。 相比較於執行 Windows Server 2008 和 2008 R2 的電腦,執行 Windows 2000 和 Windows 2003 操作系統系列的電腦容易受到 UDP 片段的影響。

    使用者動作:

    • 從目的地DC的主控台,依其完整電腦名稱偵測來源DC,以識別網路路由支援的最大封包。

      c:\> Ping <source DC hostname.>. <fully qualified computer name> -f -l 1472
      
    • 如果最大非片段封包小於 1,472 個字節,則 (依喜好設定)

      • 修改您的網路基礎結構,以適當地支援大型 UDP 框架。 它可能需要在路由器、交換器或防火牆上進行韌體升級或設定變更。

        OR

      • 將目的地 DC) 上的 maxpacketsize (設為 PING -f -l 命令識別的最大封包,以少於 8 個字節來處理 TCP 標頭,然後重新啟動修改過的 DC。

        OR

      • 將目的地 DC) 上的 maxpacketsize (設定為 “1” 的值,這會觸發 Kerberos 使用 TCP。 重新啟動修改過的DC,讓變更生效。

重試失敗的 Active Directory 作業

  1. 無效的安全通道/密碼不相符

    使用或netdom verify驗證安全通道nltest /sc: query

    如需使用 NETDOM / RESETPWD重設目的地 DC 密碼的詳細資訊,請參閱 如何使用 Netdom.exe 重設 Windows Server 域控制器的電腦帳戶密碼

    使用者動作:

    • 停用正在重新啟動之DC上的 KDC 服務。

    • 從目的地 DC 的 控制台,執行 NETDOM RESETPWD 以重設目的地 DC 的密碼:

      c:\>netdom resetpwd /server: server_name /userd: domain_name \administrator /passwordd: administrator_password
      
    • 如果在相同的網域中) 輸入複寫目的地DC新密碼的知識,請確定可能的 KDC 和來源 DC (。

    • 重新啟動目的地 DC 以排清 Kerberos 票證,然後重試複寫作業。

  2. 無效的信任

    如果AD複寫在不同網域中的DC之間失敗,請確認信任路徑上的信任關係健康情況

    如果可以,請使用 NETDIAG 信任關聯 性測試來檢查是否有中斷的信任。 NETDIAG 會使用下列文字來識別中斷的信任:

    信任關係測試。 . . . . . :測試失敗,無法確保 domainname <> 的 DomainSid 正確無誤。 [嚴重]網域 <名稱> 的安全通道已中斷。 [<%variable status code%>]

    例如,您有包含下列專案的多網域樹系:

    • 根域 Contoso.COM
    • 子網域 B.Contoso.COM
    • 子系網域 C.B.Contoso.COM
    • 相同樹系中的樹狀結構網域Fabrikam.COM

    如果在子系網域和樹狀架構網域C.B.Contoso.COMFabrikam.COM中的DC之間復寫失敗,請依照下列順序確認信任健康情況:

    • 介於和之間C.B.Contoso.COMB.Contoso.COM
    • 介於和之間B.Contoso.COMContoso.COM
    • 介於和之間Contoso.COMFabrikam.COM

    如果目的地網域之間存在短期信任,則不需要驗證信任路徑鏈結。 請改為驗證目的地和來源網域之間的最簡訊任。

    使用信賴網域物件檢查信任網域物件的最近密碼變更 Repadmin /showobjmeta * \<DN path for TDO in question> (TDO) 確認目的地 DC 正在轉移輸入複寫可能發生信任密碼變更的可寫入網域目錄磁碟分區。

    重設信任的指令:

    • 從根域 PDC:

      netdom trust <Root Domain> /Domain:<Child Domain> /UserD:CHILD /PasswordD:* /UserO:ROOT /PasswordO:* /Reset /TwoWay
      
    • 從子域 PDC:

      netdom trust <Child Domain> /Domain:<Root Domain> /UserD:Root/PasswordD:*/UserO:Child /PasswordO:* /Reset /TwoWay
      
  3. 無效的 Kerberos 領域 - 撰寫文章時,PolAcDmN / PolPrDmN (沒有重現)

    域控制器複製的 功能無法正常運作

    1. 啟動 [登錄編輯程式]。
    2. 在左邊窗格中,展開 [安全性]
    3. 在 [ 安全性] 功能表上,選取 [權 ] 以授與 [系統管理員] 本機群組 [安全性登錄區及其子容器和物件的完整控制權]。
    4. 尋找名為 HKEY_LOCAL_MACHINE\SECURITY\Policy\PolPrDmN 的機碼。
    5. 在登錄 編輯器 的右窗格中,選<取 [沒有名稱>:REG_NONE一次] 專案。
    6. 在 [ 檢視] 功能表上,選取 [顯示二進位數據]。 在對話框的 [格式] 區段中,選取 [ 位元組]
    7. 功能變數名稱會顯示為 [二進位資料] 對話方塊右側的字串。 功能變數名稱與 Kerberos 領域相同。
    8. 找出 HKEY_LOCAL_MACHINE\SECURITY\Policy\PolACDmN 登錄機碼。
    9. 在登錄 編輯器 的右窗格中,按兩下 <[沒有名稱>:REG_NONE專案。
    10. 在 [二進位 編輯器] 對話框中,貼上來自 PolPrDmN 的值。 (來自 PolPrDmN 的值將會是 NetBIOS 網域名稱)。
    11. 重新開機網域控制器。
  4. 無效的 Kerberos 領域 - KdcNames

    使用者動作:

    • 在目的地DC的控制臺上,執行REGEDIT。
    • 在登錄中找出下列路徑: HKLM\system\ccs\control\lsa\kerberos\domains
    • 針對 下的HKLM\system\ccs\control\lsa\kerberos\domains每個<完整網域>,請確認的KdcNames值參照到有效的外部 Kerberos 領域,而非本機網域或相同 Active Directory 樹系中的另一個網域。
  5. 已啟用 IPv4 大型傳送卸除 的網路適配器:

    使用者動作:

    • 開啟 網路配接器 卡片屬性。
    • 取 [設定] 按鈕。
    • 選取 [進階 ] 索引標籤。
    • 停用 IPv4 大型傳送卸除
    • 重新啟動。

資料收集

如果您需要 Microsoft 支援的協助,建議您依照 使用 TSS 針對 Active Directory 複寫問題收集資訊中所述的步驟來收集資訊。