共用方式為


Active Directory 複寫事件標識碼 2108 和 1084 發生在輸入複寫 Active Directory 網域服務

本文提供您取得事件標識碼 2108 和 1084 時發生 Active Directory 網域服務 (AD DS) 輸入複寫的問題的解決方案。

原始 KB 編號: 837932

徵兆

發生 Active Directory 網域服務 的輸入複寫時,目的地域控制器會在目錄服務記錄檔中記錄下列事件:

Event ID 1084: Internal event: Active Directory Domain Services could not update the following object with changes received from the following source directory service. This is because an error occurred during the application of the changes to Active Directory Domain Services on the directory service.
Object: CN=<cn path>  
Object GUID: <objectguid>  
Source directory service: NTDSA._msdcs.<forest root DNS domain name>  
Synchronization of the directory service with the source directory service is blocked until this update problem is corrected.  
This operation will be tried again at the next scheduled replication.  
User Action:  
Restart the local computer if this condition appears to be related to low system resources (for example, low physical or virtual memory).  
Additional Data:  
Error value: <error code> <error string>

注意

在文字中 Error value , <錯誤碼> 和 <錯誤字串> 代表記錄項目中顯示的實際值。

Event ID 2108: This event contains REPAIR PROCEDURES for the 1084 event which has previously been logged. This message indicates a specific issue with the consistency of the Active Directory Domain Services database on this replication destination. A database error occurred while applying replicated changes to the following object. The database had unexpected contents, preventing the change from being made.  
Object: CN=<cn path>  
Object GUID: <objectguid>   
Source directory service: NTDSA._msdcs.<forest root DNS domain name>

注意

這是事件 1084 的合作夥伴事件。

原因

當域控制器無法將交易式變更寫入 Active Directory 資料庫的本機複本時,就會發生這些事件。

解決方法

若要解決此問題,請遵循下列步驟。 在進行變更的每個步驟之後,重試複寫作業。

  1. 請確定裝載 Active Directory 資料庫的磁碟區上有足夠的可用磁碟空間,然後重試作業。 請遵循下列步驟來釋放額外的磁碟空間:

    1. 將不相關的檔案移至另一個磁碟區。

    2. 執行系統狀態備份。 此程式會減少事務歷史記錄檔的大小。 如需詳細資訊,請參閱 如何使用備份功能來備份和還原數據

    3. 執行 Active Directory 的離線重組。 如需詳細資訊,請參閱 如何執行 Active Directory 資料庫的離線重組。

  2. 請確定裝載 Ntds.dit 檔案和事務歷史記錄檔的實體磁碟驅動器並未開啟 NTFS 檔系統壓縮。 若要確認這一點,請以滑鼠右鍵按兩下 [我的電腦] 中的驅動器號,然後確定 未選取 [壓縮磁碟驅動器以節省磁碟空間] 複選框。

  3. 請確定裝載 Ntds.dit 檔案和事務歷史記錄檔的實體磁碟驅動器會特別排除在遠端和本機防病毒軟體程式中。 如需詳細資訊,請參閱

  4. 如果目的地域控制器包含全域編錄,而且錯誤發生在其中一個只讀分割區中,請使用下列其中一種方法來協助解決問題:

    • 方法 1:使用Repadmin.exe工具的重新裝載選項來重新裝載受影響的分割區。

      Repadmin.exe工具會安裝在具有域控制器角色的電腦上,並與成員工作站和伺服器上的遠端伺服器管理工具 (RSAT) 一起安裝。 若要這樣做,請在命令提示字元中輸入下列命令,其中 domain_controller 是目的地域控制器的名稱,good_source_domain_controller_name是另一個域控制器的名稱:

      repadmin /rehost domain_controller naming_context good_source_domain_controller_name
      
    • 方法 2:設定域控制器,使其不再是全域編錄伺服器。 執行下列步驟:

      1. 選取 [開始],指向 [ 系統管理工具],然後選取 [ Active Directory 月臺和服務]。
      2. 找出 default-First-Site-Name\ 伺服器\ domain_controller_name\ NTDS 設定子樹。
      3. 以滑鼠右鍵按一下 [NTDS 設定],然後選取 [屬性]
      4. 選取即可清除 [ 全域編錄 ] 複選框,然後選取 [ 確定]。
    • 方法 3

      如果程式分割區發生錯誤,請使用 Ntdsutil.exe 工具來變更裝載程式分割區的複本。

  5. 使用第三方公用程式,例如 ProcMon 公用程式,來判斷程式或使用者是否正在存取 Active Directory 資料庫、事務歷史記錄檔或 Edp.tmp 檔案。 如果檔案存取活動存在,請停止負責活動的服務。 如需 ProcMon 公用程式的詳細資訊,請參閱 ProcMon

  6. 判斷問題是否與目的地域控制器上 Active Directory 物件的父代有關。 若要這樣做,請遵循下列步驟:

    1. 在來源域控制器上,暫時將事件 1084 中所參考的物件移至組織單位 (OU) 容器。 OU 必須與目前的容器無關。 例如,將物件移至網域根目錄的新容器。

    2. 如果您在移動物件之後完成複寫,請將物件移回其原始容器。

    3. 強制安全性描述元傳播器重建存在於來源和目的地域控制器上之資料庫中的物件容器祖系。 若要這樣做,請遵循下列步驟:

      1. 在已安裝 RSAT 的域控制器或 Windows 用戶端上開啟提升許可權的命令提示字元。

      2. 輸入 ldp.exe DC 名稱>,然後按 Enter。<

      3. 選取 [連線>連線],然後輸入您要連線的伺服器名稱。

        注意

        您將透過 Active Directory 的埠 389 連線。

      4. 選取 [連線>系結],然後輸入您的系統管理使用者名稱、密碼和網域。 (您必須使用網域管理員或企業系統管理員認證。選取 [ 確定]。

      5. 在 [ 瀏覽] 功能表上,選取 [ 修改]。 將 DN 文字框保留空白。 在 [ 屬性 ] 文本框中,輸入 FixUpInheritance。 在 [值] 文本框中選取 [是]。

      6. 在 [ 作業 ] 區域中,選取 [ 新增]。

      7. 選取 Enter 以填入 [輸入清單 ] 區域。

        注意

        在 [ 項目清單] 區域中, [新增]fixupinheritance:yes 隨即出現。

      8. 選取執行

        注意

        右窗格現在會顯示 [ 修改] 狀態,並啟動安全性描述元傳播器。 安全性描述元傳播器的運行時間取決於 Active Directory 資料庫的大小。 當 NTDS Performance 物件中的 DS 安全性傳播事件計數器傳回零時,就會完成此程式。

      9. 選取 [關閉>連線>結束]。

  7. 在來源域控制器上,於命令提示字元輸入 repadmin /showmeta distinguished_name_path ,然後檢視事件 1084 中所參考之辨別名稱路徑的物件元數據。 在目的地域控制器上重複此步驟。 尋找包含但不限於下列專案的不一致值:

    • 對象上出現的屬性名稱及數目不正確
    • 不正確的原始時間或日期戳記
    • 不正確的本機更新序號 (USN)

    不正確的值可能表示裝載物件的資料庫頁面發生問題。

    若要在辨別名稱路徑參考即時物件時使用 Repadmin.exe 工具,請在命令提示字元中輸入下列命令:

    repadmin /showmeta remote_domain_controller_name distinguished_name_path_of_reference _object
    

    如果對象位於已刪除的物件容器中,或您無法使用Repadmin.exe工具來尋找物件,請使用物件的 GUID 參考來尋找物件。 此 GUID 會在事件 1084 中參考。 若要這樣做,請在命令提示字元中輸入下列命令:

    repadmin /showmeta remote_domain_controller_name "GUID_for_the_object that_is_referenced_in_Event_ID_1084"
    

    例如,如果 Event 1084 和 Event 2108 參考 GUID 為 b49cd496-98a2-4500-bb08-58550c2f79ac 的物件,請輸入 repadmin /showmeta "<GUID=b49cd496-98a2-4500-bb08-58550c2f79ac>"

    注意

    需要引號和括號。

  8. 使用Ntdsutil.exe工具來在來源域控制器上執行 Active Directory 資料庫的完整性檢查。

    在目錄服務還原模式 (DSRM) 中啟動電腦之前,請先取得離線系統管理員帳戶和 DSRM 帳戶的密碼。 如果您的 DSRM 帳戶密碼是由 Windows LAPS 管理,請使用 Get-LapsADPassword 取得密碼。

    如果您不知道系統管理員帳戶密碼,請先重設目錄服務還原模式密碼,再在此模式中啟動。

    使用 Ntdsutil Set Directory Services Restore Mode Password 命令。

    如需如何變更密碼的詳細資訊,請參閱當您啟動 Windows 或 SBS 型域控制器時,「目錄服務無法啟動」錯誤訊息。

  9. 重新啟動來源域控制器,然後按 F8 以啟動目錄服務還原模式。 在命令提示字元中輸入 ntdsutil files integrity,然後按下 Enter

    注意

    此命令會確認資料庫的完整性。

    • 如果 Ntdsutil 工具報告資料庫已損毀,而且您在來源域控制器上有命名內容的複本,請強制降級來源域控制器,然後在確認驅動程式、韌體和裝載 Active Directory 資料庫和事務歷史記錄檔的實體磁碟驅動器完整性之後重新升級。

    • 如果資料庫已損毀,且來源域控制器上沒有命名內容的複本存在,請還原最新的系統狀態。 使用NTDSutil.exe工具來再次確認資料庫的完整性。 如果您仍然收到損毀訊息,請還原較舊的備份,直到您可以確認域控制器的完整性為止。

    • 如果資料庫仍然損毀,請還原最新的系統狀態備份,然後在命令提示字元輸入:

      ntdsutil files recover
      

      使用NTDSutil.exe工具再次確認資料庫的完整性。 如果資料庫通過完整性檢查,請執行磁碟分區的脫機重組。 如需詳細資訊,請參閱 如何執行 Active Directory 資料庫的離線重組。

      若要執行資料庫的完整性檢查,請在命令提示字元中輸入下列命令,然後按 Enter,其中 database_name 是 Active Directory 資料庫的名稱:

      esentutl.exe /g database_name
      

      最後,使用 [啟動 Windows 一般] 選項重新啟動計算機,然後重試從來源域控制器復寫到受影響的目的地域控制器。

  10. 如果這些步驟沒有成功,復寫錯誤會繼續,請降級域控制器、確認實體磁碟驅動器和裝載 Ntds.dit 檔案和磁碟子系統的磁碟區完整性,然後再次升級域控制器。 使用相同的計算機名稱。

  11. 使用 ntdsutil files compact 命令來執行 Active Directory 資料庫的離線重組。 如需詳細資訊,請參閱 執行 Active Directory 資料庫的 離線重組。

  12. 在命令提示字元中輸入下列命令,然後按 Enter

    ntdsutil "semantic database analysis" "go"
    

    注意

    此範例中的引號必須使用單一命令行自變數來執行語意資料庫分析命令。

    如果報告錯誤,請輸入 ntdsutil go fixup,然後按 Enter

資料收集

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

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。