Windows LDAP 查詢基本知識(shí)
本文討論了輕量級(jí)目錄訪問協(xié)議 (LDAP) 查詢,它在排查 Microsoft Exchange Server 及它與其目錄之間關(guān)系的故障時(shí)十分有用,但是它也經(jīng)常令人困惑不解。本文介紹了有關(guān) LDAP 查詢的基本信息。
基本 LDAP 語(yǔ)法
=(等于)
此 LDAP 參數(shù)表明某個(gè)屬性等于某個(gè)值的條件得到滿足。例如,如果希望查找“名“屬性為“John”的所有對(duì)象,可以使用:
(givenName=John)
這會(huì)返回“名”屬性為“John”的所有對(duì)象。圓括號(hào)是必需的,以便強(qiáng)調(diào) LDAP 語(yǔ)句的開始和結(jié)束。
&(邏輯與)
如果具有多個(gè)條件并且希望全部條件都得到滿足,則可使用此語(yǔ)法。例如,如果希望查找居住在 Dallas 并且“名”為“John”的所有人員,可以使用:
(&(givenName=John)(l=Dallas))
請(qǐng)注意,每個(gè)參數(shù)都被屬于其自己的圓括號(hào)括起來。整個(gè) LDAP 語(yǔ)句必須包括在一對(duì)主圓括號(hào)中。操作符 & 表明,只有每個(gè)參數(shù)都為真,才會(huì)將此篩選條件應(yīng)用到要查詢的對(duì)象。
!(邏輯非)
此操作符用來排除具有特定屬性的對(duì)象。假定您需要查找“名”為“John”的對(duì)象以外的所有對(duì)象。則應(yīng)使用如下語(yǔ)句:
(!givenName=John)
此語(yǔ)句將查找“名”不為“John”的所有對(duì)象。請(qǐng)注意:! 操作符緊鄰參數(shù)的前面,并且位于參數(shù)的圓括號(hào)內(nèi)。由于本語(yǔ)句只有一個(gè)參數(shù),因此使用圓括號(hào)將其括起以示說明。
*(通配符)
可使用通配符表示值可以等于任何值。使用它的情況可能是:您希望查找具有職務(wù)頭銜的所有對(duì)象。為此,可以使用:
(title=*)
這會(huì)返回“title”屬性包含內(nèi)容的所有對(duì)象。另一個(gè)例子是:您知道某個(gè)對(duì)象的“名”屬性的開頭兩個(gè)字母是“Jo”。那么,可以使用如下語(yǔ)法進(jìn)行查找:
(givenName=Jo*)
這會(huì)返回“名”以“Jo”開頭的所有對(duì)象。
以下是 LDAP 語(yǔ)法的高級(jí)使用示例:
您需要一個(gè)篩選條件,用來查找居住在 Dallas 或 Austin,并且名為“John”的所有對(duì)象。使用的語(yǔ)法應(yīng)當(dāng)是:
(&(givenName=John)(|(l=Dallas)(l=Austin)))
您發(fā)現(xiàn)應(yīng)用程序日志中有 9,548 個(gè)事件,因此需要查找導(dǎo)致這些日志事件的所有對(duì)象。在此情況下,您需要查找所有被禁用的用戶 (msExchUserAccountControl=2),這些用戶的 msExchMasterAccountSID 沒有值。使用的語(yǔ)法應(yīng)當(dāng)是:
(&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))
注意:
! 操作符與通配符的結(jié)合使用可查找屬性未設(shè)置為任何值的對(duì)象。
何時(shí)使用 LDAP 查詢?
在使用 Exchange Server 時(shí),您遇到了使用 LDAP 字符串的情況。例如,當(dāng)您設(shè)置收件人或郵箱管理策略或地址列表過濾器時(shí),或者,當(dāng)您搜索 Active Directory 目錄服務(wù)時(shí),Exchange Server 都會(huì)使用 LDAP。在下面的部分中,我們將介紹一些 LDAP 語(yǔ)句的使用方式。
使用“Active Directory 用戶和計(jì)算機(jī)”進(jìn)行搜索
下例描述了如何“Active Directory 用戶和計(jì)算機(jī)”執(zhí)行搜索:
1.打開“Active Directory用戶和計(jì)算機(jī)”。
2.右擊域?qū)ο蟛⑦x擇查找。
3.單擊查找旁邊的下拉列表,然后選擇自定義搜索。
4.從下一屏幕中,選擇高級(jí)選項(xiàng)卡。
5.在輸入 LDAP 查詢下,輸入相應(yīng)的 LDAP 語(yǔ)句。
本示例嘗試查找職務(wù)為 prez 或姓名以 test 開頭的所有對(duì)象。如果您單擊立即查找,應(yīng)該能夠看到相應(yīng)的輸出,如以下屏幕截圖所示。
使用 LDP 進(jìn)行搜索
您還可以使用 LDP 執(zhí)行搜索,該工具已包括在 Microsoft Windows Server 2003 和 Windows 2000 Server 支持工具之中。該工具不僅為您賦予了搜索域容器的能力,而且允許您搜索配置容器。首先,您應(yīng)打開 LDP 并連接到有效的域控制器。然后,您需要使用相應(yīng)憑證進(jìn)行綁定。請(qǐng)選擇視圖,然后選擇樹視圖。保留基位置 DN 字段為空,然后單擊確定。導(dǎo)航到要搜索的容器,右擊該容器,然后選擇搜索。
將出現(xiàn)一個(gè)對(duì)話框,其中的基位置 DN 字段包含了正確的值。輸入進(jìn)行篩選所依據(jù)的 LDAP 語(yǔ)句,將出現(xiàn)類似如下的內(nèi)容。
如果希望搜索當(dāng)前級(jí)別以下的所有容器,請(qǐng)確信選擇了子樹單選按鈕。單擊運(yùn)行,然后開始查找所有匹配項(xiàng)。
使用 LDIFDE 執(zhí)行搜索
您可能經(jīng)常需要搜索一組滿足特定條件的對(duì)象并且希望建立這些用戶的列表。LDIFDE 是一個(gè)可以用來建立此列表的命令行工具。假定您希望查找并保存 mailNickName 以 Jeff 開頭的所有用戶的列表。那么,您可能會(huì)運(yùn)行如下命令。
C:\〉ldifde -d “DC=witaylorroot,DC=com“ -f c:\output.txt -r “(&(objectClass=user)(mailNickName=jeff*))
在本例中,您將查找三個(gè)對(duì)象并將他們的所有屬性導(dǎo)出到指定的 .txt 輸出文件中。但是,如果您打算導(dǎo)出數(shù)千用戶的查找結(jié)果,導(dǎo)出文件將過于龐大。為此,我們可以使用其他選項(xiàng)。您可以使用 ¨Cl(小寫的 L)開關(guān)指定導(dǎo)出哪些屬性??煞直婷Q將總是被導(dǎo)出,但是如果希望僅導(dǎo)出該名稱,可以在字符串中添加 ¨Clnothing,以簡(jiǎn)化輸出結(jié)果。以下命令便是這樣的一個(gè)例子。
C:\〉ldifde -d “DC=witaylorroot,DC=com“ -f c:\output.txt -l nothing -r “(&(objectClass=user)(mailNickName=jeff*))
請(qǐng)考慮這樣一種情況,您希望使用先前引用的 LDIFDE 導(dǎo)出結(jié)果,但是只想在輸出中包括 homeMDB 屬性。為此,必須使用以下命令。
C:\〉ldifde -d “DC=witaylorroot,DC=com“ -f c:\output.txt -l “homeMDB“ -r “(&(objectClass=user)(mailNickName=jeff*))
dn:CN=jeff,OU=55Users,DC=witaylorroot,DC=com changetype:add homeMDB:CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com
dn:CN=jeff2,CN=Users,DC=witaylorroot,DC=com changetype:add homeMDB:CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com
dn:CN=jeff3,CN=Users,DC=witaylorroot,DC=com changetype:add homeMDB:CN=Private Information Store (WITAYLORNT4EX55),CN=First Storage Group,CN=InformationStore,CN=WITAYLORNT4EX55,CN=Servers,CN=WITAYLORMIXEDSITE,CN=Administrative Groups,CN=WITAYLORORG,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=witaylorroot,DC=com
如果您正在進(jìn)行導(dǎo)出,并且沒有限制導(dǎo)出哪些屬性,可能需要使用 ¨Cn 開關(guān)來排除正常情況下會(huì)包括在內(nèi)的任何值。這有助于防止導(dǎo)出文件的體積變得過于龐大。
在 ADModify 中使用 LDAP 查詢
若要獲得 ADModify 工具,請(qǐng)聯(lián)系微軟產(chǎn)品支持服務(wù)。有關(guān)如何聯(lián)系微軟產(chǎn)品支持服務(wù)的更多信息,請(qǐng)參見微軟支持和幫助網(wǎng)站。
若要通過第三方網(wǎng)站獲得 ADModify 工具,請(qǐng)?jiān)L問以下 GotDotNet 網(wǎng)站:ADModify.NET:Workspace 主頁(yè).
ADModify 是微軟產(chǎn)品支持服務(wù)部門的日常使用工具。對(duì)于大型 Active Directory 環(huán)境,將可能包含數(shù)千用戶的整個(gè)組織單位 (OU) 添加到右側(cè)列表的工作并對(duì)他們進(jìn)行分析以找出所需更改的用戶,這個(gè)過程可能并不那么輕松。因此,我們可以使用其他方法實(shí)現(xiàn)這個(gè)目的。在第一個(gè)屏幕上,選擇修改現(xiàn)有用戶屬性并單擊下一步。在修改 Active Directory 用戶屏幕上,有一個(gè)高級(jí)按鈕。
如果單擊高級(jí)按鈕,將出現(xiàn)自定義 LDAP 篩選條件對(duì)話框。在該對(duì)話框中,可輸入要使用的 LDAP 篩選條件。在本例中,您只想列出啟用了郵件的組。篩選條件看起來如下所示。
然后,單擊確定。選擇希望 ADModify 進(jìn)行搜索的 OU 或域。如果您希望它搜索所選容器的下級(jí)容器,請(qǐng)確信選擇了枚舉用戶時(shí)遍歷子容器。單擊添加到列表,然后在接到需花費(fèi)較長(zhǎng)時(shí)間的警告時(shí)單擊是。滿足所指定條件的對(duì)象現(xiàn)在將顯示在右側(cè)窗格中。
在這里,可突出顯示要修改的對(duì)象,然后繼續(xù)向?qū)У暮罄m(xù)步驟。