還原已刪除的Active Directory對象之不完全攻略篇(中)

時間到了現在的2010年,如果你的企業還在使用Windows Server 2003系統做爲基礎平臺,套用一句廣告詞語,那確實是有些"Out"了.(畫外音響起:"老兄,你知足吧,我們這兒還Windows 2000 with SP4呢",那我需要善意地提醒你,到7月份微軟可就不再對2000提供技術支持啦).不過"Out"歸"Out",域控制器上還要堅挺地run着Server 2003,我們的維護工作也還要和Server 2003一樣堅挺着.
話說資訊部門有幾個長期坐在監控室裏查看各臺服務器狀況的MM,同時也身兼着刪除離職人員的域帳號及lotus notes郵件帳號的工作(很辛苦的,7X24小時輪流值班的).每天對着電腦屏幕久了,自然眼睛有些發花,這不,手一抖,就把一個離職員工的工號輸錯了,再一個確定,這位還在職同事的域賬號就被"錯殺"了.第二天一大早,叮叮零零的電話就找到資訊部工程師老馮(也就是本人^_^)頭上了.
..."喂喂喂,是資訊部嗎?我是財務部的XXX,我早上來了開了機輸入帳號密碼登錄不進去啦?!我昨天用都還是好好的呢!"
"那你機器上有彈出什麼提示信息嗎?"+ M( w- H( }  F4 j3 d6 M# h' H
"說是系統無法讓您登錄,請確定您的用戶名及域無誤...balabalabala"- U7 L8 z# r8 y. f0 i. p
"你密碼有正確輸入嗎?前兩天系統有提示你密碼快到期嗎?"老馮見過太多記不清密碼或者密碼過期導致的這個報錯的情況了,所以下意識地這樣問問.(域是正常的,因爲部門的同事們都可以登錄).: [) S/ x; W  P8 y& i4 y( S# q
"輸入對了啊,我都敲了N遍了!"
老馮心想,就算是你不想承認密碼記不清楚了輸錯這麼多遍想必帳號也被鎖定了,先到域控上看一下吧.- p8 V! I+ u- F+ t! M& M4 m" o) G
於是乎,老馮使用Dameware連接到域控制器上(一個單域兩個域控,都run的是Windows Server 2003 with SP2,老馮也"out"着...T_T),打開"Active Directory用戶和計算機"控制檯,調出"查找用戶,聯繫人及組"的搜索框,輸入了來電員工的工號f6825091然後開始查找,結果返回的是"搜索不到相符的項目".
"昨天還能用今天就用不了了..杯具了,難不成被人刪掉了?"(域管理員可不止老馮一個.)
聯想到此,老馮不慌不忙地在域控上的"開始"--->"運行"裏叫出好幫手"ldp.exe".3 s0 A3 d( G+ w
5 e1 p; a8 c7 n9 m
  這個"ldp.exe"工具是做什麼用的呢?
老馮這裏可要站出來爲這位好朋友好好宣傳一下了.- M" z  h& j) ?2 M
  在我們把安裝有Windows Server 2003 Standard/Enterprise系統(及其以上)的服務器提升爲域控制器後,都會內置這個ldp.exe工具.它可以用於對任何像是Active Directory這樣的LDAP目錄進行連接、綁定、搜索、修改、添加和刪除,而老馮最常用的就是拿它來查看存儲在Active Directory中的對象等數據.  N0 Y  m* k) ~
+ H: }& h/ ^# i; `$ Y! e
  在老馮叫出了ldp.exe的主程序窗口後,它需要先確認召喚它的主人的身份.點擊Connection(連接),然後在下拉菜單中點擊Bind(綁定),

然後輸入老馮自己的具有域管理員身份的帳號和密碼還有要登錄的域名,點擊"OK".) ^8 J$ E) F+ H4 p5 p9 |. z1 `8 C

可以看到通過身份驗證的提示和一大串別的信息.

接着,下一步,老馮就要去找這(Active Directory)裏面的一個叫做"Deleted Objects"的容器.% `. _/ L4 N' ~4 m" b
  這是什麼東東?又是幹啥用的?
呵呵,各位看官莫急,且聽老馮慢慢道來.* ~7 p- ]5 B7 Z. M: v
其實,當我們在Active Directory中刪除了一個對象時,它並沒有立即就從活動目錄數據庫中被"人間蒸發"掉,而是會被打上一個"已刪除"的標記並被挪到這個叫做"Deleted Objects"的隱藏容器中,這個過程也就是我們常說的邏輯刪除.而這個墓碑對象真正被系統刪除(物理刪除)的時間在Windows Server 2003打上了SP2補丁以後默認爲180天(這個時間也是可以由adsiedit.msc工具進行修改的).也就是說雖然我們於某時刪除了這個活動目錄對象後無法再使用或者說看見它,但它實際上還安安穩穩地躲在"Deleted Objects"容器中直至被刪除時刻的180天后.那麼我們的思路就很明確了,對於還在180天墓碑生存時間裏的被刪除對象,只要找到"Deleted Objects"容器,定位到被刪除對象本身再設法去掉它的"已刪除"標記然後拋回它原來的所在地(原來的OU)中就OK了.: l# f8 b) h. T! y
/ L' N3 p, J; @( f9 v0 A/ [
  So,請接着和老馮一起往下拯救大兵XXX.
上面已經提到了"Deleted Objects"是"隱藏Boss",所以需要多花點力氣(步驟)才能find it.6 V8 I2 U9 ]* J4 j0 w
  老馮繼續操作ldp.exe, 在"Options"菜單中,單擊“Controls”,展開"Load"下拉菜單,單擊"Return deleted objects",然後"確定"." v# U5 P0 U- D8 C0 w# h. E

又回到主畫面,點擊"View"--->"Tree",在BaseDN中輸入DC=CONTOSO,DC=COM,點擊"OK".

在控制檯樹中雙擊根DN,終於可以看到CN=Deleted Objects,DC=contoso,DC=com容器了.
而且令老馮眼前一亮的是,打電話的這個MM的域帳號果然也在此容器內.. \& _2 a$ b0 j5 F" G
" f" S) V, E' x4 s3 O
  抓緊時間,用戶等的有點不耐煩了.
OK,接着在這個被刪除對象上右鍵,選擇"Modify".& ~. e& f( [2 f6 Q

然後在彈出的對話框中依次執行:+ U: }0 `9 q0 r" o: w% U/ ]
1.在“Edit Entry Attributes”中輸入 isDeleted
2.保留“Values”框爲空值/ `3 N/ y3 A2 s5 `( ?7 j" F6 ^
3.在“Operation”下單擊“Delete”,然後單擊“Enter”, q  {7 B9 Y* H, i* l# x
4.在“Edit Entry Attributes”中,輸入 distinguishedName  m# W( l" ^! q; s" _7 w2 g
5.在“Values”中,鍵入此 Active Directory 對象的原始DN(可分辨名稱):CN=f6825091,OU=Finance,DC=contoso,DC=com
6.在“Operation”下單擊“Replace”
7.選中“Extended”複選框,單擊“Enter”,然後單擊“Run”: X4 U$ W$ c5 O, D# r, r

如果一切順利,不會返回任何error信息.
回到"Active Directory用戶和計算機"控制檯上點擊進用戶原來的OU,可以看到用戶賬號已經被還原回來了.
4 z2 h* |& w4 Q! ]

但是,你會發現,除了被還原回來的賬號處於禁用狀態,其屬性中還丟失了很多信息,例如,姓名,所屬組等.這是設計使然.當活動目錄對象被刪除時,除了objectGUID屬性等被保留,其他屬性都會被剔除.如果我們想要修改墓碑對象中哪個屬性會被保留,需要使用ADSIEDIT.MSC工具打開活動目錄架構, 找到想要保留的每個屬性(例如Address),設置對應的searchFlags屬性值爲 0x00000008。然而鏈接屬性,就像組成員關係,即使設置也不能保留。所以被還原回來的用戶帳號還需要手動再加一遍組成員關係等.( n1 n' s; M  _0 m( p1 r: h; i) h

對於用戶組,其恢復過程與用戶相似,這裏就不贅述了.- ?3 a7 w0 e! A! o& Q2 U: G, a

====================================================8 m  t" d& \( [
) y! K" @* w( g( q0 j4 g$ w  [
  話說在老馮成功地使用ldp.exe工具輕鬆地還原了單個被刪除的Active Directory對象後,給做在監控室裏的小妹們發了封郵件友善地提示她們以後刪除帳號要先看清楚再動手,小妹們謹記教誨,自此相安無事.6 N) P, p; V0 n$ R- g7 Y" F
  又過了幾日,坐在老馮旁邊的新進工程師小周悄悄地湊過來問,"馮哥,我剛纔一不小心在一個OU裏刪除了一票用戶帳號".6 B( r7 s6 m# B' L- W
  正在喝茶的老馮聽罷差點沒一口水噴在電腦屏幕上.
"額,怎麼這麼不小心啊?"& k7 F( a# i1 Y# t6 l3 W7 T
"不好意思啊哥,最近偷菜把手指功夫練的太靈活了,不小心就多點了那麼幾下
老馮忙不迭地登到域控上一看,Oh my lady gaga plus Orz.市場部OU下原來大概有二,三十號人,現在就剩倆了.這要還用上回的還原方法(LDP.EXE)可就不靈了,不等你恢復好他們部門老大怕都早已一個電話打到自己老闆那去啦.' A; }6 a/ G( h$ z$ \. n8 R. a
  趕緊請出AdRestore.exe吧~(下載地址: http://live.sysinternals.com,下載成功後請將此程序拷貝入%windir%system32目錄下)& I' {* e$ g% o" E
  adrestore.exe使用起來很簡單,命令提示符中鍵入adrestore回車,就可以看到被刪除的活動目錄對象信息," h  {+ P; f: ^, ]
* n" c* |7 P  i/ e! [- C2 p; P8 M
; ^' w8 O1 q! G4 e5 s+ n8 E  X
然後使用adrestore -r 後面加想要被還原的對象的cn,回車4 U8 o  z8 Z3 O. q. z/ B

會提示是否要還原選定對象,鍵入Y,再回車,
; u  g5 B& Q, y' R, H/ ]' j  m) b" K
被刪除的用戶也順利恢復了.比起使用ldp.exe可真是大大節省了時間.7 _, ?% @) k: w( V* v" n/ E: e
不過和ldp.exe一樣,存在帳戶屬性信息丟失和所屬組丟失的情況.2 k: N6 X. I; J& n3 b4 q  Z% H
"好在這個OU裏的帳戶屬性並不複雜,所屬組也就一個,剩下的重複性工作就交給小周來完成吧,當給他一個教訓也是一次鍛鍊機會吧~",老馮心中暗想...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章