有一天,任何一位Active Directory(AD)管理員的職業生涯中都會出現這樣的時刻,他或她必須轉移FSMO角色(或者奪取它們)。域控制器(DC)來了又去,這些DC上承載的FSMO角色必須移動。
在這個教程中,你將逐步學習如何轉移和奪取所有的AD FSMO角色。你將看到如何通過各種GUI工具和PowerShell移動FSMO角色。
讓我們開始吧!
先決條件
如果你想跟著做,請確保你具備以下條件:
- 至少兩個DC – 本教程將使用Windows Server 2019,森林功能級別為Windows Server 2016,儘管沒有太多變化。
- A domain-joined computer with RBAC installed or you’re on a DC’s desktop directly
相關: 如何安裝並導入Active Directory PowerShell模塊
- Windows PowerShell v5.1
- 使用AD帳戶登錄到連接到域的計算機上。查詢角色時,不需要特殊權限。但轉移或奪取角色需要進一步的權限。
使用GUI轉移FSMO角色
轉移FSMO角色有兩種方法:GUI和PowerShell。讓我們首先通過幾個不同的MMC快捷方式來演示如何通過GUI轉移FSMO角色。
RID主機、PDCe和基礎設施主機
首先解決域特定的FSMO角色。
- 打開ADUC(dsa.msc),右鍵單擊域並選擇操作主控。在這裡,您將找到與該域唯一相關的所有FSMO角色(RID主控、PDCe和基礎結構主控),通過RID、PDC和基礎結構選項卡表示。

2. 點擊每個選項卡。您將注意到當前FSMO角色持有者(操作主控)和更改按鈕。
3. 在每個選項卡下單擊更改按鈕,並選擇新的DC執行RID主控、PDCe和基礎結構主控FSMO角色的轉移。
域命名主控
接下來,讓我們轉到域命名主控角色。您可以在Active Directory域和信任控制台中查看和更改此FSMO角色。
- 打開Active Directory域和信任控制台(domain.msc)。
2. 右鍵單擊Active Directory域和信任父節點,然後單擊操作主控。在這裡,您將看到當前持有此角色的DC被描述為域命名操作主控。
3. 點擊更改按鈕,然後選擇要轉移到的DC。

模式主控
最後是模式主控角色。要更改此角色,您將需要Active Directory Schema MMC快照。
開始之前,請確保您已使用屬於模式管理員AD組的帳戶登錄。
- 打開提升權限的命令提示字元或 PowerShell 控制台,然後運行
regsvr32.exe "schmmgmt.dll"
。預設情況下,不會提供 Active Directory Schema 捷徑。此命令會註冊模式管理所需的 DLL。
2. 開啟 mmc.exe 工具。
3. 點擊 檔案 —> 新增/移除捷徑。
4. 從 可用的捷徑 中選擇 Active Directory Schema,然後點擊 新增 > 和 確定。

5. 進入捷徑後,右鍵點擊 Active Directory Schema [<你的域名>],選擇 操作主機 以查看彈出窗口中的當前模式主機。
6. 點擊 更改,然後選擇新的 DC 以轉移模式主機角色。

使用 PowerShell 轉移 FSMO 角色
如果你更喜歡命令行,PowerShell 也能應對。
查看當前 FSMO 角色持有者
在使用 PowerShell 轉移之前,讓我們先學習如何查看當前的 FSMO 角色持有者。為此,打開提升權限的 Windows PowerShell 控制台,運行 Get-ADDomain
和 Get-ADForest
,如下所示。

Get-ADDomain

Get-ADForest
轉移 FSMO 角色
一旦您知道哪些 DC 擁有當前的 FSMO 角色,您也可以將它們轉移。要在 Windows PowerShell 中執行此操作,請使用 Identity
參數運行 Move-ADDirectoryServerOperationMasterRole
命令,指定要將 FSMO 角色轉移給哪個 DC(在這種情況下為 ChildDC1
),然後跟上 FSMO 角色的名稱。下面的示例是將 RID 主控角色轉移給了
。對於 FSMO 角色名稱,您可以使用
PDCEmulator
、RIDMaster
、InfrastructureMaster
、SchemaMaster
和DomainNamingMaster
。

您也可以一次轉移多個角色,只需使用逗號將每個角色名稱分隔開來,例如
Move-ADDirectoryServerOperationMasterRole -Identity "ChildDC1" PDCEmulator,InfrastructureMaster
。
也許您真的很懶,不想輸入這些長名稱。在這種情況下,您也可以僅使用數字,其中每個 FSMO 角色對應一個特定的數字。
Role Name | Number |
PDCEmulator | 0 |
RIDMaster | 1 |
InfrastructureMaster | 2 |
SchemaMaster | 3 |
DomainNamingMaster | 4 |
使用標識符而不是角色名稱,轉移 PDCE 角色的命令可以簡短到 Move-ADDirectoryServerOperationMasterRole ChildDc2 0
系統會提示您確認要轉移的 FSMO 角色名稱,以確保您知道自己在做什麼。由於這不是一項經常性任務,您可能希望考慮使用您要轉移的角色的完整名稱。特別是如果您在腳本中使用這個命令,其他人會使用它;這樣更容易理解。

使用 GUI 接管 FSMO 角色
如果您需要將 FSMO 角色從一個 DC 移至另一個,轉移角色始終是最佳選擇。轉移確保 FSMO 角色完全從舊 DC 中移除並轉移到新 DC。但事情並不總是如計劃的那樣進行。
如果一個 DC 不再在線或以某種方式失敗,則可以進行 FSMO 角色的搶奪,這基本上在新 DC 上建立一個新的 FSMO 角色,而不移除舊的角色。
只有在確定無法將當前角色持有者重新上線時,才能搶奪 FSMO 角色。一旦搶奪了角色,請確保舊的 FSMO 角色持有者永遠不要再次上線。
使用 GUI 搶奪角色是通過在Active Directory Users and Computers(ADUC)控制台中刪除 DC 電腦帳戶完成的。要這樣做:
- 首先,將 ADUC 連接到您想將 FSMO 角色轉移到的 DC。為此,在 ADUC 中,右鍵單擊根Active Directory Users and Computers節點,然後單擊更改域控制器。
2. 搜索要連接的 DC 並連接到它。
3. 點擊Domain Controllers OU。
4. 右鍵單擊要從中搶奪 FSMO 角色的 DC,然後單擊Delete。

5. 接下來,通過前兩個提示來點擊是。


最後,您將收到一個提示,通知您 DC 是 FSMO 角色持有者,並且角色將被移至另一個 DC。這將是您的 ADUC 控制台所連接的 DC。點擊確定,離線 DC 的計算機帳戶將被刪除,角色將被搶奪並移至新的 DC。

使用 PowerShell 搶奪 FSMO 角色
要使用 PowerShell 搶奪 FSMO 角色,請確保您已經打開 Windows PowerShell,並運行 Move-ADDirectoryServerOperationMasterRole
命令,並將新 DC 的名稱作為 Identity
參數值,以及 Force
參數。
下面的示例是搶奪 RID 主控角色並將其分配給 NewDC3
DC。
用於轉移的相同 FSMO 角色名稱也適用於
Move-ADDirectoryServerOperationMasterRole
命令。
結論
移動 FSMO 角色並不是一個每天都需要做的任務,但當您升級新的 DC、降級舊的 DC 和 decommissioning 伺服器時,您需要了解有關 FSMO 角色的信息。
按照本教程中的步驟,幫助您完成此任務!