戰(zhàn))
簡(jiǎn)介面向Windows Server域環(huán)境初學(xué)者與系統(tǒng)管理員的實(shí)操型文檔圍繞主域控制器、輔助域控制器部署及主域控制器遷移展開(kāi)幫助讀者梳理域架構(gòu)搭建、角色轉(zhuǎn)移與常見(jiàn)故障處理思路。資源包共1個(gè)docx文件約566KB以文字說(shuō)明和命令示例整理環(huán)境準(zhǔn)備、活動(dòng)目錄安裝、額外域控加入、FSMO五大角色遷移及全局編錄設(shè)置等內(nèi)容并給出ntdsutil命令行轉(zhuǎn)移與角色奪取的參考寫(xiě)法內(nèi)容按搭建、加入、遷移與驗(yàn)證順序組織便于在實(shí)驗(yàn)環(huán)境中對(duì)照練習(xí)、驗(yàn)證主輔域控復(fù)制效果和遷移結(jié)果。該文檔已有2064人瀏覽學(xué)習(xí)適合課程實(shí)驗(yàn)、企業(yè)域控遷移預(yù)演及日常運(yùn)維知識(shí)梳理也可作為搭建主輔域控、執(zhí)行角色遷移時(shí)的速查筆記幫助讀者減少配置遺漏并建立較完整的排錯(cuò)思路。1. 從 dcpromo 到 ntdsutil把主域控、輔助域控和遷移串成一條線(xiàn)機(jī)房角落里那臺(tái)跑了七八年的機(jī)器要下架域里五個(gè) FSMO 角色全壓在它身上全局編錄也只有它一份這時(shí)候才想起來(lái)翻文檔最容易出現(xiàn)的問(wèn)題是步驟對(duì)不上號(hào)。這份記錄把三件事串成一條線(xiàn)主域控怎么用 dcpromo 從零建起來(lái)輔助域控怎么作為額外域控制器加入并把復(fù)制鏈路跑通最后把 RID、PDC、基礎(chǔ)結(jié)構(gòu)、域命名、架構(gòu)五個(gè)角色連同全局編錄一起遷移到新機(jī)器上。整套流程基于 Microsoft Windows Server 2003 Enterprise Edition 的雙機(jī)方案適合還在維護(hù)老活動(dòng)目錄環(huán)境的人、想搭實(shí)驗(yàn)環(huán)境驗(yàn)證遷移路徑的人以及需要理解「域控裝完不等于交付」的運(yùn)維從業(yè)者。下面按搭建、加入、遷移、排錯(cuò)的順序往下走每一步都給出命令和判斷依據(jù)。2. 主域控的搭建dcpromo 向?qū)?11 個(gè)頁(yè)面分別該填什么2.1 先定地址和名字別等裝到一半才想域控搭建里最難調(diào)整的是地址規(guī)劃一旦 dcpromo 跑完改 IP 意味著 DNS 記錄、SRV 記錄、站點(diǎn)信息全部要跟著動(dòng)。我一般會(huì)在裝系統(tǒng)之前就把表格填好兩臺(tái)機(jī)器對(duì)號(hào)入座裝的時(shí)候照著抄不給自己臨場(chǎng)發(fā)揮的機(jī)會(huì)。項(xiàng)目主域控 A輔助域控 B操作系統(tǒng)Windows Server 2003 Enterprise Edition同左計(jì)算機(jī)名DCADCBIP 地址10.10.10.1010.10.10.20子網(wǎng)掩碼255.0.0.0255.0.0.0默認(rèn)網(wǎng)關(guān)10.10.10.110.10.10.1首選 DNS10.10.10.10自身10.10.10.10指向主域控域 DNS 全名corp.lab同左NetBIOS 名CORP同左原始資料里用的是 1.1.1.1 / 255.0.0.0 這套寫(xiě)法掩碼是 A 類(lèi)的默認(rèn)掩碼。實(shí)驗(yàn)環(huán)境圖省事可以這么干但我建議換成私網(wǎng)號(hào)段一來(lái) 1.1.1.1 現(xiàn)在被公共 DNS 服務(wù)占用客戶(hù)端做名稱(chēng)解析時(shí)容易和外部解析打架二來(lái)掩碼寫(xiě) 255.0.0.0 意味著整個(gè) 10.0.0.0/8 都算同網(wǎng)段真實(shí)機(jī)房里跨網(wǎng)段復(fù)制、站點(diǎn)劃分這些判斷會(huì)失真。真要復(fù)現(xiàn)實(shí)驗(yàn)用 10.10.10.0/24 更貼近生產(chǎn)掩碼 255.255.255.0判斷邏輯一模一樣出問(wèn)題時(shí)排查范圍還小。還有兩個(gè)容易忽略的前置動(dòng)作把兩臺(tái)機(jī)器的防火墻對(duì)域控相關(guān)端口放行至少包括 53、88、135、139、389、445、636、3268、3269把系統(tǒng)時(shí)間對(duì)齊域內(nèi) Kerberos 認(rèn)證對(duì)時(shí)間偏差容忍度只有 5 分鐘時(shí)間不同步時(shí)會(huì)報(bào)「安全數(shù)據(jù)庫(kù)中存在該計(jì)算機(jī)賬戶(hù)但登錄失敗」這類(lèi)看起來(lái)莫名其妙的錯(cuò)誤。2.2 dcpromo 向?qū)е痦?xiàng)拆解裝完系統(tǒng)、配好靜態(tài) IP 和 DNS 指向自身之后從運(yùn)行框或者命令行調(diào)起安裝向?qū)АC钚蟹绞奖赛c(diǎn)開(kāi)始菜單更穩(wěn)尤其是遠(yuǎn)程桌面里操作的時(shí)候:: 調(diào)起活動(dòng)目錄安裝向?qū)?dcpromo這條命令本身沒(méi)有參數(shù)走的是交互式向?qū)Аcpromo 也支持應(yīng)答文件靜默安裝dcpromo /answer:文件名但初次搭建不建議用向?qū)恳徊降倪x擇直接決定后面域的行為手點(diǎn)一遍能看清每一項(xiàng)的含義。向?qū)У捻?yè)面順序和對(duì)應(yīng)的填法如下照著填基本不會(huì)出錯(cuò)向?qū)ы?yè)選擇判斷依據(jù)操作系統(tǒng)兼容性下一步提示性頁(yè)面說(shuō)明舊版 Windows 的兼容限制域控制器類(lèi)型新域的域控制器這是林里的第一臺(tái)域控創(chuàng)建一個(gè)新域在新林中的域全新森林沒(méi)有可依附的父域新域的 DNS 全名corp.lab這個(gè)名字就是以后的登錄后綴NetBIOS 名CORP默認(rèn)從 DNS 名截取老客戶(hù)端靠它識(shí)別域數(shù)據(jù)庫(kù)和日志文件夾分開(kāi)存放數(shù)據(jù)庫(kù)和日志放不同物理盤(pán)IO 互不干擾共享的系統(tǒng)卷默認(rèn) %systemroot%\SYSVOL保持默認(rèn)即可遷移時(shí)也好找DNS 注冊(cè)診斷第二項(xiàng)讓本機(jī)同時(shí)安裝并配置 DNS充當(dāng)域的 DNS 服務(wù)器權(quán)限只與 Windows Server 2003 兼容純 2003 環(huán)境選它安全設(shè)置更嚴(yán)格還原模式密碼自定義強(qiáng)密碼目錄服務(wù)還原模式專(zhuān)用和域管理員密碼分開(kāi)摘要核對(duì)后下一步這里還能回頭改過(guò)了這一步就開(kāi)始寫(xiě)庫(kù)幾個(gè)值得多解釋兩句的點(diǎn)「在新林中的域」這個(gè)選項(xiàng)意味著當(dāng)前這臺(tái)機(jī)器會(huì)成為新森林的根域同時(shí)自動(dòng)持有全部五個(gè) FSMO 角色和全局編錄這是后面遷移章節(jié)的起點(diǎn)。如果選錯(cuò)成「現(xiàn)有域的額外域控制器」向?qū)?huì)要求提供父域憑據(jù)環(huán)境里根本沒(méi)有只能退出重來(lái)。數(shù)據(jù)庫(kù)和日志文件分開(kāi)存放不是形式主義。活動(dòng)目錄數(shù)據(jù)庫(kù)文件 NTDS.dit 的寫(xiě)入模式和日志文件差別很大日志是順序追加寫(xiě)數(shù)據(jù)庫(kù)是隨機(jī)讀寫(xiě)放在同一塊盤(pán)上日志刷盤(pán)會(huì)被數(shù)據(jù)庫(kù)的隨機(jī) IO 拖慢域控在用戶(hù)集中登錄的早高峰會(huì)明顯卡頓。實(shí)驗(yàn)環(huán)境一塊盤(pán)無(wú)所謂生產(chǎn)環(huán)境至少分兩個(gè)分區(qū)。DNS 注冊(cè)診斷這一頁(yè)給三個(gè)選項(xiàng)第二項(xiàng)的大意是「在這臺(tái)計(jì)算機(jī)上安裝并配置 DNS 服務(wù)器將使用此 DNS 服務(wù)器作為該域的 DNS 服務(wù)器」選它之后向?qū)?huì)自動(dòng)裝 DNS 服務(wù)并建好正向區(qū)域。第一項(xiàng)是「不在本機(jī)安裝 DNS稍后手動(dòng)配置」這種方式適合 DNS 已經(jīng)由別的團(tuán)隊(duì)統(tǒng)一管理、要單獨(dú)提申請(qǐng)的場(chǎng)景如果本機(jī) DNS 沒(méi)配好就選它裝完域控會(huì)得到一個(gè)客戶(hù)端連不上的域。原始資料里選第二項(xiàng)是對(duì)的。權(quán)限頁(yè)面選 2003 兼容模式會(huì)啟用更嚴(yán)格的安全設(shè)置比如對(duì)匿名查詢(xún)的限制。只有當(dāng)林里還存在 Windows 2000 域控、需要向下兼容時(shí)才選另一個(gè)選項(xiàng)。選完這一頁(yè)就沒(méi)有回頭路了。還原模式密碼是另一套獨(dú)立的口令只在開(kāi)機(jī)按 F8 進(jìn)入目錄服務(wù)還原模式時(shí)使用用于離線(xiàn)恢復(fù) NTDS.dit。它和域管理員密碼沒(méi)有任何關(guān)系很多人裝完就忘真出事要恢復(fù)時(shí)抓瞎。我一般要求它寫(xiě)在兩處紙質(zhì)交接單和密碼管理工具里各一份不許只存在腦子里。2.3 裝完先自檢別急著加第二臺(tái)向?qū)芡陼?huì)提示重啟重啟后第一件事不是去加輔助域控而是把自檢做完。主域控如果本身是帶病的后面所有復(fù)制問(wèn)題都會(huì)顯得像玄學(xué)排查成本翻幾倍。我習(xí)慣跑這么幾條:: 1. 看 SYSVOL 和 NETLOGON 兩個(gè)共享是否自動(dòng)建立 net share :: 2. 用 Support Tools 里的診斷工具做一輪基礎(chǔ)體檢 dcdiag /test:netlogons /test:advertising /test:services :: 3. 檢查 DNS 里域控的 SRV 記錄是否注冊(cè)完整 nslookup -typesrv _ldap._tcp.dc._msdcs.corp.lab :: 4. 確認(rèn)本機(jī)當(dāng)前持有的 FSMO 角色 netdom query fsmo第一條net share的輸出里必須能看到 SYSVOL 和 NETLOGON 兩個(gè)共享。這兩個(gè)共享是組策略下發(fā)和登錄腳本的基礎(chǔ)沒(méi)有它們域能登錄但策略不生效表現(xiàn)是改了口令策略卻沒(méi)人被強(qiáng)制。共享不存在通常是 SYSVOL 還沒(méi)復(fù)制完或者文件系統(tǒng)權(quán)限異常等幾分鐘再刷新一直不出來(lái)就得看事件日志里的 FRS 報(bào)錯(cuò)。第二條dcdiag需要預(yù)先安裝 Windows Server 2003 Support Tools裝完在%programfiles%\support tools目錄下。三個(gè)測(cè)試項(xiàng)分別驗(yàn)證網(wǎng)絡(luò)登錄權(quán)限、域控是否在 DNS 中正確對(duì)外宣告自己、以及關(guān)鍵服務(wù)KDC、Netlogon、W32Time的啟動(dòng)狀態(tài)輸出里出現(xiàn) failed 的行要逐條看清楚警告warning可以先放一放失敗failed必須當(dāng)場(chǎng)解決。第三條nslookup查 SRV 記錄正常應(yīng)該返回_ldap._tcp.dc._msdcs.corp.lab對(duì)應(yīng)的主機(jī)名和端口 389。如果返回「找不到」說(shuō)明 DNS 自動(dòng)注冊(cè)沒(méi)成功客戶(hù)端加入域時(shí)會(huì)報(bào)找不到域控。修復(fù)方式是重啟 Netlogon 服務(wù)觸發(fā)重新注冊(cè)命令是net stop netlogon net start netlogon還不行就手工檢查 DNS 正向區(qū)域里_msdcs、_sites、_tcp、_udp四個(gè)子目錄是否存在。第四條netdom query fsmo同樣來(lái)自 Support Tools輸出會(huì)列出五個(gè)角色分別落在哪臺(tái)機(jī)器上。剛裝完應(yīng)該是五個(gè)角色全部指向 DCA.corp.lab這個(gè)輸出是后面遷移的基準(zhǔn)線(xiàn)建議截圖存檔遷移完再跑一次做對(duì)比。這四條命令加起來(lái)不到兩分鐘能把八成的基礎(chǔ)問(wèn)題擋在門(mén)外。等第二臺(tái)機(jī)器加入之后再發(fā)現(xiàn)就分不清是主域控的鍋還是復(fù)制鏈路的鍋了。3. 輔助域控加入ping 得通不等于復(fù)制得通3.1 地址和 DNS 指向決定了 dcpromo 能不能找到域輔助域控的準(zhǔn)備工作看著簡(jiǎn)單出問(wèn)題的概率卻最高。核心就一句話(huà)B 機(jī)的首選 DNS 必須指向 A 機(jī)不能指向任何外部 DNS也不能指向自己。因?yàn)?dcpromo 加入現(xiàn)有域的第一步是查_(kāi)ldap._tcp.dc._msdcs.corp.lab這條 SRV 記錄只有 A 機(jī)上的 DNS 有這個(gè)記錄指向別的解析器就等于把導(dǎo)航關(guān)了。配置完先做連通性驗(yàn)證別憑感覺(jué)認(rèn)為「應(yīng)該通了」:: 基礎(chǔ)連通性 ping 10.10.10.10 :: 名稱(chēng)解析是否走通了域名到域控的映射 nslookup corp.lab nslookup -typesrv _ldap._tcp.dc._msdcs.corp.lab :: 直接問(wèn)主域控要域信息這條最接近 dcpromo 內(nèi)部的實(shí)際動(dòng)作 nltest /dsgetdc:corp.lab /forceping只能證明三層通證明不了域服務(wù)可用。真正有說(shuō)服力的是nltest /dsgetdc它模擬的就是客戶(hù)端定位域控的過(guò)程正常輸出會(huì)列出主域控的全名、IP、站點(diǎn)名和標(biāo)志位其中應(yīng)該包含 GC全局編錄標(biāo)記。這條命令報(bào)錯(cuò)「無(wú)法找到域控制器」那 dcpromo 一定失敗先修解析別去改別的。權(quán)限方面加入額外域控制器用的賬號(hào)必須是 Domain Admins 組或者 Enterprise Admins 組成員普通域用戶(hù)不行。我一般直接拿域管理員賬號(hào)操作實(shí)驗(yàn)環(huán)境不糾結(jié)最小權(quán)限但要注意這個(gè)賬號(hào)的密碼里不能有會(huì)觸發(fā)命令行轉(zhuǎn)義的特殊字符否則在向?qū)Ю镎迟N會(huì)出問(wèn)題。3.2 走一遍「現(xiàn)有域的額外域控制器」:: 在輔助域控 B 上執(zhí)行 dcpromo向?qū)窂胶椭饔蚩卮罱ㄓ忻黠@分叉從第二頁(yè)開(kāi)始就不一樣了第一步操作系統(tǒng)兼容性頁(yè)面直接下一步。第二步域控制器類(lèi)型選「現(xiàn)有域的額外域控制器」和主域控那臺(tái)選「新域的域控制器」正好相反。這一步選錯(cuò)會(huì)把 B 機(jī)變成一個(gè)新森林的根兩臺(tái)機(jī)器各管各的表面上都叫域控實(shí)際上毫無(wú)關(guān)系。第三步網(wǎng)絡(luò)憑據(jù)頁(yè)面填有權(quán)限加入域的賬號(hào)、密碼和域名。域名這里填corp.lab或者 NetBIOS 名CORP都行向?qū)?huì)自動(dòng)解析。如果前面 DNS 沒(méi)配對(duì)這一步會(huì)卡住并提示「無(wú)法聯(lián)系到域 corp.lab 的域控制器」回頭檢查 2.1 和 3.1 的內(nèi)容。第四步額外域控制器域名默認(rèn)帶出corp.lab接受即可。第五步數(shù)據(jù)庫(kù)和日志文件夾同樣建議分開(kāi)放路徑可以和主域控不同但目錄結(jié)構(gòu)保持一致便于后期統(tǒng)一備份。第六步目錄服務(wù)還原模式密碼。這里有個(gè)細(xì)節(jié)輔助域控的還原密碼可以和主域控不同兩臺(tái)機(jī)器各自獨(dú)立。為了降低交接成本我通常設(shè)成一樣但會(huì)在交接文檔里標(biāo)注「兩臺(tái)機(jī)器的 DSRM 密碼相同任何一臺(tái)需要恢復(fù)都使用此口令」。第七步摘要頁(yè)面核對(duì)點(diǎn)下一步開(kāi)始安裝。安裝過(guò)程中會(huì)從主域控復(fù)制完整的目錄數(shù)據(jù)庫(kù)數(shù)據(jù)量大的話(huà)這一步耗時(shí)較長(zhǎng)中間不要中斷。安裝完成后必須重啟重啟之后 B 機(jī)才真正開(kāi)始以域控身份工作。重啟后回到 A 機(jī)打開(kāi)「Active Directory 用戶(hù)和計(jì)算機(jī)」展開(kāi) Domain Controllers 組織單位應(yīng)該能看到 DCB 這個(gè)計(jì)算機(jī)對(duì)象。這一步能驗(yàn)證加入動(dòng)作本身成功但證明不了復(fù)制正常下一節(jié)專(zhuān)門(mén)說(shuō)。3.3 復(fù)制鏈路怎么驗(yàn)證才算真的通了原始資料里寫(xiě)「經(jīng)測(cè)試主域控制器的數(shù)據(jù)能及時(shí)復(fù)制到輔助域控上面」這個(gè)結(jié)論要靠具體手段落地不然出事時(shí)說(shuō)不清。我常用三層驗(yàn)證從粗到細(xì):: 第一層總體摘要看兩臺(tái)域控之間有沒(méi)有失敗計(jì)數(shù) repadmin /replsummary :: 第二層逐條復(fù)制伙伴的詳細(xì)狀態(tài)包括上次成功時(shí)間 repadmin /showrepl :: 第三層手動(dòng)觸發(fā)一次復(fù)制然后立刻回看結(jié)果 repadmin /replicate DCB.corp.lab DCA.corp.lab DCcorp,DClabrepadmin /replsummary輸出的是每個(gè)域控作為源和目標(biāo)時(shí)的最大失敗時(shí)間、失敗次數(shù)。正常狀態(tài)下失敗次數(shù)應(yīng)該是 0最大失敗時(shí)間顯示「never」。只要出現(xiàn)非零失敗次數(shù)第二層命令能定位到是哪一對(duì)復(fù)制伙伴、哪個(gè)命名上下文出的問(wèn)題。repadmin /showrepl會(huì)列出 B 機(jī)所有的入站復(fù)制伙伴每條下面有「上次成功」的時(shí)間戳和連續(xù)失敗次數(shù)。判斷標(biāo)準(zhǔn)很簡(jiǎn)單上次成功時(shí)間應(yīng)該在最近 15 分鐘內(nèi)同站點(diǎn)內(nèi)默認(rèn)復(fù)制間隔連續(xù)失敗必須是 0。第三條手動(dòng)復(fù)制命令適合在改完配置后立即驗(yàn)證參數(shù)依次是目標(biāo)域控、源域控、命名上下文。命名上下文寫(xiě)成DCcorp,DClab這種形式對(duì)應(yīng)域的 DN。執(zhí)行完再用repadmin /showrepl看時(shí)間戳是否刷新刷新了就說(shuō)明鏈路完全正常。圖形界面的等價(jià)操作在「Active Directory 站點(diǎn)和服務(wù)」里展開(kāi) Sites → Default-First-Site-Name → Servers → DCB → NTDS Settings右側(cè)會(huì)列出復(fù)制連接右鍵選擇「立即復(fù)制」即可。想看得更細(xì)可以打開(kāi)事件查看器里的目錄服務(wù)日志篩選來(lái)源為 NTDS Replication 的事件成功復(fù)制的事件 ID 是 1869報(bào)錯(cuò)通常是 1311復(fù)制配置信息不可用或者 8524DNS 名稱(chēng)解析失敗這兩個(gè)錯(cuò)誤碼基本能把大部分復(fù)制故障歸類(lèi)。還有一點(diǎn)容易被忽略同站點(diǎn)內(nèi)的復(fù)制默認(rèn)是變更通知驅(qū)動(dòng)的主域控上有對(duì)象改動(dòng)后大約 15 秒就會(huì)通知輔助域控拉取所以「及時(shí)」是有前提的前提是兩臺(tái)機(jī)器在同一個(gè)站點(diǎn)里。如果后面為了模擬多站點(diǎn)環(huán)境把它們分到不同站點(diǎn)復(fù)制就變成按計(jì)劃間隔執(zhí)行默認(rèn)最短 15 分鐘那時(shí)候再測(cè)「及時(shí)性」會(huì)覺(jué)得怎么都不對(duì)其實(shí)是站點(diǎn)鏈接的開(kāi)銷(xiāo)在起作用。4. FSMO 五角色遷移圖形界面走一遍命令行再兜一次底4.1 遷移前先做 system state 備份角色遷移是不可逆的在線(xiàn)操作雖然正常轉(zhuǎn)移不破壞數(shù)據(jù)但萬(wàn)一中途斷電、網(wǎng)絡(luò)斷、目標(biāo)機(jī)器宕機(jī)目錄數(shù)據(jù)庫(kù)可能處于不一致?tīng)顟B(tài)。動(dòng)手之前必須先做系統(tǒng)狀態(tài)備份這是唯一能回退的手段我稱(chēng)之為后悔藥。Windows Server 2003 自帶的備份工具是 ntbackup命令行方式比圖形界面更適合留檔:: 把系統(tǒng)狀態(tài)備份到 D 盤(pán)帶作業(yè)名和日志 ntbackup backup systemstate /j pre-fsmo-move /f D:\backup\sysstate-01.bkf /l D:\backup\backup.log /m normal參數(shù)逐個(gè)解釋backup systemstate指定備份內(nèi)容為系統(tǒng)狀態(tài)包含注冊(cè)表、COM 類(lèi)注冊(cè)數(shù)據(jù)庫(kù)、引導(dǎo)文件、系統(tǒng)文件以及活動(dòng)目錄數(shù)據(jù)庫(kù)/j是作業(yè)名方便在備份日志里檢索/f指定備份文件路徑.bkf是 ntbackup 的專(zhuān)有格式/l指定日志文件出問(wèn)題時(shí)看這個(gè)/m normal表示普通備份不做增量標(biāo)記。這條命令要在主域控和輔助域控上各跑一次兩臺(tái)機(jī)器都要有可回退的基線(xiàn)。備份文件生成后建議復(fù)制一份到網(wǎng)絡(luò)位置或者移動(dòng)硬盤(pán)不要只留在本機(jī)因?yàn)樽钚枰謴?fù)的場(chǎng)景往往是本機(jī)磁盤(pán)掛了。系統(tǒng)狀態(tài)備份不能單獨(dú)還原部分內(nèi)容恢復(fù)時(shí)必須在目錄服務(wù)還原模式下整份還原或者用權(quán)威還原authoritative restore的方式只恢復(fù)特定對(duì)象。還原模式的開(kāi)機(jī)方式是在啟動(dòng)時(shí)按 F8選擇「目錄服務(wù)還原模式」登錄時(shí)用 2.2 節(jié)里設(shè)置的那個(gè)還原模式密碼不是域管理員密碼。這一整套流程建議在實(shí)驗(yàn)環(huán)境里完整跑一遍真出事的時(shí)候才不至于手忙腳亂。4.2 RID、PDC、基礎(chǔ)結(jié)構(gòu)同一張對(duì)話(huà)框里的三個(gè)角色這三個(gè)角色的轉(zhuǎn)移入口都在「Active Directory 用戶(hù)和計(jì)算機(jī)」里操作路徑高度一致區(qū)別只是操作主機(jī)對(duì)話(huà)框里選哪個(gè)標(biāo)簽頁(yè)。先理解它們各自管什么再動(dòng)手會(huì)穩(wěn)很多角色職責(zé)轉(zhuǎn)移后的直接影響RID 主機(jī)為域內(nèi)所有域控分配 RID 池轉(zhuǎn)移后新用戶(hù)、新計(jì)算機(jī)的 SID 才繼續(xù)分配PDC 仿真主機(jī)兼容舊客戶(hù)端、口令變更優(yōu)先寫(xiě)入、域時(shí)間源轉(zhuǎn)移后密碼修改的即時(shí)性依賴(lài)新主機(jī)基礎(chǔ)結(jié)構(gòu)主機(jī)維護(hù)跨域?qū)ο笠萌缃M成員中的他域用戶(hù)轉(zhuǎn)移后跨域組成員變更才能正確反映具體步驟在輔助域控 B 上打開(kāi)「Active Directory 用戶(hù)和計(jì)算機(jī)」右鍵點(diǎn)擊域名 corp.lab選擇「連接到域控制器」在列表里選中 DCB.corp.lab確定。這一步是關(guān)鍵不切換的話(huà)后面點(diǎn)「操作主機(jī)」看到的還是當(dāng)前連接的域控改來(lái)改去改的是自己。連上之后再次右鍵域名選擇「操作主機(jī)」彈出對(duì)話(huà)框三個(gè)標(biāo)簽頁(yè)分別是 RID、PDC、基礎(chǔ)結(jié)構(gòu)。每個(gè)頁(yè)面里都有一個(gè)「更改」按鈕點(diǎn)擊后系統(tǒng)會(huì)確認(rèn)「是否將操作主機(jī)角色轉(zhuǎn)移到 DCB.corp.lab」選是然后確定。三個(gè)頁(yè)面按同樣方式操作一遍每個(gè)角色轉(zhuǎn)移成功都會(huì)有提示框。這里有一個(gè)經(jīng)典坑基礎(chǔ)結(jié)構(gòu)主機(jī)如果和全局編錄部署在同一臺(tái)機(jī)器上它會(huì)停止更新跨域?qū)ο笠靡驗(yàn)樗J(rèn)為自己的數(shù)據(jù)已經(jīng)是最新的。判斷規(guī)則是——如果林里所有域控都是全局編錄那基礎(chǔ)結(jié)構(gòu)主機(jī)不起作用放哪都無(wú)所謂如果林里存在非全局編錄的域控基礎(chǔ)結(jié)構(gòu)主機(jī)就必須放在非全局編錄的域控上。原始資料的場(chǎng)景里兩臺(tái)都是全局編錄所以不受影響但換到有三四臺(tái)域控的環(huán)境里這一條不檢查就會(huì)埋雷表現(xiàn)是跨域組的成員變更延遲很久才生效還查不出原因。PDC 仿真主機(jī)還有個(gè)隱性職責(zé)是域的時(shí)間源。轉(zhuǎn)移完成后新持有者會(huì)成為域內(nèi)時(shí)間的權(quán)威來(lái)源如果這臺(tái)機(jī)器的 CMOS 電池老化導(dǎo)致時(shí)間漂移整個(gè)域的時(shí)間都會(huì)跟著漂。我一般會(huì)在這臺(tái)機(jī)器上配一個(gè)可靠的外部時(shí)間源用w32tm /config /manualpeerlist:... /syncfromflags:manual /reliable:yes /update命令搞定然后net stop w32time net start w32time重啟時(shí)間服務(wù)。4.3 域命名主機(jī)與架構(gòu)主機(jī)兩個(gè)藏起來(lái)的控制臺(tái)域命名主機(jī)管的是林級(jí)別的域增刪入口在另一個(gè)管理工具里在輔助域控上打開(kāi)「Active Directory 域和信任關(guān)系」先右鍵根節(jié)點(diǎn)選擇「連接到域控制器」選中 DCB確定。然后再次右鍵根節(jié)點(diǎn)選擇「操作主機(jī)」對(duì)話(huà)框里只有一個(gè)標(biāo)簽頁(yè)點(diǎn)「更改」確認(rèn)。這個(gè)角色是林級(jí)別的整個(gè)林只有一臺(tái)持有者轉(zhuǎn)移過(guò)程中如果提示權(quán)限不足檢查當(dāng)前登錄賬號(hào)是否屬于 Enterprise Admins。架構(gòu)主機(jī)更隱蔽默認(rèn)的管理工具里根本沒(méi)有入口必須先注冊(cè)一個(gè)動(dòng)態(tài)鏈接庫(kù)把管理單元放出來(lái):: 注冊(cè)架構(gòu)管理單元 regsvr32 schmmgmt.dll :: 打開(kāi)空白 MMC 控制臺(tái) mmcregsvr32是注冊(cè) DLL 組件的標(biāo)準(zhǔn)命令schmmgmt.dll位于%systemroot%\system32目錄下注冊(cè)成功會(huì)彈出一個(gè)提示框。注冊(cè)完成后運(yùn)行mmc打開(kāi)空白控制臺(tái)按 CtrlM 或者菜單里的「添加/刪除管理單元」在列表里找到「Active Directory 架構(gòu)」添加、關(guān)閉、確定。接下來(lái)兩步順序不能顛倒先右鍵「Active Directory 架構(gòu)」節(jié)點(diǎn)選擇「更改域控制器」點(diǎn)「指定名稱(chēng)」輸入DCB.corp.lab確定。確認(rèn)當(dāng)前連接已經(jīng)切到輔助域控之后再右鍵該節(jié)點(diǎn)選擇「操作主機(jī)」點(diǎn)「更改」按提示確認(rèn)。如果順序搞反了直接點(diǎn)操作主機(jī)改的可能是當(dāng)前默認(rèn)連接的域控通常是主域控自己你會(huì)看到一個(gè)「更改」按鈕點(diǎn)下去毫無(wú)反應(yīng)或者報(bào)錯(cuò)因?yàn)榧軜?gòu)主機(jī)默認(rèn)就在林里的第一臺(tái)域控上。原始資料里特別強(qiáng)調(diào)先改域控制器再改操作主機(jī)就是踩過(guò)這個(gè)坑留下的經(jīng)驗(yàn)。架構(gòu)主機(jī)的轉(zhuǎn)移需要 Schema Admins 權(quán)限而且這個(gè)角色的變更會(huì)觸發(fā)整個(gè)林的架構(gòu)同步操作時(shí)林內(nèi)所有域控最好都在線(xiàn)。如果某臺(tái)域控長(zhǎng)時(shí)間離線(xiàn)架構(gòu)更新會(huì)在它恢復(fù)后集中推送極端情況下會(huì)導(dǎo)致復(fù)制沖突。生產(chǎn)環(huán)境做這一步一般會(huì)安排在變更窗口內(nèi)。4.4 全局編錄遷移與 ntdsutil 命令行兜底全局編錄不是 FSMO 角色但它決定了登錄驗(yàn)證和跨域查詢(xún)能不能工作必須和五個(gè)角色一起遷。默認(rèn)情況下林里的第一臺(tái)域控就是全局編錄新建的額外域控默認(rèn)不帶這個(gè)勾。圖形方式在「Active Directory 站點(diǎn)和服務(wù)」里展開(kāi) Sites → Default-First-Site-Name → Servers → DCB → 右鍵 NTDS Settings → 屬性勾選「全局編錄」確定。然后對(duì) DCA 做反向操作展開(kāi)到 DCA 的 NTDS Settings 屬性取消勾選。順序很重要先給 B 機(jī)勾上等目錄數(shù)據(jù)完整復(fù)制過(guò)來(lái)用 3.3 節(jié)的方法確認(rèn)沒(méi)有未完成的復(fù)制再取消 A 機(jī)的勾。反過(guò)來(lái)操作會(huì)有個(gè)窗口期林里一臺(tái)全局編錄都沒(méi)有客戶(hù)端登錄時(shí)報(bào)「找不到全局編錄服務(wù)器」所有依賴(lài) GC 的查詢(xún)?nèi)渴?。這個(gè)窗口期哪怕只有幾分鐘也夠用戶(hù)打電話(huà)了。五個(gè)角色全部轉(zhuǎn)移完之后用命令行的方式復(fù)核一遍同時(shí)準(zhǔn)備好 seize 的語(yǔ)法以備不時(shí)之需:: 進(jìn)入目錄服務(wù)維護(hù)工具 ntdsutil :: 進(jìn)入 FSMO 維護(hù)上下文 roles :: 建立到目標(biāo)域控的連接 connections connect to server DCB.corp.lab quit :: 逐個(gè)轉(zhuǎn)移角色正常轉(zhuǎn)移要求原持有者在線(xiàn) transfer RID master transfer PDC transfer infrastructure master transfer domain naming master transfer schema master :: 退出 quit quit這套交互式命令的層級(jí)要看清ntdsutil是頂層提示符是ntdsutil:輸入roles進(jìn)入fsmo maintenance:輸入connections進(jìn)入server connections:connect to server之后必須quit退回到fsmo maintenance:才能執(zhí)行 transfer 命令在server connections:提示符下敲 transfer 會(huì)提示命令無(wú)效。這是新手最常卡住的地方。transfer和seize的區(qū)別值得單獨(dú)說(shuō)清楚兩者語(yǔ)義完全不同命令適用場(chǎng)景前提條件后果transfer原持有者正常在線(xiàn)計(jì)劃內(nèi)遷移原域控可達(dá)角色平滑移交原機(jī)自動(dòng)降為普通域控seize原持有者徹底損壞、永久下線(xiàn)確認(rèn)原機(jī)不會(huì)再上線(xiàn)強(qiáng)制奪取原機(jī)恢復(fù)后不能直接接入網(wǎng)絡(luò)seize是最后手段。如果你的主域控只是暫時(shí)宕機(jī)、硬盤(pán)還能修千萬(wàn)別用 seize。一旦強(qiáng)奪原機(jī)上的目錄數(shù)據(jù)庫(kù)里還認(rèn)為自己是角色持有者修好之后直接開(kāi)機(jī)接入網(wǎng)絡(luò)就會(huì)出現(xiàn)兩個(gè) RID 主機(jī)同時(shí)分配 RID 池的情況SID 沖突、復(fù)制沖突接踵而至清理起來(lái)比重裝還麻煩。真要強(qiáng)奪原機(jī)恢復(fù)后必須先做元數(shù)據(jù)清理metadata cleanup把它從林中徹底摘掉再考慮是否重新加入。命令行方式還有一個(gè)好處是可以寫(xiě)成批處理留檔。我習(xí)慣把整個(gè) transfer 序列寫(xiě)成一個(gè).bat文件存在運(yùn)維目錄里遷移時(shí)直接執(zhí)行事后作為變更記錄的一部分歸檔比截圖可靠。5. 避坑與排查五個(gè)把遷移搞翻車(chē)的現(xiàn)場(chǎng)5.1 搭建階段的兩個(gè)高頻錯(cuò)誤坑一輔助域控的 DNS 指向了外部解析器現(xiàn)象在 B 機(jī)上運(yùn)行dcpromo選「現(xiàn)有域的額外域控制器」填完憑據(jù)后卡住提示「無(wú)法聯(lián)系到域 corp.lab 的域控制器請(qǐng)確認(rèn)域名輸入正確」。原因B 機(jī)的首選 DNS 被設(shè)成了運(yùn)營(yíng)商地址或者網(wǎng)關(guān)地址解析corp.lab時(shí)查不到 SRV 記錄。dcpromo 定位域控完全依賴(lài) DNS不依賴(lài)廣播或者 hosts 文件。解決把 B 機(jī)首選 DNS 改回主域控 IPipconfig /flushdns清緩存再用nslookup -typesrv _ldap._tcp.dc._msdcs.corp.lab驗(yàn)證能解析出記錄然后重新跑 dcpromo。如果不想每次都手改可以在 B 機(jī) hosts 里加一條靜態(tài)記錄做兜底但那是權(quán)宜之計(jì)DNS 的正規(guī)配置不能省??佣饔蚩匮b完不做 DNS 自檢SRV 記錄缺失現(xiàn)象主域控本身能登錄但任何客戶(hù)端加入域都報(bào)「找不到域」輔助域控也加不進(jìn)來(lái)。原因dcpromo 安裝過(guò)程中如果 DNS 服務(wù)安裝失敗、或者安裝后 Netlogon 服務(wù)沒(méi)有正常啟動(dòng)SRV 記錄就不會(huì)自動(dòng)注冊(cè)。很多人裝完看到「安裝成功」的提示就直接往下走跳過(guò)了驗(yàn)證。解決在 A 機(jī)上重啟 Netlogon 服務(wù)觸發(fā)重新注冊(cè)命令是net stop netlogon net start netlogon然后nslookup復(fù)查 SRV 記錄。如果還是沒(méi)有手工檢查 DNS 控制臺(tái)里corp.lab區(qū)域下的_msdcs、_sites、_tcp、_udp四個(gè)文件夾是否存在缺哪個(gè)就手工建或者把 DNS 區(qū)域刪掉重裝。這個(gè)坑我在實(shí)驗(yàn)環(huán)境里踩過(guò)一次重裝 DNS 花了半小時(shí)后來(lái)就養(yǎng)成了裝完必跑 SRV 查詢(xún)的習(xí)慣。5.2 遷移階段的三個(gè)致命操作坑三跳過(guò)備份直接 seize原機(jī)修好后又接回網(wǎng)絡(luò)現(xiàn)象主域控硬件故障情急之下在輔助域控上執(zhí)行了seize奪取全部角色。幾天后原機(jī)修好開(kāi)機(jī)接入網(wǎng)絡(luò)域內(nèi)開(kāi)始出現(xiàn)用戶(hù)登錄隨機(jī)失敗、新建賬號(hào) SID 沖突、復(fù)制報(bào)錯(cuò) 8606對(duì)象已存在但屬性不同。原因seize 只是讓新機(jī)器接管角色原機(jī)的目錄數(shù)據(jù)庫(kù)里仍然記錄自己是角色持有者。兩臺(tái)機(jī)器同時(shí)對(duì)同一批對(duì)象做寫(xiě)入復(fù)制引擎無(wú)法判斷誰(shuí)是權(quán)威沖突就此產(chǎn)生。解決這個(gè)坑基本沒(méi)有優(yōu)雅的補(bǔ)救辦法標(biāo)準(zhǔn)流程是立即把原機(jī)斷網(wǎng)在正常域控上用ntdsutil的metadata cleanup清除原機(jī)的域控元數(shù)據(jù)把它的計(jì)算機(jī)賬號(hào)、復(fù)制連接、DNS 記錄全部摘干凈然后重裝系統(tǒng)再重新加入。從那以后我這邊有一條硬規(guī)定只要用了 seize原機(jī)在元數(shù)據(jù)清理完成之前網(wǎng)線(xiàn)不許插??铀闹晦D(zhuǎn)移了角色忘了遷移全局編錄現(xiàn)象五個(gè) FSMO 角色都顯示在新域控上了netdom query fsmo輸出也正確但客戶(hù)端登錄變慢、Outlook 查全球地址簿失敗、跨域組查詢(xún)超時(shí)。原因全局編錄還留在原主域控上或者兩臺(tái)機(jī)器的 GC 勾選狀態(tài)搞反了——新機(jī)器沒(méi)勾上老機(jī)器先取消了。整個(gè)林里沒(méi)有可用的 GC所有依賴(lài)全局編錄的查詢(xún)都會(huì)退化成慢速查詢(xún)或者直接失敗。解決在「Active Directory 站點(diǎn)和服務(wù)」里按 4.4 節(jié)的順序重新操作先給新域控勾上 GC用repadmin /showrepl確認(rèn)復(fù)制完成再取消老域控的勾選。判斷 GC 是否真的生效可以用nltest /dsgetdc:corp.lab /gc指定查詢(xún)?nèi)志庝涊敵龅姆?wù)器應(yīng)該是新域控??游寮軜?gòu)主機(jī)轉(zhuǎn)移時(shí)沒(méi)先切換域控制器現(xiàn)象在 MMC 里添加了「Active Directory 架構(gòu)」管理單元右鍵點(diǎn)「操作主機(jī)」點(diǎn)「更改」按鈕是灰的或者點(diǎn)下去報(bào)「拒絕訪(fǎng)問(wèn)」。原因MMC 控制臺(tái)默認(rèn)連接到當(dāng)前登錄域或者林根域的第一臺(tái)域控而架構(gòu)主機(jī)默認(rèn)就在那臺(tái)機(jī)器上。你在 B 機(jī)上點(diǎn)「更改」實(shí)際是在對(duì) A 機(jī)自己操作等同于「把角色從 A 遷到 A」系統(tǒng)自然不會(huì)讓你點(diǎn)。解決先右鍵「Active Directory 架構(gòu)」節(jié)點(diǎn)選「更改域控制器」→「指定名稱(chēng)」→ 輸入DCB.corp.lab確定之后再操作主機(jī)。這個(gè)順序原始資料里寫(xiě)得很明確但實(shí)際操作時(shí)因?yàn)檫x項(xiàng)藏得深很容易漏掉。同樣的問(wèn)題在「Active Directory 域和信任關(guān)系」里也有操作域命名主機(jī)之前必須先連接目標(biāo)域控。排查這類(lèi)問(wèn)題的通用思路是任何一個(gè)「操作主機(jī)」對(duì)話(huà)框點(diǎn)開(kāi)之后第一眼先看對(duì)話(huà)框標(biāo)題或者描述里顯示的當(dāng)前域控名字是不是你以為的那臺(tái)。不是的話(huà)先斷開(kāi)重連別急著點(diǎn)更改。這個(gè)習(xí)慣能省掉大量「改了沒(méi)反應(yīng)」的困惑。6. 遷移后的驗(yàn)證與善后三條命令把「以為成功」變成「確認(rèn)成功」角色轉(zhuǎn)移的對(duì)話(huà)框提示「操作成功」只代表這一次 RPC 調(diào)用完成了不代表整個(gè)域的狀態(tài)健康。我一般用三條命令做最終驗(yàn)收跑完截圖存檔作為變更單的附件。:: 1. 確認(rèn)五個(gè)角色的實(shí)際歸屬 netdom query fsmo :: 2. 對(duì)目標(biāo)域控做一輪完整診斷重點(diǎn)看復(fù)制和 DNS dcdiag /v /c /e /s:DCB.corp.lab :: 3. 用 CSV 格式導(dǎo)出復(fù)制拓?fù)浔阌陂L(zhǎng)期歸檔對(duì)比 repadmin /showrepl /csv D:\backup\repl-after-move.csv第一條的輸出里RID、PDC、基礎(chǔ)結(jié)構(gòu)、域命名、架構(gòu)五行都應(yīng)該指向DCB.corp.lab。如果還有一行指向老機(jī)器說(shuō)明那個(gè)角色沒(méi)轉(zhuǎn)成功回到第 4 章對(duì)應(yīng)小節(jié)重做。第二條的/v是詳細(xì)模式/c表示對(duì)所有測(cè)試項(xiàng)執(zhí)行包括一些默認(rèn)跳過(guò)的/e表示檢查林內(nèi)所有域控/s指定起點(diǎn)服務(wù)器。這條跑完輸出很長(zhǎng)重點(diǎn)看末尾的「failed」匯總行和 5.1、5.2 里提到的那幾個(gè)關(guān)鍵測(cè)試項(xiàng)。warning 可以接受failed 必須清零。第三條導(dǎo)出的 CSV 會(huì)記錄每一對(duì)復(fù)制伙伴的名稱(chēng)、上次成功時(shí)間、失敗次數(shù)、錯(cuò)誤碼。這份文件的價(jià)值在于時(shí)間維度上的對(duì)比——遷移當(dāng)天導(dǎo)一份一周后再導(dǎo)一份兩次對(duì)比如果失敗次數(shù)沒(méi)有增長(zhǎng)、上次成功時(shí)間都在滾動(dòng)說(shuō)明復(fù)制鏈路穩(wěn)定。出現(xiàn)新的錯(cuò)誤碼能第一時(shí)間發(fā)現(xiàn)不用等用戶(hù)報(bào)障。善后工作里最容易漏的是老域控的處置。角色和全局編錄都遷走之后老機(jī)器還留在 Domain Controllers 組織單位里仍然參與復(fù)制、仍然占著一個(gè)域控的席位。如果它的硬件確實(shí)要退役正確的收尾是用dcpromo執(zhí)行降級(jí)把它變成普通成員服務(wù)器或者直接退域讓域控元數(shù)據(jù)被自動(dòng)清理干凈。降級(jí)之前務(wù)必確認(rèn)新域控已經(jīng)承擔(dān)全部角色、GC 復(fù)制完成、并且至少有一份可用的系統(tǒng)狀態(tài)備份——降級(jí)本身也會(huì)觸發(fā)復(fù)制和數(shù)據(jù)庫(kù)變更出問(wèn)題同樣需要恢復(fù)手段。降級(jí)命令也是dcpromo向?qū)?huì)提示「這個(gè)服務(wù)器是最后一個(gè)域控制器嗎」選否輸入有權(quán)限的憑據(jù)確認(rèn)后開(kāi)始降級(jí)。如果選是它會(huì)把這個(gè)域連同里面的所有對(duì)象一起刪掉那一瞬間整個(gè)域就沒(méi)了所以這一頁(yè)要看得特別仔細(xì)。從那以后我每次做完角色遷移都會(huì)強(qiáng)制走一遍「三條命令 一次備份校驗(yàn) 老機(jī)器降級(jí)確認(rèn)」的收尾流程哪怕領(lǐng)導(dǎo)催著說(shuō)趕緊下班也不省這一步。遷移這活兒最怕的就是「看起來(lái)成功了」等到用戶(hù)登錄不上再回頭查往往已經(jīng)是幾天后的事日志滾沒(méi)了現(xiàn)場(chǎng)也沒(méi)了。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取