如何使用位元的篩選條件查詢 Active Directory

文章翻譯 文章翻譯
文章編號: 269181 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

Active Directory 物件上的某些屬性是由位元 (Bitwise) 旗標組成。您可能需要查詢以傳回符合所設定的特定位元的物件使用位元運算子的物件。使用 「 輕量型目錄存取通訊協定 (LDAP) 符合的規則控制項來執行這項操作。

其他相關資訊

LDAP 符合的規則格式具有下列語法:
attributenameruleOID: =
其中 attributename 是屬性 ruleOID LDAPDisplayName 就是相符的規則控制項物件識別碼 (OID),且 為您想要用於比較的十進位值。您必須從十六進位轉換為十進位。

ruleOID 值可以是下列其中一項:
  • 1.2.840.113556.1.4.803-這是 LDAP_MATCHING_RULE_BIT_AND 規則。相符的規則是如果從屬性的所有位元與值相符,則為 True。此規則就像是位元的 AND 運算子。
  • 1.2.840.113556.1.4.804-這是 LDAP_MATCHING_RULE_BIT_OR 規則。相符的規則是如果從屬性任何位元與值相符,則為 True。此規則就像是位元的 OR 運算子。
範例是當您想要查詢 Active Directory 的已停用的使用者類別物件。保留此資訊的屬性是 userAccountControl 屬性。這個屬性是由不同的旗標的組合所組成。設定您想要停用該物件的旗標是具有 0x02 (2 十進位) 值的 UF_ACCOUNTDISABLE。位元比較篩選器之指定 userAccountControl UF_ACCOUNTDISABLED 位元集具有會類似這樣:
(UserAccountControl:1.2.840.113556.1.4.803:=2)
下列 Microsoft Visual Basic 範例指令碼使用以上所述位元比較篩選條件:
Set oNSP = GetObject("LDAP://Win2000Server/rootdse")
Set oConfig = GetObject("LDAP://Win2000Server/" & oNSP.get("DefaultNamingContext"))

Set oConn = CreateObject("ADODB.Connection")
oConn.Provider = "ADSDSOObject"
oConn.Open ""

strQuery = "<" & oConfig.ADsPath & ">;(&(objectCategory=person)(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=2));name,objectClass;subtree"

Set oRS = oConn.Execute(strQuery)
While Not oRS.EOF
  MsgBox oRS.Fields("name") 
  oRS.MoveNext
Wend

MsgBox "done"

Set oConn = Nothing
Set oRS = Nothing
Set oConfig = Nothing
Set oNSP = Nothing
				

?考

如需有關如何使用 LDAP 符合的規則,請參閱平台軟體開發套件 (SDK) 的詳細資訊。在內容中找到此資訊:

Networking and Directory Services
  Active Directory, ADSI, and Directory Services
     Active Directory
        Using Active Directory
           Searching the Active Directory
             Creating a Query Filter
                 How to Specify Comparison Values 

				
如需有關如何使用 LDAP 符合的規則,請參閱包含在平台 SDK 範例的詳細資訊。這些範例位於 \Microsoft PlatformSDK\Samples\NetDs\ADSI\Samples\ActiveDir\Attributes 和 SDK\Samples\NetDs\ADSI\Samples\ActiveDir\GetSchemaInfo 資料夾中。

屬性

文章編號: 269181 - 上次校閱: 2006年2月8日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
關鍵字:?
kbmt kbhowto kbmsg KB269181 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:269181
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com