如何提高 Active Directory 網域和樹系功能等級
本文說明如何提高 Active Directory 網域和樹系功能等級。
適用於: Windows Server 2003
原始 KB 編號: 322692
摘要
如需 windows Server 2016 和 Active Directory 網域服務 新功能的相關信息(AD DS),請參閱 Windows Server 2016 Active Directory 網域服務 的新功能。
本文討論Microsoft Windows Server 2003 型或較新的域控制器所支援的網域和樹系功能等級。 Active Directory 有四個版本,而且只有從 Windows NT Server 4.0 變更的層級需要特別考慮。 因此,使用較新、目前或較舊版本的域控制器操作系統、網域或樹系功能等級來提及其他層級變更。
功能等級是混合模式的延伸,也是 Windows 2000 Server Microsoft中引進的原生模式概念,以啟用新的 Active Directory 功能。 當所有域控制器都在網域或樹系中執行最新的 Windows Server 版本,以及系統管理員在網域或樹系中啟用對應功能等級時,可以使用一些額外的 Active Directory 功能。
若要啟用最新的網域功能,所有域控制器都必須在網域中執行最新的 Windows Server 操作系統版本。 如果符合此需求,系統管理員可以提高網域功能等級。
若要啟用最新的全樹系功能,樹系中的所有域控制器都必須執行對應至所需樹系功能等級的 Windows Server 操作系統版本。 此外,目前的網域功能等級必須已經處於最新層級。 如果符合這些需求,系統管理員可以提高樹系功能等級。
一般而言,網域和樹系功能等級的變更是無法復原的。 如果可以復原變更,則必須使用樹系復原。 使用 Windows Server 2008 R2 操作系統,可以回復網域功能等級和樹系功能等級的變更。 不過,復原只能在 Technet 文章中有關 Active Directory 功能等級的特定案例中執行。
注意
最新的網域功能等級和最新的樹系功能等級只會影響域控制器以群組一起運作的方式。 與網域或樹系互動的用戶端不會受到影響。 此外,應用程式不會受到網域功能等級或樹系功能等級的變更所影響。 不過,應用程式可以利用最新的網域功能和最新的樹系功能。
如需詳細資訊,請檢視 TechNet文章,以瞭解與各種功能等級相關聯的功能。
提高功能等級
警告
如果網域具有 或 將會有比該層級所引用版本更早版本的域控制器,請勿提高功能等級。 例如,Windows Server 2008 功能等級要求所有域控制器都必須在網域或樹系中安裝 Windows Server 2008 或更新版本的操作系統。 將網域功能等級提升至較高層級之後,只能使用樹系復原將它變更回較舊的層級。 這項限制之所以存在,是因為功能通常會變更域控制器之間的通訊,或因為功能會變更資料庫中 Active Directory 數據的記憶體。
啟用網域和樹系功能等級的最常見方法是使用 TechNet文章中記載的圖形使用者介面(GUI)管理工具,瞭解 Windows Server 2003 Active Directory 功能等級。 本文討論 Windows Server 2003。 不過,在較新的操作系統版本中,步驟相同。 此外,功能等級可以手動設定,也可以使用 Windows PowerShell 腳本進行設定。 如需如何手動設定功能等級的詳細資訊,請參閱一節。
如需如何使用 Windows PowerShell 腳本來設定功能等級的詳細資訊,請參閱 提高樹系功能等級。
手動檢視及設定功能等級
輕量型目錄存取通訊協定 (LDAP) 工具,例如 Ldp.exe 和 Adsiedit.msc,可用來檢視和修改目前的網域和樹系功能等級設定。 當您手動變更功能等級屬性時,最佳做法是在通常以 Microsoft 系統管理工具為目標的彈性單一主機作業 (FSMO) 域控制器上進行屬性變更。
網域功能等級設定
msDS-Behavior-Version 屬性位於網域的命名內容 (NC) 前端上,也就是 DC=corp、DC=contoso、DC=com。
您可以設定此屬性的下列值:
- 值 0 或未設定=混合層級定義域
- 值 1=Windows Server 2003 網域層級
- 值 2=Windows Server 2003 網域層級
- 值 3=Windows Server 2008 網域層級
- 值 4=Windows Server 2008 R2 網域層級
混合模式和原生模式設定
ntMixedDomain 屬性位於網域的命名內容 (NC) 前端上,也就是 DC=corp、DC=contoso、DC=com。
您可以設定此屬性的下列值:
- 值0=原生層級網域
- 值 1=混合層級定義域
樹系層級設定
msDS-Behavior-Version 屬性位於設定命名內容 (NC) 中的 CN=Partitions 物件上,也就是 CN=Partitions、CN=Configuration、DC= ForestRootDomain。
您可以設定此屬性的下列值:
值 0 或未設定=混合層級樹系
值 1=Windows Server 2003 過渡樹系層級
值 2=Windows Server 2003 樹系層級
注意
當您使用Adsiedit.msc 將 msDS-Behavior-Version 屬性從 0 值增加到 1 值時,您會收到下列錯誤訊息:
不合法的修改作業。 不允許修改的某些層面。值 3=Windows Server 2008 網域層級
值 4=Windows Server 2008 R2 網域層級
使用輕量型目錄存取通訊協定 (LDAP) 工具來編輯功能等級之後,請按兩下 [確定] 繼續。 分割區容器和網域前端上的屬性會正確增加。 如果Ldp.exe檔案回報錯誤訊息,您可以放心地忽略錯誤訊息。 若要確認層級增加成功,請重新整理屬性清單,然後檢查目前的設定。 如果您尚未將變更復寫至本機域控制器,在授權 FSMO 上執行層級增加之後,也可能會發生此錯誤訊息。
使用 Ldp.exe 檔案快速檢視目前的設定
- 啟動Ldp.exe檔案。
- 在 [連線] 功能表上,按一下 [連線])。
- 指定您想要查詢的域控制器,或將空間保留空白以連線到任何域控制器。
線上到域控制器之後,域控制器的 RootDSE 資訊隨即出現。 此資訊包括樹系、網域和域控制器的相關信息。 以下是以 Windows Server 2003 為基礎的域控制器範例。 在下列範例中,假設網域模式為 Windows Server 2003,且樹系模式為 Windows 2000 Server。
注意
域控制器功能代表此域控制器的最高可能功能等級。
- 1> domainFunctionality:2=(DS_BEHAVIOR_WIN2003)
- 1> forestFunctionality: 0=(DS_BEHAVIOR_WIN2000)
- 1> domainControllerFunctionality: 2=(DS_BEHAVIOR_WIN2003)
手動變更功能等級時的需求
如果下列其中一個條件成立,您必須先將網域模式變更為原生模式,才能提高網域層級:
- 網域功能等級是以程序設計方式提升至第二個功能等級,方法是直接修改 domainDNS 物件上的 msdsBehaviorVersion 屬性值。
- 網域功能等級會使用 Ldp.exe 公用程式或 Adsiedit.msc 公用程式,提升至第二個功能等級。
如果您在提高網域層級之前未將網域模式變更為原生模式,則作業不會順利完成,而且您會收到下列錯誤訊息:
SV_PROBLEM_WILL_NOT_PERFORM
ERROR_DS_ILLEGAL_MOD_OPERATION
此外,下列訊息會記錄在目錄服務記錄檔中:
Active Directory could not update the functional level of the following domain because the domain is in mixed mode.
在此案例中,您可以使用 Active Directory 使用者和電腦嵌入式管理單元、使用 Active Directory 網域 和 Trusts UI MMC 嵌入式管理單元,或以程式設計方式將 ntMixedDomain 屬性的值變更為 domainDNS 物件上的 0,將網域模式變更為原生模式。 當此程式用來將網域功能等級提升為 2(Windows Server 2003),網域模式會自動變更為原生模式。
從混合模式轉換為原生模式會將架構系統管理員安全組的範圍和企業系統管理員安全組變更為通用群組。 當這些群組變更為通用群組時,系統會在系統記錄檔中記錄下列訊息:
Event Type: Information Event Source: SAM Event ID: 16408 Computer:Server Name Description: "Domain operation mode has been changed to Native Mode. The change cannot be reversed."
當 Windows Server 2003 系統管理工具用來叫用網域功能等級時,ntmixedmode 屬性和 msdsBehaviorVersion 屬性都會以正確的順序修改。 不過,這不一定會發生。 在下列案例中,原生模式會隱含地設定為0值,而不需要將架構系統管理員安全組的範圍和企業系統管理員安全組的範圍變更為通用:
- 控制網域功能模式的 msdsBehaviorVersion 屬性會手動或以程式設計方式設定為 2 的值。
- 樹系功能等級會使用任何方法設定為 2。 在此案例中,域控制器會封鎖轉換至樹系功能等級,直到局域網路中的所有網域都設定為原生模式,而且安全組範圍中會進行必要的屬性變更。
與 Windows 2000 Server 相關的功能等級
Windows 2000 Server 僅支援混合模式和原生模式。 此外,它只會將這些模式套用至網域功能。 下列各節列出 Windows Server 2003 網域模式,因為這些模式會影響 Windows NT 4.0 和 Windows 2000 Server 網域的升級方式。
當提高域控制器的操作系統層級時,有許多考慮。 這些考慮是由 Windows 2000 Server 模式中連結屬性的儲存和複寫限制所造成。
Windows 2000 Server 混合式 (預設值)
- 支援的域控制器:Microsoft Windows NT 4.0、Windows 2000 Server、Windows Server 2003
- 啟用的功能:本機和全域群組、全域編錄支援
Windows 2000 Server 原生
- 支援的域控制器:Windows 2000 Server、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2
- 啟用的功能:群組巢狀、通用群組、Sid 歷程記錄、在安全組和通訊群組之間轉換群組,您可以藉由增加樹系層級設定來提高網域層級
Windows Server 2003 過渡期
- 支援的域控制器:Windows NT 4.0、Windows Server 2003
- 支援的功能:此層級沒有啟用全網域功能。 當樹系層級增加到過渡期時,樹系中的所有網域都會自動提升至此層級。 只有在您將 Windows NT 4.0 網域中的域控制器升級至 Windows Server 2003 域控制器時,才會使用此模式。
Windows Server 2003
- 支援的域控制器:Windows Server 2003、Windows Server 2008、Windows Server 2008 R2
- 支援的功能:域控制器重新命名、登入時間戳屬性已更新和複寫。 InetOrgPerson 物件Class上的用戶密碼支援。 限制委派,您可以將使用者和計算機容器重新導向。
從 Windows NT 4.0 升級或由 Windows Server 2003 型電腦的升級所建立的網域,可在 Windows 2000 混合功能層級運作。 當 Windows 2000 Server 域控制器升級至 Windows Server 2003 操作系統時,Windows 2000 Server 網域會維持其目前的網域功能等級。 您可以將網域功能等級提升為 Windows 2000 Server 原生或 Windows Server 2003。
過渡層級 - 從 Windows NT 4.0 網域升級
Windows Server 2003 Active Directory 允許名為 Windows Server 2003 過渡期的特殊樹系和網域功能等級。 此功能等級是針對現有 Windows NT 4.0 網域的升級提供,其中一或多個 Windows NT 4.0 備份域控制器 (BDC) 在升級之後必須正常運作。 此模式不支援 Windows 2000 Server 域控制器。 Windows Server 2003 過渡期適用於下列案例:
- 從 Windows NT 4.0 到 Windows Server 2003 的網域升級。
- Windows NT 4.0 DC 不會立即升級。
- 包含成員超過 5000 個群組的 Windows NT 4.0 網域(不包括網域使用者群組)。
- 沒有任何計劃隨時在樹系中實作 Windows Server2000 域控制器。
Windows Server 2003 過渡期提供兩項重要的增強功能,同時仍允許復寫至 Windows NT 4.0 DC:
- 有效率地復寫安全組,並支援每個群組超過 5000 個成員。
- 已改善 KCC 月臺間拓撲產生器演算法。
由於在過渡層級中啟用的群組復寫效率,因此所有 Windows NT 4.0 升級都是建議的過渡層級。 如需詳細資訊,請參閱本文的一節。
設定 Windows Server 2003 過渡樹系功能等級
Windows Server 2003 過渡期可以透過三種不同的方式啟用。 強烈建議使用前兩種方法。 這是因為在 Windows NT 4.0 網域的主要域控制器 (PDC) 升級至 Windows Server 2003 域控制器之後,安全組會使用連結值復寫 (LVR)。 不建議使用第三個選項,因為安全組中的成員資格會使用單一多重值屬性,這可能會導致復寫問題。 Windows Server 2003 過渡期可以啟用的方式如下:
在升級期間。
當您升級 Windows NT 4.0 網域的 PDC,做為新樹系根域中的第一個域控制器時,[Dcpromo 安裝精靈] 中會顯示此選項。
將 Windows NT 4.0 的 Windows NT 4.0 PDC 升級為現有樹系中新網域的第一個域控制器,方法是使用輕量型目錄存取通訊協定 (LDAP) 工具來手動設定樹系功能等級。
子域會繼承其升級為樹系的全樹系功能設定。 將 Windows NT 4.0 網域的 PDC 升級為現有 Windows Server 2003 樹系中的子域,其中過渡樹系功能等級已設定為使用 Ldp.exe 檔案或 Adsiedit.msc 檔案,可讓安全組在操作系統版本升級之後使用連結值復寫。
使用LDAP工具升級之後。
當您在升級期間加入現有的 Windows Server 2003 樹系時,請使用最後兩個選項。 當「空根目錄」網域處於位置時,這是常見的案例。 升級的網域會聯結為空根目錄的子系,並從樹系繼承網域設定。
最佳做法
下一節將討論增加功能等級的最佳做法。 區段分成兩個部分。 「準備工作」討論您在增加之前必須執行的工作,而「最佳路徑增加」討論不同層級增加案例的動機和方法。
若要探索 Windows NT 4.0 域控制器,請遵循下列步驟:
從任何 Windows Server 2003 型域控制器開啟 Active Directory 使用者和電腦。
如果域控制器尚未連線到適當的網域,請遵循下列步驟來聯機到適當的網域:
- 以滑鼠右鍵按兩下目前的網域物件,然後按兩下 [ 連接到網域]。
- 在 [ 網域 ] 對話框中,輸入您要連線之網域的 DNS 名稱,然後按兩下 [ 確定]。 或者,按兩下 [ 瀏覽 ] 從定義域樹中選取網域,然後按下 [ 確定]。
以滑鼠右鍵按兩下網域物件,然後按兩下 [ 尋找]。
在 [ 尋找] 對話框中,按兩下 [ 自定義搜尋]。
按兩下您要變更功能等級的網域。
按一下 [進階] 索引標籤。
在 [ 輸入 LDAP 查詢] 方塊中,輸入下列內容,並在任何字元之間保留空格: (&(objectCategory=computer)(operatingSystem Version=4*)(userAccountControl:1.2.840.113556.1.4.803:=8192))
注意
此查詢不區分大小寫。
按一下 [立即尋找]。
網域中執行 Windows NT 4.0 且以域控制器運作的計算機清單隨即出現。
域控制器可能會因為下列任何原因而出現在清單中:
- 域控制器正在執行 Windows NT 4.0,而且必須升級。
- 域控制器會升級至 Windows Server 2003,但變更不會復寫到目標域控制器。
- 域控制器已不在服務中,但域控制器的計算機物件不會從網域中移除。
在您可以將網域功能等級變更為 Windows Server 2003 之前,您必須在清單中實際找到任何域控制器、判斷域控制器的目前狀態,然後視需要升級或移除域控制器。
注意
不同於 Windows Server 2000 域控制器,Windows NT 4.0 域控制器不會封鎖層級增加。 當您變更網域功能等級時,Windows NT 4.0 域控制器的複寫將會停止。 不過,當您嘗試使用 Windows Server 2000 中的網域增加到 Windows Server 2003 樹系層級時,會封鎖混合層級。 Windows NT 4.0 BDC 的缺失,是透過符合 Windows Server 2000 原生層級或更新版本之所有網域的樹系層級需求所隱含。
範例:在層級增加之前準備工作
在此範例中,環境會從 Windows Server 2000 混合模式提升為 Windows Server 2003 樹系模式。
清查舊版域控制器的樹系。
如果無法使用精確的伺服器清單,請遵循下列步驟:
- 若要探索混合層級網域、Windows Server 2000 域控制器,或具有損毀或遺失物件的域控制器,請使用 Active Directory 網域和信任 MMC 嵌入式管理單元。
- 在嵌入式管理單元中,按兩下 [引發樹系功能],然後按兩下 [ 另存新檔 ] 以產生詳細的報告。
- 如果找不到任何問題,可從 [ 可用的樹系功能等級] 下拉式清單中,選擇增加至 Windows Server 2003 樹系層級 。 當您嘗試提高樹系層級時,會搜尋設定容器中的域控制器對象,尋找未 將 msds-behavior-version 設定為所需目標層級的任何域控制器。 這些會假設為 Windows Server 2000 域控制器或損毀較新的 Windows Server 域控制器物件。
- 如果找到已損毀或遺失計算機物件的舊版域控制器或域控制器,則會包含在報告中。 必須調查這些域控制器的狀態,而且必須使用 Ntdsutil 檔案修復或移除 Active Directory 中的域控制器表示法。
如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
216498如何在失敗的域控制器降級后移除 Active Directory 中的數據
確認端對端復寫在樹系中運作
若要確認端對端復寫在樹系中運作,請針對 Windows Server 2000 或 Windows Server 2003 域控制器使用 Windows Server 2003 或更新版本的 Repadmin:
Repadmin/Replsum * /Sort:Delta[/Errorsonly]
用於初始清查。Repadmin/Showrepl * /CSV>showrepl.csv
. 匯入至 Excel,然後使用數據自動>篩選來識別複寫功能。使用 Repadmin 之類的復寫工具來確認全樹系複寫是否正常運作。
確認所有程式或服務與較新的 Windows Server 域控制器以及較高 Windows Server 網域和樹系模式的相容性。 使用實驗室環境徹底測試生產程式和服務的相容性問題。 請連絡廠商以確認功能。
準備備份計劃,其中包含下列其中一個動作:
- 中斷樹系中每個網域至少兩個域控制器的連線。
- 從樹系中的每個網域建立至少兩個域控制器的系統狀態備份。
在可以使用備份計劃之前,必須先解除委任樹系中的所有域控制器,才能進行復原程式。
注意
無法授權地還原層級增加。 這表示所有已復寫層級增加的域控制器都必須解除委任。
解除委任所有先前的域控制器之後,請啟動中斷聯機的域控制器,或從備份還原域控制器。 從所有其他域控制器移除元數據,然後重新編寫它們。 這是一個困難的過程,必須避免。
範例:如何從 Windows Server 2000 混合層級到 Windows Server 2003 樹系層級取得
將所有網域增加到 Windows Server 2000 原生層級。 完成之後,請將樹系根域的功能等級提高到 Windows Server 2003 樹系層級。 當樹系層級復寫至樹系中每個網域的 PDC 時,網域層級會自動增加到 Windows Server 2003 網域層級。 此方法具有下列優點:
- 全樹系層級增加只會執行一次。 您不需要手動將樹系中的每個網域增加到 Windows Server 2003 網域功能等級。
- 在層級增加之前,會先檢查 Windows Server 2000 域控制器(請參閱準備步驟)。 增加會遭到封鎖,直到移除或升級問題域控制器為止。 藉由列出封鎖域控制器並提供可採取動作的數據,即可產生詳細的報告。
- 執行 Windows Server 2000 混合或 Windows Server 2003 過渡層級中的網域檢查。 在網域層級至少增加到 Windows Server 2000 原生之前,會封鎖增加。 過渡層級網域必須增加到 Windows Server 2003 網域層級。 藉由列出封鎖網域,即可產生詳細的報告。
Windows NT 4.0 升級
除非 Windows Server 2000 域控制器已導入 PDC 升級至 PDC 的樹系中,否則 Windows NT 4.0 升級一律使用過渡層級。 在升級 PDC 期間使用過渡模式時,現有的大型群組會立即使用 LVR 複寫,避免本文稍早討論的潛在復寫問題。 使用下列其中一種方法在升級期間進入過渡層級:
- 選取 Dcpromo 期間的過渡層級。 只有在 PDC 升級為新的樹系時,才會顯示此選項。
- 將現有樹系的樹系層級設定為過渡期,然後在 PDC 升級期間加入樹系。 升級的網域會繼承樹系設定。
- 升級或移除所有 Windows NT 4.0 DC 之後,每個網域都必須轉換為樹系層級,而且可以轉換為 Windows Server 2003 樹系模式。
避免使用過渡模式的原因,是在升級之後或未來任何時間都計劃實作 Windows Server 2000 域控制器。
Windows NT 4.0 中大型群組的特殊考慮
在成熟的 Windows NT 4.0 網域中,包含超過 5000 個成員的安全組可能已經存在。 在 Windows NT 4.0 中,當安全組的成員變更時,只會將成員資格單一變更復寫到備份域控制器。 在 Windows Server 2000 中,群組成員資格是鏈接屬性,儲存在群組對象的單一多重值屬性中。 對群組成員資格進行單一變更時,會將整個群組復寫為單一單位。 因為群組成員資格會復寫為單一單位,因此當不同域控制器同時新增或移除不同成員時,群組成員資格的更新可能會「遺失」。 此外,這個單一物件的大小可能大於用來認可資料庫中專案的緩衝區。 如需詳細資訊,請參閱本文的一節。 基於這些原因,群組成員的建議限制為5000。
5000 成員規則的例外是主要群組(預設為「網域使用者」群組)。 主要群組會根據使用者的 「primarygroupID」 使用「計算」機制來判斷成員資格。 主要群組不會將成員儲存為多重值連結屬性。 如果使用者的主要群組變更為自定義群組,則其網域使用者群組中的成員資格會寫入群組的連結屬性,且不再計算。 新的主要群組 Rid 會寫入 「primarygroupID」,而且使用者會從群組的成員屬性中移除。
如果系統管理員未選取升級網域的過渡層級,您必須遵循下列步驟,才能進行升級:
- 清查所有大型群組,並識別超過5000個群組,但網域使用者群組除外。
- 擁有 5000 個以上成員的所有群組都必須分成小於 5000 個成員的較小群組。
- 找出輸入大型群組的所有 存取控制 清單,並新增您在步驟 2.Windows Server 2003 過渡樹系層級中建立的小型群組,讓系統管理員不必探索並重新配置具有 5000 個成員的全域安全組。
大型群組的版本存放區問題
在長時間執行的作業中,例如深度搜尋或認可至單一大型屬性,Active Directory 必須確定資料庫的狀態是靜態的,直到作業完成為止。 深層搜尋或認可大型屬性的範例是使用舊版記憶體的大型群組。
當資料庫更新持續發生在本機和復寫夥伴時,Active Directory 會排入所有傳入的變更佇列,直到長時間執行的作業完成為止,以提供靜態狀態。 作業完成後,佇列的變更就會套用至資料庫。
這些佇列變更的儲存位置稱為「版本存放區」,大約是 100 MB。 版本存放區的大小會因物理記憶體而異。 如果長時間執行的作業在版本存放區用盡之前未完成,域控制器將會停止接受更新,直到長時間執行的作業和已排入佇列的變更認可為止。 達到大量 (超過 5000 個成員) 的群組,只要認可大型群組,域控制器就有可能耗盡版本存放區。
Windows Server 2003 引進了連結多重值屬性的新複寫機制,稱為連結值複寫(LVR)。 LVR 不是在單一復寫作業中複寫整個群組,而是將每個群組成員複寫為個別的復寫作業來解決此問題。 當樹系功能等級提升至 Windows Server 2003 過渡樹系層級或 Windows Server 2003 樹系層級時,LVR 就會變成可用。 在此功能等級中,LVR 是用來復寫 Windows Server 2003 域控制器之間的群組。