Afficher et définir la stratégie LDAP dans Active Directory à l’aide de Ntdsutil.exe

Cet article explique comment gérer les stratégies LDAP (Lightweight Directory Access Protocol) à l’aide de l’outil Ntdsutil.exe.

Produits concernés : Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 315071

Résumé

Pour vous assurer que les contrôleurs de domaine peuvent prendre en charge les garanties au niveau du service, vous devez spécifier des limites opérationnelles pour de nombreuses opérations LDAP. Ces limites empêchent des opérations spécifiques d’affecter négativement les performances du serveur. Ils rendent également le serveur plus résilient à certains types d’attaques.

Les stratégies LDAP sont implémentées à l’aide d’objets de la queryPolicy classe . Les objets de stratégie de requête peuvent être créés dans le conteneur Stratégies de requête, qui est un enfant du conteneur service d’annuaire dans le contexte d’affectation de noms de configuration. Par exemple, cn=Query-Policies,cn=Directory Service,cn=Windows NT,cn=Contexte de nommage de configuration des services.

Limites d’administration LDAP

Les limites d’administration LDAP sont les suivantes :

  • InitRecvTimeout : cette valeur définit la durée maximale en secondes pendant laquelle un contrôleur de domaine attend que le client envoie la première requête après que le contrôleur de domaine a reçu une nouvelle connexion. Si le client n’envoie pas la première requête dans ce laps de temps, le serveur déconnecte le client.

    Valeur par défaut : 120 secondes

  • MaxActiveQueries : nombre maximal d’opérations de recherche LDAP simultanées qui sont autorisées à s’exécuter en même temps sur un contrôleur de domaine. Lorsque cette limite est atteinte, le serveur LDAP retourne une erreur occupée .

    Valeur par défaut : 20

    Remarque

    Ce contrôle a une interaction incorrecte avec la valeur MaxPoolThreads. MaxPoolThreads est un contrôle par processeur, tandis que MaxActiveQueries définit un nombre absolu. À compter de Windows Server 2003, MaxActiveQueries n’est plus appliqué. En outre, MaxActiveQueries n’apparaît pas dans la version Windows Server 2003 de NTDSUTIL.

    Valeur par défaut : 20

  • MaxConnections : nombre maximal de connexions LDAP simultanées qu’un contrôleur de domaine accepte. Si une connexion intervient après que le contrôleur de domaine a atteint cette limite, le contrôleur de domaine supprime une autre connexion.

    Valeur par défaut : 5000

  • MaxConnIdleTime : durée maximale en secondes pendant laquelle le client peut être inactif avant que le serveur LDAP ferme la connexion. Si une connexion est inactive pendant plus de temps, le serveur LDAP retourne une notification de déconnexion LDAP.

    Valeur par défaut : 900 secondes

  • MaxDatagramRecv : taille maximale d’une requête de datagramme qu’un contrôleur de domaine traitera. Les requêtes supérieures à la valeur de MaxDatagramRecv sont ignorées.

    Valeur par défaut : 4 096 octets

  • MaxNotificationPerConnection : nombre maximal de demandes de notification en attente autorisées sur une seule connexion. Lorsque cette limite est atteinte, le serveur retourne une erreur occupée à toutes les nouvelles recherches de notification effectuées sur cette connexion.

    Valeur par défaut : 5

  • MaxPageSize : cette valeur contrôle le nombre maximal d’objets retournés dans un résultat de recherche unique, indépendamment de la taille de chaque objet retourné. Pour effectuer une recherche dans laquelle le résultat peut dépasser ce nombre d’objets, le client doit spécifier le contrôle de recherche paginé. Il s’agit de regrouper les résultats retournés dans des groupes qui ne sont pas plus grands que la valeur MaxPageSize. Pour résumer, MaxPageSize contrôle le nombre d’objets retournés dans un seul résultat de recherche.

    Valeur par défaut : 1 000

  • MaxPoolThreads : nombre maximal de threads par processeur qu’un contrôleur de domaine dédie à l’écoute de l’entrée ou de la sortie réseau (E/S). Cette valeur détermine également le nombre maximal de threads par processeur pouvant fonctionner simultanément sur les demandes LDAP.

    Valeur par défaut : 4 threads par processeur

  • MaxResultSetSize : entre les recherches individuelles qui composent une recherche de résultats paginés, le contrôleur de domaine peut stocker des données intermédiaires pour le client. Le contrôleur de domaine stocke ces données pour accélérer la partie suivante de la recherche de résultats paginés. La valeur MaxResultSize contrôle la quantité totale de données que le contrôleur de domaine stocke pour ce type de recherche. Lorsque cette limite est atteinte, le contrôleur de domaine ignore le plus ancien de ces résultats intermédiaires pour faire de l’espace pour stocker de nouveaux résultats intermédiaires.

    Valeur par défaut : 262 144 octets

  • MaxQueryDuration : durée maximale en secondes qu’un contrôleur de domaine passe sur une seule recherche. Lorsque cette limite est atteinte, le contrôleur de domaine retourne une erreur « timeLimitExceeded ». Les recherches qui nécessitent plus de temps doivent spécifier le contrôle des résultats paginés.

    Valeur par défaut : 120 secondes

  • MaxTempTableSize : pendant le traitement d’une requête, le dblayer peut essayer de créer une table de base de données temporaire à partir de laquelle trier et sélectionner des résultats intermédiaires. La limite MaxTempTableSize contrôle la taille de cette table de base de données temporaire. Si la table de base de données temporaire contient plus d’objets que la valeur de MaxTempTableSize, le dblayer effectue une analyse beaucoup moins efficace de la base de données DS complète et de tous les objets de la base de données DS.

    Valeur par défaut : 10 000 enregistrements

  • MaxValRange : cette valeur contrôle le nombre de valeurs retournées pour un attribut d’un objet, indépendamment du nombre d’attributs de cet objet ou du nombre d’objets présents dans le résultat de la recherche. Dans Windows 2000, ce contrôle est codé en dur à 1 000. Si un attribut a plus que le nombre de valeurs spécifiées par la valeur MaxValRange, vous devez utiliser des contrôles de plage de valeurs dans LDAP pour récupérer des valeurs qui dépassent la valeur MaxValRange. MaxValueRange contrôle le nombre de valeurs retournées sur un attribut unique sur un seul objet.

    • Valeur minimale : 30
    • Valeur par défaut : 1 500

Démarrer Ntdsutil.exe

Ntdsutil.exe se trouve dans le dossier Outils de support du CD-ROM d’installation de Windows. Par défaut, Ntdsutil.exe est installé dans le dossier System32.

  1. Cliquez sur Démarrer, puis sur Exécuter.
  2. Dans la zone de texte Ouvrir , tapez ntdsutil, puis appuyez sur Entrée. Pour afficher l’aide à tout moment, tapez ? à l’invite de commandes.

Afficher les paramètres de stratégie actuels

  1. À l’invite de commandes Ntdsutil.exe, tapez LDAP policies, puis appuyez sur Entrée.
  2. À l’invite de commandes de stratégie LDAP, tapez connections, puis appuyez sur Entrée.
  3. À l’invite de commandes de connexion au serveur, tapez connect to server <DNS name of server>, puis appuyez sur Entrée. Vous souhaitez vous connecter au serveur avec lequel vous travaillez actuellement.
  4. À l’invite de commandes de connexion au serveur, tapez q, puis appuyez sur Entrée pour revenir au menu précédent.
  5. À l’invite de commandes de stratégie LDAP, tapez Show Values, puis appuyez sur Entrée.

Un affichage des stratégies telles qu’elles existent s’affiche.

Modifier les paramètres de stratégie

  1. À l’invite de commandes Ntdsutil.exe, tapez LDAP policies, puis appuyez sur Entrée.

  2. À l’invite de commandes de stratégie LDAP, tapez Set <setting> to <variable>, puis appuyez sur Entrée. Par exemple, tapez Définir MaxPoolThreads sur 8.

    Ce paramètre change si vous ajoutez un autre processeur à votre serveur.

  3. Vous pouvez utiliser la Show Values commande pour vérifier vos modifications.

    Pour enregistrer les modifications, utilisez Valider les modifications.

  4. Lorsque vous avez terminé, tapez q, puis appuyez sur Entrée.

  5. Pour quitter Ntdsutil.exe, à l’invite de commandes, tapez q, puis appuyez sur Entrée.

Remarque

Cette procédure affiche uniquement les paramètres de stratégie de domaine par défaut. Si vous appliquez votre propre paramètre de stratégie, vous ne pouvez pas le voir.

Condition requise pour le redémarrage

Si vous modifiez les valeurs de la stratégie de requête qu’un contrôleur de domaine utilise actuellement, ces modifications prennent effet sans redémarrage. Toutefois, si une nouvelle stratégie de requête est créée, un redémarrage est nécessaire pour que la nouvelle stratégie de requête prenne effet.

Considérations relatives à la modification des valeurs de requête

Pour maintenir la résilience du serveur de domaine, nous vous déconseillons d’augmenter la valeur du délai d’expiration de 120 secondes. La formation de requêtes plus efficaces est une solution recommandée. Pour plus d’informations sur la création de requêtes efficaces, consultez Creating More Efficient Microsoft Active Directory-Enabled Applications.

Toutefois, si la modification de la requête n’est pas une option, augmentez la valeur du délai d’expiration uniquement sur un contrôleur de domaine ou sur un seul site. Pour obtenir des instructions, consultez la section suivante. Si le paramètre est appliqué à un contrôleur de domaine, réduisez la priorité LDAP DNS sur le contrôleur de domaine, afin que les clients utilisent moins probablement le serveur pour l’authentification. Sur le contrôleur de domaine avec la priorité accrue, utilisez le paramètre de Registre suivant pour définir LdapSrvPriority:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Dans le menu Modifier , sélectionnez Ajouter une valeur, puis ajoutez la valeur de Registre suivante :

  • Nom de l’entrée : LdapSrvPriority
  • Type de données : REG_DWORD
  • Valeur : définissez la valeur sur la valeur de la priorité souhaitée.

Pour plus d’informations, consultez Comment optimiser l’emplacement d’un contrôleur de domaine ou d’un catalogue global qui se trouve en dehors du site d’un client.

Instructions pour la configuration par contrôleur de domaine ou par stratégie de site

  1. Créez une stratégie de requête sous CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, racine de forêt.

  2. Définissez le contrôleur de domaine ou le site pour qu’il pointe vers la nouvelle stratégie en entrant le nom unique de la nouvelle stratégie dans l’attribut Query-Policy-Object . L’emplacement de l’attribut est le suivant :

    • L’emplacement du contrôleur de domaine est CN=NTDS Settings, CN= DomainControllerName, CN=Servers,CN= site name,CN=Sites,CN=Configuration, forest root.

    • L’emplacement du site est CN=NTDS Site Settings,CN= site name,CN=Sites,CN=Configuration, forest root.

Exemple de script

Vous pouvez utiliser le texte suivant pour créer un fichier Ldifde. Vous pouvez importer ce fichier pour créer la stratégie avec une valeur de délai d’expiration de 10 minutes. Copiez ce texte dans Ldappolicy.ldf, puis exécutez la commande suivante, où la racine de forêt est le nom unique de la racine de votre forêt. Laissez DC=X tel qu’il est. Il s’agit d’une constante qui sera remplacée par le nom racine de la forêt lors de l’exécution du script. La constante X n’indique pas de nom de contrôleur de domaine.

ldifde -i -f ldappolicy.ldf -v -c DC=X DC= forest root

Démarrer le script Ldifde

dn: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X  
changetype: add  
instanceType: 4  
lDAPAdminLimits: MaxReceiveBuffer=10485760  
lDAPAdminLimits: MaxDatagramRecv=1024  
lDAPAdminLimits: MaxPoolThreads=4  
lDAPAdminLimits: MaxResultSetSize=262144  
lDAPAdminLimits: MaxTempTableSize=10000  
lDAPAdminLimits: MaxQueryDuration=300  
lDAPAdminLimits: MaxPageSize=1000  
lDAPAdminLimits: MaxNotificationPerConn=5  
lDAPAdminLimits: MaxActiveQueries=20  
lDAPAdminLimits: MaxConnIdleTime=900  
lDAPAdminLimits: InitRecvTimeout=120  
lDAPAdminLimits: MaxConnections=5000  
objectClass: queryPolicy  
showInAdvancedViewOnly: TRUE

Après avoir importé le fichier, vous pouvez modifier les valeurs de la requête à l’aide d’Adsiedit.msc ou de Ldp.exe. Le paramètre MaxQueryDuration dans ce script est de 5 minutes.

Pour lier la stratégie à un contrôleur de domaine, utilisez un fichier d’importation LDIF comme suit :

dn: CN=NTDS  
Settings,CN=DC1,CN=Servers,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Importez-le à l’aide de la commande suivante :

ldifde -i -f link-policy-dc.ldf -v -c DC=X DC= **forest root**

Pour un site, le fichier d’importation LDIF contient :

dn: CN=NTDS Site Settings,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Remarque

Ntdsutil.exe affiche uniquement la valeur dans la stratégie de requête par défaut. Si des stratégies personnalisées sont définies, elles ne sont pas affichées par Ntdsutil.exe.