當伺服器上遇到 USN 復原時,Windows 伺服器網域控制站會記錄目錄服務事件2095

本文說明如何在使用映射型安裝作業系統的情況正確復原 Windows 伺服器網域控制站時,偵測和復原。

適用于:  WindowsServer 2019,Windows Server 2016,Windows Server 2012 R2
原始 KB 編號:   875495

注意

本文僅適用于技術支援代理商和 IT 專業人員。 如果您正在尋找問題的說明,請詢問 Microsoft Community

摘要

本文說明因更新順序編號 (USN) 復原而導致的無訊息的 Active Directory 複寫失敗。 當舊版本的 Active Directory 資料庫錯誤還原或貼回適當時,就會發生 USN 復原。

當發生 USN 恢復時,一個網域控制站上發生之物件和屬性的修改不會複製到樹系中的其他網域控制站。 因為複寫夥伴相信他們有 Active Directory 資料庫的最新複本,所以監控和疑難排解工具(例如 Repadmin.exe)不會報告任何複寫錯誤。

當網域控制站偵測至 USN 復原時,會在目錄服務事件記錄檔中記錄目錄服務事件2095。 事件訊息的文字會引導管理員參閱本文,以瞭解復原選項。

事件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 伺服器型網域控制站中偵測和復原 USN 復原。

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

Windows Server 2012 新增對 Hyper-Visor 產生識別碼 (GenID) 的支援。 這可讓虛擬來賓偵測具有新識別碼的磁片區,並回應新的 GenID。 在 Active Directory 中,目錄服務會反應為網域控制站從備份中還原。 然後,它會產生新的調用識別碼。 資料庫實例可以使用新的呼叫 ID,在樹系中安全地重新輸入複寫。

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

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

透過網域控制站的生命週期,您可能需要將 Active Directory 資料庫的內容還原或「回退」至已知良好的時間點。 或者,您可能必須將網域控制站的主作業系統(包括 Active Directory)的元素回復到已知良好的點。

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

  • 使用 Active Directory 感知備份與還原公用程式,其使用 Microsoft 提供和 Microsoft 測試的 APIs。 這些 APIs 以非權威性或權威性的還原系統狀態備份。 還原的備份應該來源於相同的作業系統安裝,以及所要還原的相同實體或虛擬電腦。

  • 使用使用 Microsoft Volume Shadow Copy 服務的 Active Directory 感知備份與還原公用程式 APIs。 這些 APIs 會備份及還原網域控制站系統狀態。 磁片區陰影複製服務支援在執行 Windows Server 2003、Windows Server 2008 或 Windows Server 2008 R2 的電腦上,建立單一或多個磁片區的單一時間點卷影副本。 單一時間點陰影副本也稱為快照。 如需詳細資訊,請在 Microsoft 支援中搜尋「磁片區陰影複製服務」。

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

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

Windows伺服器網域控制站搭配使用 Usn 與呼叫 IDs,追蹤必須在 Active Directory 樹系的複寫夥伴之間複寫的更新。

來源網域控制站使用 Usn 來判斷要求變更之目的地網域控制站已接收的變更。 目的地網域控制站使用 Usn,判斷應從來源網域控制站要求哪些變更。

呼叫識別碼會識別在指定網域控制站上執行之 Active Directory 資料庫的版本或具現化。

使用 Microsoft 所設計及測試的 APIs 和方法,在網域控制站上還原 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. 在步驟2中,啟動 Active Directory 資料庫所儲存的網域控制站。
    • 案例 B:從中斷鏡像中的其他磁片磁碟機啟動 Active Directory

      1. 提升網域控制站。 找到鏡像磁片磁碟機上的 ntds.dit 檔案。
      2. 中斷鏡像。
      3. 使用鏡像中第一個磁片上的 ntds.dit 檔案,繼續進行輸入複寫和輸出複寫。
      4. 使用鏡像中第二個磁片上的 ntds.dit 檔案,啟動網域控制站。

即使不是預期的情形,這些案例中的每一個都會因不支援的方法,而導致網域控制站復原至較舊版本的 Active Directory 資料庫。 若要復原 active directory 網域控制站之 Active Directory 或 local state 的內容,唯一支援的方法,就是使用 Active Directory 感知備份與還原公用程式,還原來源於相同作業系統安裝的系統狀態備份,以及要還原的相同實體或虛擬電腦。

Microsoft 不支援任何其他採用 Active Directory 網域控制站系統狀態之元素快照的處理常式,並將該系統狀態的元素複製到作業系統映射。 除非系統管理員 intervenes,否則這類程式會引發 USN 復原。 這份 USN 復原會使錯誤還原的網域控制站的直接和傳遞複寫夥伴在其 Active Directory 資料庫中的物件不一致。

USN 復原的影響

當 USN 進行回滾時,對物件和屬性所做的修改不會由先前看到 USN 的目的地網域控制站所進行的輸入複製。

因為這些目的地網域控制站相信它們是最新的,所以不會在目錄服務事件記錄中或監控和診斷工具中報告複寫錯誤。

USN 復原可能會影響任何分割區中的任何物件或屬性的複寫。 最常見的一面效果是在復原網域控制站上建立的使用者帳戶和電腦帳戶,不存在於一或多個複寫夥伴上。 或者,在復原網域控制站上產生的密碼更新不存在於複寫夥伴上。

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

  1. 系統管理員會提升網域中的三個網域控制站。 (在此範例中,網域控制站是 DC1、DC2 和 DC2,而且網域為 Contoso.com。 ) DC1 和 DC2 是直接複寫夥伴。 DC2 和 DC3 也是直接複寫夥伴。 DC1 和 DC3 並非直接複寫夥伴,但透過 DC2 以傳遞的原始更新可透過接收。

  2. 系統管理員會建立10個使用者帳戶,對應至 DC1 上的 Usn 1 到10。 所有這些帳戶會複製到 DC2 和 DC3。

  3. DC1 上會捕獲作業系統的磁片影像。 此影像具有與 DC1 上的本機 Usn 1 到10相對應的物件記錄。

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

    • 在 [步驟 2] 中建立的所有10個使用者帳戶的密碼都會在 DC1 重設。 這些密碼對應于 Usn 11 到20。 所有10個更新的密碼都會複寫至 DC2 和 DC3。
    • 10會在 DC1 上建立對應至 Usn 21 到30的新使用者帳戶。 這10個使用者帳戶會複製到 DC2 和 DC3。
    • 在 DC1 上會建立與 Usn 31 到40對應的10個新電腦帳戶。 這10部電腦帳戶會複製到 DC2 和 DC3。
    • 10會在 DC1 上建立對應至 Usn 41 到50的新安全性群組。 這10個安全性群組會複製到 DC2 和 DC3。
  5. DC1 會遇到硬體故障或軟體失敗。 管理員會使用磁片映象公用程式,將在步驟3中建立的作業系統影像複製到該位置。 DC1 現在會從具備 Usn 1 到10知識的 Active Directory 資料庫開始。

    因為作業系統影像已複製到位,但未使用支援還原系統狀態的方法,所以 DC1 會繼續使用建立資料庫初始副本的相同呼叫 ID,以及所有變更至 USN 50。 DC2 和 DC3 也會維護相同的呼叫 ID,以供 DC1 的 USN 50 的 最新向量 DC1。 (最新的 vector 是指定目錄分割區之所有網域控制站上所發生之最新原始更新的目前狀態。 )

    除非系統管理員 intervenes DC2,否則不會輸入從 DC1 產生的本地 USN 11 到50的變更。 此外,根據 DC2 所使用的呼叫 ID,DC1 已經知道與 USN 11 對應至50的變更。 因此,DC2 不會傳送這些變更。 因為步驟4中的變更不存在於 DC1 上,所以登入要求會失敗並出現「拒絕存取」錯誤。 發生此錯誤的原因是密碼不相符,或是在更新的帳戶不存在時,會以隨機方式驗證 DC1 的帳戶。

  6. 在樹系中監視複寫狀況的系統管理員請注意下列情況:

    • Repadmin /showreps命令列工具會報告 DC1 和 DC2 之間,以及 DC2 和 DC3 之間進行雙向 Active 目錄複寫,未發生錯誤。 這種情況會導致任何複寫不一致的情況下偵測到。

    • 在執行 Windows Server 之網域控制站的目錄服務事件記錄檔中,未指出目錄服務事件記錄檔中的任何複寫失敗的複製事件。 這種情況會導致任何複寫不一致的情況下偵測到。

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

      注意

      在此範例中,會將不同的物件計數套用至使用者帳戶、電腦帳戶和安全性群組。 不同的物件中繼資料代表不同的使用者帳戶密碼。

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

  7. DC2 和 DC3 開始從輸入產生的來源更新,其對應至大於50的 USN 號碼,從 DC1。 此複寫會正常進行,但沒有系統管理的介入,因為已超過先前錄製的最新向量閥值(USN 50)。 (USN 50 是針對 DC2 和 DC3 上的 DC1 所記錄的最新向量 USN,在離線及還原 DC1 之前,必須先針對在和 DC3 上記錄。 ) 但在不支援的還原之後,corresponded 至 Usn 11 到50的新變更,永遠不會複製到 DC1、DC3 或其可傳遞的複寫夥伴。

雖然步驟6中所述的問題代表某些 USN 復原可對使用者和電腦帳戶造成的影響,但 USN 復原可防止任何 Active Directory 磁碟分割中的任何物件類型進行複製。 這些物件類型包括下列各項:

  • Active Directory 複寫拓撲及排程

  • 樹系中的網域控制站和這些網域控制站持有的角色是否存在

    注意

    這些角色包括通用類別目錄、相對識別碼 (RID) 分配和作業主機角色。 (作業主機角色也稱為「靈活單一主作業或 FSMO」。 )

  • 樹系中的網域和應用程式磁碟分割是否存在

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

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

USN 洞的大小可能代表數百、數千或甚至數千個使用者、電腦、信任、密碼和安全性群組的變更。 (USN 孔的定義是由已還原的系統狀態備份所產生的最高 USN 編號,以及在離線之前于回退的網域控制站上建立的原始變更數目而定。 )

在 Windows 伺服器網域控制站上偵測 USN 復原

因為 USN 恢復很難偵測,當來源網域控制站將先前認可的 USN 號碼傳送至目的地網域控制站時,Windows Server 2003 SP1 或更新版本的網域控制站會記錄事件2095,而不會在呼叫 ID 中進行對應的變更。

若要防止在錯誤還原的網域控制站上建立 Active Directory 的唯一原始更新,Net Logon 服務會暫停。 當 [Net Logon 服務] 暫停時,使用者和電腦帳戶便無法變更不會輸出這類變更的網域控制站上的密碼。 同樣地,Active Directory 管理工具會在對 Active Directory 中的物件進行更新時,偏向狀況良好的網域控制站。

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

  • 來源網域控制站會將先前確認的 USN 號碼傳送至目的地網域控制站。
  • 呼叫識別碼中沒有對應的變更。

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

您可能懷疑已發生 USN 復原。 不過,您在目錄服務事件記錄中看不到關聯的事件。 在此案例中,請檢查是否有「無法寫入的 Dsa」登錄專案。 此專案提供已發生 USN 復原的鑒證證據。

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

若刪除或手動變更 [ 不可寫入 的登錄專案] 值,則會將復原網域控制站置於永久不支援的狀態。 因此,不支援這類變更。 具體說來,修改此值會移除 USN 回滾偵測程式碼所新增的隔離行為。 在相同 Active Directory 樹系中,復原網域控制站上的 Active Directory 磁碟分割會與直接和傳遞的複寫夥伴永遠不一致。

從 USN 復原復原

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

參考