Determining an Attribute Type

The systemFlags attribute of an attributeSchema object contains a set of flags that indicate various qualities of the attribute object, such as whether the attribute is constructed or non-replicated. The following table lists the flags of the systemFlags attribute that affect the storage type of the attribute.

Flag value Description
0x00000001 If this flag is present in the systemFlags attribute, the attribute is not replicated.
0x00000004 If this flag is present in the systemFlags attribute, the attribute is constructed.

 

It is possible to construct a query string that can be used to query for constructed or non-replicated attributes. For example, the following query string finds all non-replicated attributeSchema objects. Be aware that the query string requires the decimal equivalent of the value, not the hexadecimal equivalent of the value. For more information about the matching rule OID used by this query string, see How to Specify Comparison Values.

(&(objectCategory=attributeSchema)(systemFlags:1.2.840.113556.1.4.804:=1))

The searchFlags attribute of each attribute's attributeSchema object defines whether an attribute is indexed; an indexed attribute has a value of 1, a non-indexed attribute has a value of 0. For example, the following query string finds the attributeSchema objects representing indexed attributes.

(&(objectCategory=attributeSchema)(searchFlags=1))

The isMemberOfPartialAttributeSet attribute of each attribute's attributeSchema object defines whether an attribute is replicated to the global catalog. This attribute has a value of TRUE if the attribute is a member of the global catalog or FALSE if the attributes is not in the global catalog. For example, the following query string searches the attributeSchema objects that are replicated to the global catalog.

(&(objectCategory=attributeSchema)(isMemberOfPartialAttributeSet=TRUE))