Windows操作系統作為優秀的操作系統,由開發操作系統的微軟公司控制接口和設計,公開標準,因此,有大量商業公司在該操作系統上開發商業軟件。 我們介紹了部署額外域控制器,也了解到域內所有的域控制器都有一個內容相同的Active Directory,而且 Active Directory 的內容是動態平衡的,也就是說任何一個域控制器修改了 Active Directory,其他的域控制器都會把這個 Active Directory 的變化復制過去。 今天我們要考慮這么一個問題,如果域中有多個域控制器,但他們所擁有的 Active Directory 內容不一致,那么應該以哪個域控制器的 Active Directory 內容為準?可能我們會疑惑,怎么會出現這種情況呢?其實假如有個域控制器由于更換硬件導致有幾天時間沒有在線,而其他的域控制器在這段時間對 Active Directory 進行了修改,那么當這個域控制器重新上線時就會出現我們所提到的這種情形。 當域控制器們發現彼此的 Active Directory 的內容不一致,他們就需要分析一下 Active Directory 的優先級,從而決定以哪個域控制器的 Active Directory 內容為準。Active Directory 的優先級比較主要考慮三方面因素,分別是: 1、版本號:版本號指的是 Active Directory 對象的修改次數,版本號高者優先。例如域中有兩個域控制器 A 和 B,A 域控制器上的用戶 administrator 口令被修改了 4 次,最后被改為 12345;B 域控制器上的用戶 administrator 口令被修改了 5次,最后被改為 123456。那么 A 和 B 發現他們的 Active Directory 中 administrator 口令不一致,這時 A 和 B 會分析版本號,發現版本號分別是 4 和 5,這時 A就會把 B 的 Active Directory內容復制到本機的 Active Direcotry中。 經過這么一輪復制后,A 和 B 的 Active Directory 內容就達到了新的平衡,他 們 Active Directory 中所有對象的版本號也都完全一致了。 2、時間:如果 A 和 B 兩個域控制器都是對 administrator 口令修改了 4 次,那么版本號 就是相同的。這種情況下兩個域控制器就要比較時間因素,看哪個域控制器完成修改的時間靠后,時間靠后者優先。這里我們順便提及一下,Active Directory 中時間是個非常重要的因素,域內計算機的時間誤差不能超過 5 分鐘,而且 Active Directory 還有一個墓碑時間的限制,這些我們以后再詳細加以說明。 3、GUID:如果 A 和 B 兩個域控制器的版本號和時間都完全一致,這時就要比較兩個域控制器的 GUID 了,顯然這完全是個隨機的結果。一般情況下時間完全相同的非常罕見,因此 GUID 這個因素只是一個備選方案。 ? 下面我們引入一個具體的例子讓大家加深理解。 1、域中有兩個域控制器 Florence 和 Firenze。 2、域中有一個用戶張建國,我們在 Firenze 上對 Active Directory 已經進行了備份。? 3、我們在 Florence 上不小心把張建國誤刪除了,顯然 Firenze 會很快把 Active Directory 中的張建國也刪除,以便和 Florence 的 Active Directory 保持一致。 那么我們應該怎么做才能把張建國給恢復回來呢? ? ? 可能我們會想到利用 Firenze 上的 Active Directory 備份來解決這個問題,既然備份中有張建國,那么把備份還原回來不就 OK 了嗎?這個問題沒這么簡單,如果域中只有一個域控制器,那么用備份還原是成立的。但現在域中有兩個域控制器,我們就要好好考慮一下了。 發現問題:Firenze 從備份還原后,Active Directory 中已經擁有了張建國的用戶賬號,但 Firenze 會和 Florence 比較 Active Directory 內容,并且Florence的版本號要高,所以Firenze 認為 Florence 的 Active Directory 比自己的優先級高,因此 Firenze 會把 Florence 的 Active Directory 復制過來, 這樣一來,剛被還原的張建國肯定會被重新刪除掉! 解決思路:在 Firenze 從備份還原 Active Directory 之后,我們可以利用一個工具NTDSUTIL.EXE來修改Active Directory對象的版本號,讓Firenze的版本號大于Florence的版本號,這樣我們就可以利用達到目的了。這種還原方式我們稱為授權還原,下面我們通過一個實例為大家演示一下具體過程。 ? 現在的場景是 Firenze 已經對 Active Directory 進行了備份,備份中包含了域用戶張建國。在備份之后我們誤刪除了張建國,現在我們在 Firenze 上開始利用備份進行主要還原。首先在 Firenze 上重啟計算機,BIOS 自檢后按下 F8, 如下圖所示,選擇進入目錄服務還原模式。目錄服務還原模式可以把 Active Directory 掛起,適合我們從備份還原 Active Directory。 在以下界面中,勾選“授權還原”, 點擊“恢復”,過程需要10-20分鐘,請稍等... 如下圖所示,還原結束后,千萬別選擇重啟計算機,我們還沒有修改Active?Directory的版本號呢,保持以下界面,打開命令提示符窗口。 ? ? 在命令提示符中,運行了 NTDSUTIL,再運行 Authoritative restore 來修改 AD 對象的版本號。 我們可以簡單地運行 restore database,這樣整個 AD 內所有對 象的版本號都將加到最大,版本號加到最大是什么含義呢?微軟規定,AD 對象 的版本號每天最多可以增加10萬。在本例中我們不需要把AD中所有對象的版本號都增加到最大,只要修改張建國的版本號就可以了。因此我們可以使用 Restore Object 命令只針對張建國的版本號進行修改,那如何在AD中表示張建國呢?按照目錄對象的命名規范,張建國隸屬于 ADTEST.COM 域中的人事部組織單位,那我們描述張建國就應該使用“cn=張建國,ou=人事部,dc=adtest,dc=com”。如下圖所示,我們輸入修改指令后觀察一下運行的效果。 ? 運行完命令后,系統詢問是否執行授權還原,我們選擇“是”。 如下圖所示,授權還原成功完成,用 quit 命令退出 NTDSUTIL。 重啟計算機,正常啟動,以域管理員登錄,提示如下, 打開Active?Directory用戶和計算機,如下圖所示,Firenze的 AD 中已經重新擁有了用戶張建國,修改版本號成功了。 ?很多朋友會很自然地想到利用 Firenze 上的 Active Directory 備份來解決這個 問題,既然備份中有張建國,那么把備份還原回來不就 OK 了嗎?這個問題沒這 么簡單,如果域中只有一個域控制器,那么用備份還原是成立的。但現在域中有 兩個域控制器,我們就要好好考慮一下了。Firenze 從備份還原后,Florence 和 Firenze 的 Active Directory 內容就不一樣了,那么 Florence 和 Firenze 的 Active Directory 哪個優先級更高呢?哦,不對,似乎是 Florence 的版本 號更高一些!那我們就可以從理論上得出結論,Firenze 從備份還原之后,Acti ve Directory 中已經擁有了張建國的用戶賬號,但 Firenze 和 Florence 比較 了 Active Directory 之后,Firenze 認為 Florence 的 Active Directory 比自 己的優先級高,因此 Firenze 會把 Florence 的 Active Directory 復制過來, 這樣一來,剛被還原的張建國肯定會被重新刪除掉! 難道我們對此就無能為力了嗎?不是的,在 Firenze 從備份還原 Active Direc tory 之后,我們可以利用一個工具NTDSUTIL.EXE 來修改 Active Direct ory 對象的版本號,讓Firenze的版本號大于Florence的版本號,這樣我們就可以利用游戲規則順利地達到目的了。這種還原方式我們稱為授權還原,下面我們通過一個實例為大家演示一下具體過程。 ? 現在的場景是 Firenze 已經對 Active Directory 進行了備份,備份中包含了域 用戶張建國。在備份之后我們誤刪除了張建國,現在我們在 Firenze 上開始利 用備份進行主要還原。首先在 Firenze 上重啟計算機,BIOS 自檢后按下 F8, 如下圖所示,選擇進入目錄服務還原模式。目錄服務還原模式可以把 Active Di rectory 掛起,適合我們從備份還原 Active Directory。 Windows操作系統對硬件支持良好。 |
溫馨提示:喜歡本站的話,請收藏一下本站!