活動目錄結(jié)構(gòu)的還原操作向來繁瑣,耗時甚多,這主要是其內(nèi)容具有分散性和動態(tài)性, 結(jié)構(gòu)上又具備雙重性(由分層數(shù)據(jù)庫和符合SYSVOL結(jié)構(gòu)的文件系統(tǒng)構(gòu)成),并且缺乏界面友好、操作簡便的工具。因此,當(dāng)人們認(rèn)為域還原才是復(fù)雜耗時的操作時,殊不知,即使是活動目錄的還原操作也遠(yuǎn)非簡易,當(dāng)中也會遇到各種各樣的困難。
有鑒于此,本文將對Windows Server 2008目錄服務(wù)的一些新特性進(jìn)行介紹,讓讀者了解新的功能是如何方便還原操作的。
一、還原的基本條件
通常而言,對象的還原主要是通過命令操作或是重標(biāo)示已被刪除的對象,而這些功能的實現(xiàn)又取決于是否有一個系統(tǒng)級的備份文件。(想要了解更多此方面的消息,可參照微軟知識庫中編號為840001的文章,該文章詳盡的信息會給你更多的幫助。)
在還原過程中,即使有了詳細(xì)的命令和操作步驟,我們?nèi)孕枰⒁庖恍﹩栴}。首先,必須確定最適宜的備份點,這無疑增加了命令式還原的復(fù)雜性。因為這需要用戶能夠在誤操作發(fā)生前,判斷出的備份點--也就是說,備份點中的目標(biāo)數(shù)據(jù)信息都要求是正確無誤的。
除非用戶愿意投資更多的錢用于活動目錄的監(jiān)控和審計解決方案上,否則判斷備份點相當(dāng)困難,當(dāng)然,這也需要長時間的嘗試。數(shù)據(jù)還原是項耗時耗力的工程,可以包括以下幾個步驟:①在活動目錄恢復(fù)模式下重啟域控制器;②從可用的備份文件中選擇一個恢復(fù)活動目錄數(shù)據(jù)庫;③運行ntdsutil命令行工具,從中提取正確的對象信息。
第二,一旦發(fā)生誤刪現(xiàn)象,由于命令行工具ntdsultil的局限性,所以需要提供想要恢復(fù)對象的標(biāo)示名(Distinguished Name,DN) 。另外,要完成還原工作還需要確認(rèn)系統(tǒng)先前的狀態(tài)。
第三個是關(guān)于對象還原的效率問題。實際上,一個對象被刪除后,除了名字的改變,還會被放置到一個特定的活動目錄存放區(qū)中,大多數(shù)標(biāo)準(zhǔn)活動目錄管理工具都設(shè)有這個隱藏存放區(qū)。在存放過程中,對象的大部分屬性都會被剝除,只剩下少數(shù)幾個屬性。如objectGUID、objectSID、sIDHistory和sAMAccountName等。如果再知道CN和lastKnownParent兩個屬性的信息,那么就可以找到被刪除對象的位置,并進(jìn)行恢復(fù)工作。但刪除時被剝除的屬性的重新找回則需借助前兩點來訪問歷史紀(jì)錄,即訪問備份文件。
二、數(shù)據(jù)挖掘工具的優(yōu)點與應(yīng)用
現(xiàn)在有了數(shù)據(jù)挖掘工具(Database Mounting Tool)的幫忙,對于Windows Server 2008下的域控制器,上述的三個問題將迎韌而解。采用命令行執(zhí)行的DSAMAIN.EXE文件是數(shù)據(jù)挖掘工具的主文件,運用它可在只讀模式下運行活動目錄或輕型目錄服務(wù)(以前稱為活動目錄應(yīng)用模式,ADAM)數(shù)據(jù)庫的備份工作;該工具還可通過任一具備LDAP端口通信功能的程序來瀏覽活動目錄內(nèi)容(這包括了大多數(shù)的標(biāo)準(zhǔn)AD管理工具、Active Directory Users and Computers、Active Directory Domains and Trusts、Active Directory Sites and Services、ADSIEdit 或LDP.EXE)。
雖然DSAMAIN.EXE絕大多數(shù)情況都是與Windows Server 2008新特性之一的快照功能聯(lián)合應(yīng)用(在下一篇將詳細(xì)介紹),但它的應(yīng)用范圍遠(yuǎn)非如此。任何Windows Server 2008或是符合VSCS(Volume Shadow Copy Service,卷影拷貝服務(wù))格式的第三方軟件所創(chuàng)建的備份均可被數(shù)據(jù)挖掘工具所加載,并且數(shù)據(jù)挖掘工具還可從備份中提取活動目錄數(shù)據(jù)(NTDS.DIT)。特別一提的是,數(shù)據(jù)挖掘工具兼容VHD格式的全盤和系統(tǒng)狀態(tài)備份,以及ntdsutil工具用ifm命令創(chuàng)建的備份格式,該備份主要是用于執(zhí)行以媒介方式進(jìn)行的安裝。
DSAMAIN需要用戶以-dbpath參數(shù)指定數(shù)據(jù)庫所在的路徑。另外,還需要通過-ldapPort參數(shù)輸入任一整數(shù)用以指定LDAP端口,訪問目錄服務(wù)。在默認(rèn)狀態(tài)下,該整數(shù)會被自動分配給SSL-based LDAP、Global Catalog (GC)和GC SSL access訪問的端口號。當(dāng)然,你也可以通過/sslPort, /gcPort and /gcsslPort參數(shù)來修改相應(yīng)的端口號。如果想以非管理員身份訪問數(shù)據(jù)庫,可使用-allowNonAdminAccess選項,而選項修改的權(quán)利被嚴(yán)格限定在Domain Admins和Enterprise Admins組成員中。
舉個例子,以下的命令行運行于Windows Server 2008的域控制器上,可使Domain Admins和Enterprise Admins組成員通過LDAP端口33389離線瀏覽活動目錄數(shù)據(jù)庫(提取自VSS生成的備份中,存于D:Restore80408NTDSntds.dit文件)。關(guān)于DSAMAIN完整的語法表達(dá)可參見Windows Server 2008技術(shù)庫。
DSAMAIN -dbpath "D:Restore80408NTDSntds.dit" -ldapPort 33389
執(zhí)行上述命令后,如果數(shù)據(jù)庫處于穩(wěn)定狀態(tài),并且指定的端口沒被其他服務(wù)占用的話,不出意外你將會接受到一條確認(rèn)信息:"Microsoft Active Directory Domain Services startup complete."啟動后,DSAMAIN 將一直保持活動狀態(tài)。如需關(guān)閉服務(wù),執(zhí)行CTRL+C鍵盤組合鍵即可實現(xiàn),此時屏幕將會顯示:"Active Directory Domain Services was shut down successfully。",并且命令提示符隨之消失。與此同時,你還可利用前文提及的具備LDAP端口通信程序查視活動目錄的拷貝,并且容許指定相關(guān)的目錄服務(wù)實例。
三、LDAP端口程序
● Active Directory Users and Computers控制臺
在樹型目錄頂部的Active Directory Users and Computers節(jié)點菜單處選擇Change Domain Controller,然后進(jìn)入。在彈出的Change Directory Server對話框中,選擇"This Domain Controller or AD LDS instance",并輸入要運行DSAMAIN的域控制器名稱,加冒號后跟由-ldapPort 指定的LDAP端口號(比如,本文中的33389)。另一種啟動控制臺的方法為,直接在命令提示行中輸入執(zhí)行DSA.MSC /SERVER=DC_Name:LDAP_Port_Number即可。
● Active Directory Sites and Services控制臺
與上文進(jìn)入Active Directory Users and Computers控制臺相似,在Active Directory Sites and Services節(jié)點菜單中選擇Change Domain Controller進(jìn)入活動目錄的設(shè)置部分。同樣,還可在命令提示行中輸入:DSSITE.MSC /SERVER=DC_Name: LDAP_Port_Number。
● Active Directory Domains and Trusts
需要指定DSAMAN加載活動目錄的實例時,可采用與上述兩種相似的步驟:Active Directory Domains and Trusts節(jié)點菜單→Change Active Directory Domain Controller,或是直接運行DOMAIN.MSC /SERVER=DC_Name:LDAP_Port_Number。
● ADSI Edit (ADSIEdit.msc)
這是款低級活動目錄編輯器,可以在同一接口下訪問活動目錄中所有的名稱索引。操作步驟:根目錄ADSI Edit節(jié)點→索引菜單中選擇"Connect to…"選項→彈出"Connection Setting"對話框。如果你是在一臺DSAMAIN活動中的域服務(wù)器上運行,那么在路徑文本框中已顯示有正確的LDAP登入路徑。那么,你只需選擇一個想要連接的名稱索引((Default, Configuration, Schema或RootDSE),并且點擊"Advanced…"命令按鈕指定合適的端口數(shù)字。
● LDP (ldp.exe)
提供高度的多樣性,能最直接地訪問活動目錄的內(nèi)容。為查看一個由DSAMAIN加載的活動目錄實例,操作步驟可分為:
①在"Connect"菜單→選擇"Connect…"選項→指定服務(wù)器名稱和端口號;
②然后再在"Connect"菜單→選擇"Bind…"→給出Domain Admin或Enterprise Admin的授權(quán)(以非特權(quán)帳戶登陸時),或是直接選擇"Bind as currently logged on user"(特權(quán)帳號登陸時);
③在"View"菜單下→選擇"Tree entry" →輸入想要連接的目標(biāo)數(shù)據(jù)的名稱,或是從listbox(與ADSI Edit聯(lián)用可訪問目標(biāo)數(shù)據(jù)的所有區(qū)域)中提取名稱;
④LDP還能停止由DSAMAIN加載的目錄服務(wù)實例,該功能可為遠(yuǎn)程通過LDAP訪問的用戶帶來方便。如想實現(xiàn)此功能,可在連接登陸后,在"Browse"菜單中選擇"Modify entry"。彈出的對話框后,在Attribute文本框中輸入stopservice的屬性為1(DN路徑必須為空),接下來點擊"Enter and Run"命令按鈕。
● CSVDE.exe和LDIFDE.exe 命令行工具
用于抽取由DSAMAIN加載的活動目錄的對象任意一個選定的屬性(兩個工具都需要-t參數(shù)指定用于連接的LDAP端口)。更多語法參數(shù)的信息可參照微軟TechNet關(guān)于CSVDE和LDIFDE的文章。
除了以上介紹外,目前在Windows Sever 2008域控制器中還有一種可被DSAMIN.EXE加載的數(shù)據(jù)生成方式。該法主要技術(shù)是對載有活動目錄數(shù)據(jù)庫的驅(qū)動盤進(jìn)行實時定點快照,快照格式采用VSS。
我們將在下一篇文章中對快照做一個詳細(xì)的介紹。
有鑒于此,本文將對Windows Server 2008目錄服務(wù)的一些新特性進(jìn)行介紹,讓讀者了解新的功能是如何方便還原操作的。
一、還原的基本條件
通常而言,對象的還原主要是通過命令操作或是重標(biāo)示已被刪除的對象,而這些功能的實現(xiàn)又取決于是否有一個系統(tǒng)級的備份文件。(想要了解更多此方面的消息,可參照微軟知識庫中編號為840001的文章,該文章詳盡的信息會給你更多的幫助。)
在還原過程中,即使有了詳細(xì)的命令和操作步驟,我們?nèi)孕枰⒁庖恍﹩栴}。首先,必須確定最適宜的備份點,這無疑增加了命令式還原的復(fù)雜性。因為這需要用戶能夠在誤操作發(fā)生前,判斷出的備份點--也就是說,備份點中的目標(biāo)數(shù)據(jù)信息都要求是正確無誤的。
除非用戶愿意投資更多的錢用于活動目錄的監(jiān)控和審計解決方案上,否則判斷備份點相當(dāng)困難,當(dāng)然,這也需要長時間的嘗試。數(shù)據(jù)還原是項耗時耗力的工程,可以包括以下幾個步驟:①在活動目錄恢復(fù)模式下重啟域控制器;②從可用的備份文件中選擇一個恢復(fù)活動目錄數(shù)據(jù)庫;③運行ntdsutil命令行工具,從中提取正確的對象信息。
第二,一旦發(fā)生誤刪現(xiàn)象,由于命令行工具ntdsultil的局限性,所以需要提供想要恢復(fù)對象的標(biāo)示名(Distinguished Name,DN) 。另外,要完成還原工作還需要確認(rèn)系統(tǒng)先前的狀態(tài)。
第三個是關(guān)于對象還原的效率問題。實際上,一個對象被刪除后,除了名字的改變,還會被放置到一個特定的活動目錄存放區(qū)中,大多數(shù)標(biāo)準(zhǔn)活動目錄管理工具都設(shè)有這個隱藏存放區(qū)。在存放過程中,對象的大部分屬性都會被剝除,只剩下少數(shù)幾個屬性。如objectGUID、objectSID、sIDHistory和sAMAccountName等。如果再知道CN和lastKnownParent兩個屬性的信息,那么就可以找到被刪除對象的位置,并進(jìn)行恢復(fù)工作。但刪除時被剝除的屬性的重新找回則需借助前兩點來訪問歷史紀(jì)錄,即訪問備份文件。
二、數(shù)據(jù)挖掘工具的優(yōu)點與應(yīng)用
現(xiàn)在有了數(shù)據(jù)挖掘工具(Database Mounting Tool)的幫忙,對于Windows Server 2008下的域控制器,上述的三個問題將迎韌而解。采用命令行執(zhí)行的DSAMAIN.EXE文件是數(shù)據(jù)挖掘工具的主文件,運用它可在只讀模式下運行活動目錄或輕型目錄服務(wù)(以前稱為活動目錄應(yīng)用模式,ADAM)數(shù)據(jù)庫的備份工作;該工具還可通過任一具備LDAP端口通信功能的程序來瀏覽活動目錄內(nèi)容(這包括了大多數(shù)的標(biāo)準(zhǔn)AD管理工具、Active Directory Users and Computers、Active Directory Domains and Trusts、Active Directory Sites and Services、ADSIEdit 或LDP.EXE)。
雖然DSAMAIN.EXE絕大多數(shù)情況都是與Windows Server 2008新特性之一的快照功能聯(lián)合應(yīng)用(在下一篇將詳細(xì)介紹),但它的應(yīng)用范圍遠(yuǎn)非如此。任何Windows Server 2008或是符合VSCS(Volume Shadow Copy Service,卷影拷貝服務(wù))格式的第三方軟件所創(chuàng)建的備份均可被數(shù)據(jù)挖掘工具所加載,并且數(shù)據(jù)挖掘工具還可從備份中提取活動目錄數(shù)據(jù)(NTDS.DIT)。特別一提的是,數(shù)據(jù)挖掘工具兼容VHD格式的全盤和系統(tǒng)狀態(tài)備份,以及ntdsutil工具用ifm命令創(chuàng)建的備份格式,該備份主要是用于執(zhí)行以媒介方式進(jìn)行的安裝。
DSAMAIN需要用戶以-dbpath參數(shù)指定數(shù)據(jù)庫所在的路徑。另外,還需要通過-ldapPort參數(shù)輸入任一整數(shù)用以指定LDAP端口,訪問目錄服務(wù)。在默認(rèn)狀態(tài)下,該整數(shù)會被自動分配給SSL-based LDAP、Global Catalog (GC)和GC SSL access訪問的端口號。當(dāng)然,你也可以通過/sslPort, /gcPort and /gcsslPort參數(shù)來修改相應(yīng)的端口號。如果想以非管理員身份訪問數(shù)據(jù)庫,可使用-allowNonAdminAccess選項,而選項修改的權(quán)利被嚴(yán)格限定在Domain Admins和Enterprise Admins組成員中。
舉個例子,以下的命令行運行于Windows Server 2008的域控制器上,可使Domain Admins和Enterprise Admins組成員通過LDAP端口33389離線瀏覽活動目錄數(shù)據(jù)庫(提取自VSS生成的備份中,存于D:Restore80408NTDSntds.dit文件)。關(guān)于DSAMAIN完整的語法表達(dá)可參見Windows Server 2008技術(shù)庫。
DSAMAIN -dbpath "D:Restore80408NTDSntds.dit" -ldapPort 33389
執(zhí)行上述命令后,如果數(shù)據(jù)庫處于穩(wěn)定狀態(tài),并且指定的端口沒被其他服務(wù)占用的話,不出意外你將會接受到一條確認(rèn)信息:"Microsoft Active Directory Domain Services startup complete."啟動后,DSAMAIN 將一直保持活動狀態(tài)。如需關(guān)閉服務(wù),執(zhí)行CTRL+C鍵盤組合鍵即可實現(xiàn),此時屏幕將會顯示:"Active Directory Domain Services was shut down successfully。",并且命令提示符隨之消失。與此同時,你還可利用前文提及的具備LDAP端口通信程序查視活動目錄的拷貝,并且容許指定相關(guān)的目錄服務(wù)實例。
三、LDAP端口程序
● Active Directory Users and Computers控制臺
在樹型目錄頂部的Active Directory Users and Computers節(jié)點菜單處選擇Change Domain Controller,然后進(jìn)入。在彈出的Change Directory Server對話框中,選擇"This Domain Controller or AD LDS instance",并輸入要運行DSAMAIN的域控制器名稱,加冒號后跟由-ldapPort 指定的LDAP端口號(比如,本文中的33389)。另一種啟動控制臺的方法為,直接在命令提示行中輸入執(zhí)行DSA.MSC /SERVER=DC_Name:LDAP_Port_Number即可。
● Active Directory Sites and Services控制臺
與上文進(jìn)入Active Directory Users and Computers控制臺相似,在Active Directory Sites and Services節(jié)點菜單中選擇Change Domain Controller進(jìn)入活動目錄的設(shè)置部分。同樣,還可在命令提示行中輸入:DSSITE.MSC /SERVER=DC_Name: LDAP_Port_Number。
● Active Directory Domains and Trusts
需要指定DSAMAN加載活動目錄的實例時,可采用與上述兩種相似的步驟:Active Directory Domains and Trusts節(jié)點菜單→Change Active Directory Domain Controller,或是直接運行DOMAIN.MSC /SERVER=DC_Name:LDAP_Port_Number。
● ADSI Edit (ADSIEdit.msc)
這是款低級活動目錄編輯器,可以在同一接口下訪問活動目錄中所有的名稱索引。操作步驟:根目錄ADSI Edit節(jié)點→索引菜單中選擇"Connect to…"選項→彈出"Connection Setting"對話框。如果你是在一臺DSAMAIN活動中的域服務(wù)器上運行,那么在路徑文本框中已顯示有正確的LDAP登入路徑。那么,你只需選擇一個想要連接的名稱索引((Default, Configuration, Schema或RootDSE),并且點擊"Advanced…"命令按鈕指定合適的端口數(shù)字。
● LDP (ldp.exe)
提供高度的多樣性,能最直接地訪問活動目錄的內(nèi)容。為查看一個由DSAMAIN加載的活動目錄實例,操作步驟可分為:
①在"Connect"菜單→選擇"Connect…"選項→指定服務(wù)器名稱和端口號;
②然后再在"Connect"菜單→選擇"Bind…"→給出Domain Admin或Enterprise Admin的授權(quán)(以非特權(quán)帳戶登陸時),或是直接選擇"Bind as currently logged on user"(特權(quán)帳號登陸時);
③在"View"菜單下→選擇"Tree entry" →輸入想要連接的目標(biāo)數(shù)據(jù)的名稱,或是從listbox(與ADSI Edit聯(lián)用可訪問目標(biāo)數(shù)據(jù)的所有區(qū)域)中提取名稱;
④LDP還能停止由DSAMAIN加載的目錄服務(wù)實例,該功能可為遠(yuǎn)程通過LDAP訪問的用戶帶來方便。如想實現(xiàn)此功能,可在連接登陸后,在"Browse"菜單中選擇"Modify entry"。彈出的對話框后,在Attribute文本框中輸入stopservice的屬性為1(DN路徑必須為空),接下來點擊"Enter and Run"命令按鈕。
● CSVDE.exe和LDIFDE.exe 命令行工具
用于抽取由DSAMAIN加載的活動目錄的對象任意一個選定的屬性(兩個工具都需要-t參數(shù)指定用于連接的LDAP端口)。更多語法參數(shù)的信息可參照微軟TechNet關(guān)于CSVDE和LDIFDE的文章。
除了以上介紹外,目前在Windows Sever 2008域控制器中還有一種可被DSAMIN.EXE加載的數(shù)據(jù)生成方式。該法主要技術(shù)是對載有活動目錄數(shù)據(jù)庫的驅(qū)動盤進(jìn)行實時定點快照,快照格式采用VSS。
我們將在下一篇文章中對快照做一個詳細(xì)的介紹。