DSAccess PreloadFilters registry parameter is non-default

[This topic is intended to address a specific issue called out by the Exchange Server Analyzer Tool. You should apply it only to systems that have had the Exchange Server Analyzer Tool run against them and are experiencing that specific issue. The Exchange Server Analyzer Tool, available as a free download, remotely collects configuration data from each server in the topology and automatically analyzes the data. The resulting report details important configuration issues, potential problems, and nondefault product settings. By following these recommendations, you can achieve better performance, scalability, reliability, and uptime. For more information about the tool or to download the latest versions, see "Microsoft Exchange Analyzers" at https://go.microsoft.com/fwlink/?linkid=34707.]  

Topic Last Modified: 2005-11-18

The Microsoft® Exchange Server Analyzer Tool reads the following registry entry to determine whether the search preloading functionality of Directory Service Access (DSAccess) has been changed from its default configuration:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeDSAccess\PreloadFilters

The default value data for PreloadFilters is:

(&(|(msExchMasterAccountSID=%)(objectSid=%))(!(objectClass=foreignSecurityPrincipal)))(|(msExchMailboxGUID=%)(objectGUID=%))(legacyExchangeDN=%)(msExchMailboxGUID=%)(&(proxyAddresses=%)(|(objectClass=user)(objectClass=contact)))

If the Exchange Server Analyzer finds that the value for PreloadFilters has been modified from these defaults, a warning is displayed. The Exchange Server Analyzer reports this configuration because the PreloadFilters registry setting should be changed only after you have consulted with Microsoft Product Support Services.

The DSAccess cache resides on the Exchange server and collects configuration and user records that are retrieved from the Active Directory® directory service. Records in the cache are accessed by using an object's distinguished name, globally unique identifier (GUID), or a key constructed from the scope, BaseDN, and the search filter used to find this object in Active Directory. Subsequent accesses that use the same distinguished name, GUID, or key find the record in the cache. Therefore, unnecessary load on Active Directory is prevented for identical searches. However, DSAccess does not prevent load on Active Directory when the search filter is different from the search filter that is contained in the cache, even though DSAccess requests the same attribute set for the user object.

Search preloading is a means to avoid the multiple Active Directory search problems that can occur when various search filters are issued on the same user object. Search preloading works by the previously mentioned key construction where a search entry is constructed by the scope, BaseDN, and the search filter.

For more information about configuring DSAccess search preloading, see the Microsoft Knowledge Base article 250572, "XCON: Preloading and the DSAccess Cache" (https://go.microsoft.com/fwlink/?LinkId=3052&kbid=250572).