Windows Server 域控制器會在遇到 USN 復原時記錄 Directory Services 事件 2095

本文說明如何使用操作系統的映像式安裝,偵測及復原 Windows Server 域控制器是否不正確回復。

適用於: Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 編號: 875495

注意事項

本文僅適用於技術支持專員和IT專業人員。 如果您要尋找問題的協助,請 詢問 Microsoft 社群

摘要

本文說明由更新序號 (USN) 復原所造成的無訊息 Active Directory 複寫失敗。 當舊版 Active Directory 資料庫不正確地還原或貼到原處時,就會發生 USN 復原。

發生USN復原時,對某個域控制器上發生的物件和屬性的修改不會復寫到樹系中的其他域控制器。 因為復寫夥伴認為他們擁有最新的 Active Directory 資料庫複本,所以 Repadmin.exe 之類的監視和疑難解答工具不會報告任何復寫錯誤。

域控制器會在偵測到 USN 復原時,將 Directory Services 事件 2095 記錄在 Directory Services 事件記錄檔中。 事件訊息的文字會引導系統管理員前往本文,以了解復原選項。

事件 2095 記錄專案的範例

Log Name:      <Service name> Service  
Source:        Microsoft-Windows-ActiveDirectory_DomainService  
Date:          <DateTime>
Event ID:      2095  
Task Category: Replication  
Level:         Error  
Keywords:      Classic  
User:          <USER NAME>  
Computer:      SERVER.contoso.com  
Description:

During an Active Directory Domain Services replication request, the local domain controller (DC) identified a remote DC which has received replication data from the local DC using already-acknowledged USN tracking numbers.

Because the remote DC believes it is has a more up-to-date Active Directory Domain Services database than the local DC, the remote DC will not apply future changes to its copy of the Active Directory Domain Services database or replicate them to its direct and transitive replication partners that originate from this local DC.

If not resolved immediately, this scenario will result in inconsistencies in the Active Directory Domain Services databases of this source DC and one or more direct and transitive replication partners. Specifically the consistency of users, computers and trust relationships, their passwords, security groups, security group memberships and other Active Directory Domain Services configuration data may vary, affecting the ability to log on, find objects of interest and perform other critical operations.

To determine if this misconfiguration exists, query this event ID using http://support.microsoft.com or contact your Microsoft product support.

The most probable cause of this situation is the improper restore of Active Directory Domain Services on the local domain controller.

User Actions:

If this situation occurred because of an improper or unintended restore, forcibly demote the DC.

下列主題討論如何在 Windows Server 型域控制器中偵測及復原 USN 復原。

在執行 Windows Server 2012 和更新版本的域控制器上備份 Active Directory 的支援方法

Windows Server 2012 (GenID) 新增 Hyper-Visor 世代標識碼的支援。 這可讓虛擬客體偵測具有新標識符的磁碟區,並回應新的 GenID。 在 Active Directory 中,目錄服務會像從備份還原域控制器一樣回應。 然後,它會產生新的調用標識符。 藉由使用新的叫用標識符,資料庫實例可以安全地在樹系中重新輸入複寫。

這是 虛擬域控制器部署和設定中所涵蓋的其中一個案例。

在執行 Windows Server 2003 或更新版本 Windows Server 的域控制器上備份 Active Directory 的支援方法

在域控制器的生命週期中,您可能必須將 Active Directory 資料庫的內容還原或「復原」到已知的良好時間點。 或者,您可能必須將域控制器主機操作系統的元素,包括 Active Directory 復原到已知的良好點。

以下是您可以用來復原 Active Directory 內容的支援方法:

  • 使用 Active Directory 感知備份和還原公用程式,其使用 Microsoft 提供的 API 和 Microsoft 測試的 API。 這些 API 以非授權或授權方式還原系統狀態備份。 還原的備份應該來自相同的操作系統安裝,以及正在還原的相同實體或虛擬計算機。

  • 使用使用 Microsoft 磁碟區陰影複製服務 API 的 Active Directory 感知備份和還原公用程式。 這些 API 會備份並還原域控制器系統狀態。 磁碟區陰影複製服務支援在執行 Windows Server 2003、Windows Server 2008 或 Windows Server 2008 R2 的計算機上,建立單一或多個磁碟區的單一時間點陰影複製。 單一時間點陰影複製也稱為快照集。 如需詳細資訊,請在 Microsoft 支援服務 中搜尋「磁碟區陰影複製服務

  • 還原系統狀態。 評估此域控制器是否存在有效的系統狀態備份。 如果在復原的域控制器未正確還原之前進行有效的系統狀態備份,而且如果備份包含域控制器上最近所做的變更,請從最近的備份還原系統狀態。

還原 Active Directory 感知系統狀態備份時所發生的一般行為

Windows Server 域控制器會使用 USN 搭配調用標識符來追蹤必須在 Active Directory 樹系中的復寫夥伴之間復寫的更新。

來源域控制器會使用 USN 來判斷要求變更的目的地域控制器已收到哪些變更。 目的地域控制器會使用 USN 來判斷應該從來源域控制器要求哪些變更。

調用標識碼會識別在指定域控制器上執行之 Active Directory 資料庫的版本或具現化。

使用 Microsoft 已設計和測試的 API 和方法在域控制器上還原 Active Directory 時,調用標識碼會在還原的域控制器上正確重設。 樹系中的域控制器會收到叫用重設的通知。 因此,它們會據以調整其高水位線值。

導致 USN 復原的軟體和方法

使用下列環境、程式或子系統時,系統管理員可以略過 Microsoft 設計來在還原域控制器系統狀態時發生的檢查和驗證:

  • 啟動 Active Directory 域控制器,其 Active Directory 資料庫檔案已還原, (使用 Norton Ghost 之類的映像處理程式來複製) 就地。

  • 啟動域控制器先前儲存的虛擬硬碟映像。 下列案例可能會導致 USN 復原:

    1. 在虛擬主控環境中升級域控制器。
    2. 建立虛擬主控環境的快照集或替代版本。
    3. 讓域控制器繼續輸入複寫和輸出複寫。
    4. 啟動您在步驟 2 中建立的域控制器映像檔。
  • 造成此案例的虛擬化裝載環境範例包括 Microsoft Virtual PC 2004、Microsoft Virtual Server 2005 和 EMC VMWARE。 其他虛擬化的裝載環境也可能造成此案例。

  • 如需虛擬主控環境中域控制器支援條件的詳細資訊,請參閱在 虛擬主控環境中裝載 Active Directory 域控制器時要考慮的事項

  • 啟動位於磁碟區上的 Active Directory 域控制器,該磁碟區子系統會使用先前儲存的操作系統映射載入,而不需要還原 Active Directory 的系統狀態。

    • 案例 A:啟動位於磁碟區子系統上儲存多個磁碟區版本的多個 Active Directory 複本

      1. 升級域控制器。 在磁碟子系統上找出 Ntds.dit 檔案,該子系統可以儲存裝載 Ntds.dit 檔案的多個磁碟區版本。
      2. 使用磁碟子系統建立裝載域控制器 Ntds.dit 檔案的磁碟區快照集。
      3. 繼續讓域控制器從您在步驟 1 中建立的磁碟區載入 Active Directory。
      4. 啟動 Active Directory 資料庫在步驟 2 中儲存的域控制器。
    • 案例 B:從損毀鏡像中的其他磁碟驅動器啟動 Active Directory

      1. 升級域控制器。 找出鏡像磁碟驅動器上的 Ntds.dit 檔案。
      2. 中斷鏡像。
      3. 使用鏡像中第一個磁碟驅動器上的 Ntds.dit 檔案,繼續進行輸入復寫和輸出複寫。
      4. 使用鏡像中第二個磁碟驅動器上的 Ntds.dit 檔案來啟動域控制器。

即使未預期,這些案例中的每一個都可能導致域控制器透過不支援的方法復原到舊版的 Active Directory 資料庫。 復原 Active Directory 內容或 Active Directory 域控制器本機狀態的唯一支援方式,是使用 Active Directory 感知備份和還原公用程式來還原源自相同操作系統安裝和正在還原之相同實體或虛擬計算機的系統狀態備份。

Microsoft 不支援任何其他程式,其會擷取 Active Directory 域控制器系統狀態元素的快照集,並將該系統狀態的專案複製到操作系統映射。 除非系統管理員介入,否則這類程式會造成USN復原。 此 USN 復原會導致不正確還原域控制器的直接和可轉移復寫夥伴在其 Active Directory 資料庫中具有不一致的物件。

USN 復原的效果

發生USN復原時,先前看過USN的目的地域控制器不會對對象和屬性進行輸入複寫。

因為這些目的地域控制器認為它們是最新的,所以目錄服務事件記錄檔或監視和診斷工具不會報告任何復寫錯誤。

USN 復原可能會影響任何分割區中任何物件或屬性的複寫。 最常觀察到的副作用是,在復原域控制器上建立的使用者帳戶和計算機帳戶不存在於一或多個復寫夥伴上。 或者,復寫夥伴上沒有源自復原域控制器的密碼更新。

下列步驟顯示可能會導致 USN 復原的事件順序。 使用不支援的系統狀態還原及時回復域控制器系統狀態時,就會發生USN復原。

  1. 系統管理員會在網域中升級三個域控制器。 (在此範例中,域控制器是DC1、DC2和DC2,而網域是 Contoso.com.) DC1和DC2是直接復寫夥伴。 DC2 和 DC3 也是直接復寫夥伴。 DC1 和 DC3 不是直接復寫夥伴,而是透過 DC2 以轉移方式接收原始更新。

  2. 系統管理員會在 DC1 上建立 10 個對應至 USN 1 到 10 的用戶帳戶。 所有這些帳戶都會復寫到 DC2 和 DC3。

  3. 在 DC1 上擷取作業系統的磁碟映像。 此影像具有對象的記錄,這些對象對應至 DC1 上的本機 USN 1 到 10。

  4. 下列變更會在 Active Directory 中進行:

    • 步驟 2 中建立的所有 10 個使用者帳戶的密碼都會在 DC1 上重設。 這些密碼會對應至 USN 11 到 20。 所有 10 個更新的密碼都會復寫到 DC2 和 DC3。
    • DC1 上會建立10個對應至USN21到30的新用戶帳戶。 這10個用戶帳戶會復寫到DC2和DC3。
    • DC1 上會建立10個對應至USN31到40的新電腦帳戶。 這 10 個電腦帳戶會復寫到 DC2 和 DC3。
    • DC1 上會建立10個對應至USN 41到50的新安全組。 這10個安全組會復寫到DC2和DC3。
  5. DC1 發生硬體故障或軟體失敗。 系統管理員會使用磁碟映像處理公用程式,將步驟 3 中建立的操作系統映像複製到原處。 DC1 現在從具備 USN 1 到 10 知識的 Active Directory 資料庫開始。

    因為操作系統映射已就地複製,而且未使用還原系統狀態的支援方法,所以 DC1 會繼續使用建立資料庫初始復本的相同調用標識碼,而且所有變更最多可達 USN 50。 DC2 和 DC3 也會維護 DC1 的相同調用標識碼,以及 DC1 的 USN 50 最新 向量 。 (最新的向量是在指定目錄分割區的所有域控制器上發生之最新原始更新的目前狀態。)

    除非系統管理員介入,否則 DC2 和 DC3 不會輸入對應至來自 DC1 之本機 USN 11 到 50 的變更。 此外,根據 DC2 使用的調用標識碼,DC1 已經知道對應至 USN 11 到 50 的變更。 因此,DC2 不會傳送這些變更。 因為步驟 4 中的變更不存在於 DC1 上,所以登入要求會失敗,並出現「拒絕存取」錯誤。 發生此錯誤的原因可能是密碼不相符,或是當較新的帳戶隨機向 DC1 進行驗證時,帳戶不存在。

  6. 監視樹系中復寫健全狀況的系統管理員會注意下列情況:

    • 命令 Repadmin /showreps 行工具會報告 DC1 與 DC2 之間的雙向 Active Directory 複寫,以及 DC2 與 DC3 之間的雙向 Active Directory 複寫是否發生錯誤。 這種情況使得任何復寫不一致都難以偵測。

    • 執行 Windows Server 之域控制器的目錄服務事件記錄檔中的複寫事件,不會指出目錄服務事件記錄檔中的任何復寫失敗。 這種情況使得任何復寫不一致都難以偵測。

    • 當 DC2 和 DC3 上的網域目錄分割區與 DC1 上的數據分割相比較時,Active Directory 使用者和電腦 或 Active Directory 管理工具 (Ldp.exe) 顯示不同的物件計數和不同的物件元數據。 差異在於步驟 4 中對應至 USN 變更 11 到 50 的變更集合。

      注意事項

      在此範例中,不同的物件計數適用於用戶帳戶、計算機帳戶和安全組。 不同的物件元數據代表不同的用戶帳戶密碼。

    • 在步驟 2 中建立的 10 個使用者帳戶的使用者驗證要求偶爾會產生「拒絕存取」或「密碼不正確」錯誤。 發生此錯誤的原因可能是 DC1 上的這些用戶帳戶與 DC2 和 DC3 上的帳戶之間存在密碼不相符。 遇到此問題的用戶帳戶會對應至在步驟 4 中建立的用戶帳戶。 步驟 4 中的使用者帳戶和密碼重設不會復寫到網域中的其他域控制器。

  7. DC2 和 DC3 會開始輸入複寫原始更新,其對應於 DC1 大於 50 的 USN 編號。 此復寫通常會在沒有系統管理介入的情況下繼續進行,因為先前記錄的最新向量閾值 USN 50 已超過。 (USN 50 是 DC2 和 DC3 上 DC1 在 DC1 離線並還原之前所記錄的最新向量 USN。) 不過,不支援的還原之後,對應至原始 DC1 上 USN 11 到 50 的新變更將永遠不會復寫至 DC2、DC3 或其可轉移的復寫夥伴。

雖然步驟 6 中提及的徵兆代表 USN 復原對使用者和計算機帳戶可能產生的一些影響,但 USN 復原可防止任何 Active Directory 磁碟分區中的任何物件類型進行復寫。 這些物件類型包括下列專案:

  • Active Directory 複寫拓撲和排程

  • 樹系中存在域控制器,以及這些域控制器所持有的角色

    注意事項

    這些角色包括全域編錄、RID) 配置 (相對標識符,以及作業主機角色。 (Operations 主要角色也稱為彈性單一主機作業或 FSMO.)

  • 樹系中存在網域和應用程式分割區

  • 安全組及其目前群組成員資格的存在

  • Active Directory 整合式 DNS 區域中的 DNS 記錄註冊

USN 漏洞的大小可能代表使用者、計算機、信任、密碼和安全組的數百、數千或甚至數萬個變更。 (USN 漏洞是由進行還原系統狀態備份時所存在的最高 USN 數目,以及在復原域控制器離線之前在回覆域控制器上建立的原始變更數目之間的差異所定義。)

偵測 Windows Server 域控制器上的 USN 復原

由於難以偵測 USN 復原,因此當來源域控制器將先前認可的 USN 號碼傳送至目的地域控制器,但未對應的調用標識符變更時,Windows Server 2003 SP1 或更新版本的域控制器會記錄事件 2095。

為了避免在不正確還原的域控制器上建立 Active Directory 的唯一原始更新,Net Logon 服務會暫停。 當 Net Logon 服務暫停時,使用者和電腦帳戶無法在不會輸出複寫這類變更的域控制器上變更密碼。 同樣地,Active Directory 管理工具在更新 Active Directory 中的物件時,會偏好狀況良好的域控制器。

在域控制器上,如果下列條件成立,則會記錄類似下列的事件訊息:

  • 來源域控制器會將先前認可的USN號碼傳送至目的地域控制器。
  • 調用標識碼中沒有對應的變更。

這些事件可能會擷取到目錄服務事件記錄檔中。 不過,系統管理員在觀察到它們之前,可能會覆寫它們。

您可能會懷疑已發生 USN 復原。 不過,您在目錄服務事件記錄檔中看不到相互關聯的事件。 在此案例中,請檢查 Dsa Not Writable 登錄專案。 此專案提供已發生 USN 復原的鑑識證據。

  • 登錄子機碼: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDS\Parameters
  • 登錄專案:Dsa 無法寫入
  • 值:0x4

刪除或手動變更 Dsa 不可寫入登錄 專案值,會使復原域控制器處於永久不支持的狀態。 因此,不支援這類變更。 具體而言,修改值會移除USN復原偵測程式代碼所新增的隔離行為。 復原域控制器上的Active Directory磁碟分區將永久與相同 Active Directory 樹系中的直接和可轉移復寫夥伴不一致。

從 USN 復原復原

有三種方法可從USN復原復原。

參考資料