Создание запроса Active Directory с помощью побитового фильтра

Переводы статьи Переводы статьи
Код статьи: 269181
Развернуть все | Свернуть все

Аннотация

Некоторые атрибуты объектов Active Directory состоят из побитовых флагов. Иногда вам необходимо создать запрос для объекта с помощью побитового оператора и возвратить в нем только объекты, соответствующие определенному набору бит. Для этого следует использовать элементы управления правила соответствия Lightweight Directory Access Protocol (LDAP).

Дополнительная информация

Правило соответствия LDAP имеет следующий синтаксис:
Имя_атрибута:ruleOID: =значение
где attributename — LDAPDisplayName атрибута ruleOID — идентификатор объекта (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 . Этот атрибут состоит из комбинации различных флагов. Флаг для задания объекта, который требуется отключить, UF_ACCOUNTDISABLE, который имеет значение 0x02 (2 десятичных). Фильтр робитового сравнения, который определяет 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 см. в Platform Software Development Kit (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 - Последний отзыв: 30 сентября 2012 г. - Revision: 7.0
Ключевые слова: 
kbhowto kbmsg kbmt KB269181 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 269181
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

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