10.11. Indexing an Attribute
Problem
You want to index an attribute so that searches using that attribute are faster.
Solution
Tip
For Windows 2000 Active Directory you need to enable schema modifications before proceeding. See Recipe 10.2 for more information.
Using a graphical user interface
Open the Active Directory Schema snap-in.
In the left pane, click on the Attributes folder.
In the right pane, double-click the attribute you want to index.
Check the box beside Index this attribute in the Active Directory.
Click OK.
Using a command-line interface
You can index an attribute by using the ldifde
utility and an LDIF file that contains the following:
dn: cn=<AttrCommonName
>,cn=schema,cn=configuration,<ForestRootDN
> changetype: modify replace: searchFlags searchFlags: 1 -
If the LDIF file were named index_attribute.ldf
,
you would run the following command:
> ldifde -v -i -f index_attribute.ldf
Using VBScript
' This code indexes an attribute.
' ------ SCRIPT CONFIGURATION ------
' Set to the common name (not LDAP display name) of the attribute
strAttrName = "<AttrCommonName
>" ' e.g. rallencorp-LanguagesSpoken
' ------ END CONFIGURATION ---------
set objRootDSE = GetObject("LDAP://RootDSE")
set objAttr = GetObject("LDAP://cn=" & strAttrName & "," &
objRootDSE.Get("schemaNamingContext"))
objAttr.Put "searchFlags", 1
objAttr.SetInfo
WScript.Echo "Indexed attribute: " & strAttrName
Tip
The CLI and VBScript solutions assume that
searchFlags
wasn’t previously set and just blindly overwrites whatever ...
Get Active Directory Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.