3.1.1.3.4.6 LDAP Policies
The DC's LDAP interface supports various policies that can be configured by an administrator. The names of these policies are listed on the supportedLDAPPolicies attribute on the rootDSE. These policies are listed in the following table. The table also lists which applicable Windows Server releases and Active Directory Application Mode (ADAM) versions support which policies.
The table contains information for the following products. See section 3 for more information.
A --> Windows 2000 operating system
D --> Windows Server 2003 operating system
DR2 --> Windows Server 2003 R2 operating system
G --> ADAM
J --> Windows Server 2008 operating system
M --> Windows Server 2008 R2 operating system
R --> Windows Server 2012 operating system
U --> Windows Server 2012 R2 operating system
X --> Windows Server 2016 operating system
A2 --> Windows Server v1709 operating system
D2 --> Windows Server v1803 operating system
G2 --> Windows Server v1809 operating system
J2 --> Windows Server 2019 operating system
Policy name
A
D, DR2, G, J
M
R
U
X, A2, D2, G2, J2
MaxActiveQueries
X*
InitRecvTimeout
X
X
X
X
X
X
MaxConnections
X
X
X
X
X
X
MaxConnIdleTime
X
X
X
X
X
X
MaxDatagramRecv
X
X
X
X
X
X
MaxNotificationPerConn
X
X
X
X
X
X
MaxPoolThreads
X
X
X
X
X
X
MaxReceiveBuffer
X
X
X
X
X
X
MaxPageSize
X
X
X
X
X
X
MaxQueryDuration
X
X
X
X
X
X
MaxResultSetSize
X
X
X
X
X
X
MaxTempTableSize
X
X
X
X
X
X
MaxValRange
X
X
X
X
X
MaxResultSetsPerConn
X
X
X
X
MinResultSets
X
X
X
X
MaxBatchReturnMessages
X
X
X
MaxPercentDirSyncRequest
X
X
MaxValRangeTransitive
X
X
ThreadMemoryLimit
X
X
SystemMemoryLimitPercent
X
X
MaxDirSyncDuration
X
SecurityDescriptorWarningSize**
* Support for this policy was removed in Windows Server 2003.
** Support for this policy exists only on Windows 11, version 22H2 operating system and later.
LDAP policies are specified using the lDAPAdminLimits attribute. The lDAPAdminLimits attribute of a queryPolicy object is a multivalued string where each string value encodes a name-value pair. In the encoding, the name and value are separated by an "=". For example, the encoding of the name "MaxActiveQueries" with value "0" is "MaxActiveQueries=0". Each name is the name of an LDAP policy, and the value is a value of that policy.
There can be multiple queryPolicy objects in a forest. A DC determines the queryPolicy object that contains its policies according to the following logic:
If the queryPolicyObject attribute is present on the DC's nTDSDSA object, the DC uses the queryPolicy object referenced by it.
Otherwise, if the queryPolicyObject attribute is present on the nTDSSiteSettings object for the site to which the DC belongs, the DC uses the queryPolicy object referenced by it.
Otherwise, the DC uses the queryPolicy object whose DN is "CN=Default Query Policy,CN=Query-Policies" relative to the nTDSService object (for example, "CN=Default Query Policy, CN=Query-Policies, CN=Directory Service, CN=Windows NT, CN=Services" relative to the root of the config NC).
The effect of setting an LDAP policy is outside the state model. The effect of each policy, as well as the default value used if the policy's value is not specified in an lDAPAdminLimits attribute, is shown in the following table.
-
Policy name
Default value
Description
MaxActiveQueries
20
The maximum number of concurrent LDAP search operations that are permitted to run at the same time on a DC. When this limit is reached, the DC returns a busy / ERROR_DS_ADMIN_LIMIT_EXCEEDED error.
InitRecvTimeout
120
The maximum time, in seconds, that a DC waits for the client to send the first request after the DC receives a new connection. If the client does not send the first request in this amount of time, the server disconnects the client.
MaxConnections
5000
The maximum number of simultaneous LDAP connections that a DC will accept. If a connection comes in after the DC reaches this limit, the DC will drop another connection. The connection that is selected to drop is not constrained by the protocol and is determined based on the implementation.
MaxConnIdleTime
900
The maximum time, in seconds, that the client can be idle before the DC closes the connection. If a connection is idle for more than this time, the DC disconnects the client.
MaxDatagramRecv
4096
The maximum size, in bytes, of a UDP datagram request that a DC will process. Requests that are larger than this value are ignored by the DC.
MaxNotificationPerConn
5
The maximum number of outstanding notification search requests (using the LDAP_SERVER_NOTIFICATION_OID control) that the DC permits on a single connection. When this limit is reached, the server returns an adminLimitExceeded / ERROR_DS_ADMIN_LIMIT_EXCEEDED error to any new notification searches that are requested on that connection.
MaxPoolThreads
4
The maximum number of threads per processor that a DC dedicates to listening for network input or output. This value also determines the maximum number of threads per processor that can work on LDAP requests at the same time.
MaxReceiveBuffer
10,485,760
The maximum size, in bytes, of a request that the server will accept. If the server receives a request that is larger than this, it will drop the connection.
MaxPageSize
1000
The maximum number of objects that are returned in a single search result, independent of how large each returned object is. To perform a search where the result might exceed this number of objects, the client MUST specify the paged search control.
MaxQueryDuration
120
The maximum time, in seconds, that a DC will spend on a single search or batched LDAP extended operation (in Windows Server 2012 and later). When this limit is reached, the DC returns a timeLimitExceeded / ERROR_INVALID_PARAMETER error.
MaxResultSetSize
262,144
The maximum number of bytes that a DC stores to optimize the individual searches that make up a paged search. The data that is stored is outside the state model and is implementation-specific.
MaxTempTableSize
10,000
The maximum number of rows that a DC will create in a temporary database table to hold intermediate results during query processing.
MaxValRange
1500
The maximum number of values that can be retrieved from a multivalued attribute in a single search request. Windows 2000 DCs do not support this policy and instead always use a setting of 1000 values.
MaxResultSetsPerConn
10
The maximum number of individual paged searches per LDAP connection for which a DC will store optimization data. The data that is stored is outside the state model and is implementation-specific.
MinResultSets
3
The minimum number of individual paged searches for which a DC will store optimization data. The data that is stored is outside the state model and is implementation-specific.
MaxBatchReturnMessages
1100
The maximum number of messages that can be returned when processing an LDAP_SERVER_BATCH_REQUEST_OID extended operation (section 3.1.1.3.4.2.5).
MaxPercentDirSyncRequests
100
The maximum percentage of LDAP threads that can be performing a search using the LDAP_SERVER_DIRSYNC_OID or LDAP_SERVER_DIRSYNC_EX_OID at one time.
MaxValRangeTransitive
4500
The maximum number of values that can be retrieved from one of the following multivalued, constructed attributes in a single search request:
3.1.1.4.5.19 - tokenGroups, tokenGroupsNoGCAcceptable
3.1.1.4.5.42 - msds-tokenGroupNames, msds-tokenGroupNamesNoGCAcceptable
3.1.1.4.5.43 - msds-tokenGroupNamesGlobalAndUniversal
3.1.1.4.5.20 - tokenGroupsGlobalAndUniversal
This policy is effective only when the fTreatTokenGroupsAsLDAPTransitiveAttribute dsHeuristic is TRUE (section 6.1.1.2.4.1.2).
Note: The ability to use LDAP limits to configure the maximum number of objects retrievable by the msds-TokenGroup* family constructed attributes, is supported in Windows 11 v22H2 and later, and in the operating systems specified in [MSKB-5011543], [MSKB-5011551], [MSKB-5011558], and [MSKB-5011563], each with the corresponding KB package installed.
This policy is significant on Windows 10 v1903 operating system and later and Windows Server v1903 operating system and later. It otherwise has no significance.
ThreadMemoryLimit
none
This policy affects implementation-specific memory allocation and limits.
SystemMemoryLimitPercent
none
This policy affects implementation-specific memory allocation and limits.
MaxDirSyncDuration
60
The maximum time, in seconds, that a DC will spend on a single search when using the LDAP_SERVER_DIRSYNC_OID or LDAP_SERVER_DIRSYNC_EX_OID controls. When this limit is reached, the DC returns a timeLimitExceeded / ERROR_INVALID_PARAMETER error.
SecurityDescriptorWarningSize
61,440
This policy controls when warning events will be logged for originating writes to the ntSecurityDescriptor attribute that meet or exceed the configured size value.