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