Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce una soluzione a un problema a causa del quale il controller di dominio Windows Server 2008 R2 o versione successiva restituisce solo 5000 valori per una risposta LDAP.
Numero KB originale: 2009267
Sintomi
Un'applicazione LDAP può restituire meno informazioni quando una query viene inviata a un controller di dominio Windows Server 2008 o Windows Server 2008 R2 rispetto a quando viene inviata a un controller di dominio di Windows Server 2003. I risultati della query possono essere troncati o incompleti. In alcune occasioni, potresti non ottenere risultati. Ad esempio, se un'applicazione LDAP esegue una query sui membri di un gruppo, il controller di dominio Windows Server 2008 R2 o Windows Server 2008 restituisce solo 5000 membri, mentre i controller di dominio di Windows Server 2003 restituiscono molti più membri. In entrambi i casi, è possibile che la stessa impostazione dei criteri LDAP estesa sia necessaria in NTDSUTIL per l'applicazione LDAP. Per altre informazioni sulla visualizzazione delle impostazioni dei criteri LDAP, fare clic sul numero di articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
315071 Come visualizzare e impostare i criteri LDAP in Active Directory usando Ntdsutil.exe
Output di esempio:
criteri ldap: mostra i valori
Policy Current(New)
MaxPoolThreads 4
MaxDatagramRecv 4096
10485760 MaxReceiveBuffer
InitRecvTimeout 120
MaxConnections 5000
MaxConnIdleTime 900
MaxPageSize 50000
MaxQueryDuration 120
MaxTempTableSize 10000
MaxResultSetSize 262144
MinResultSets 0
MaxResultSetsPerConn 0
MaxNotificationPerConn 5
MaxValRange 25000
Note
In entrambi i controller di dominio l'impostazione MaxPageSize è impostata su 50000 (impostazione predefinita 1000) e MaxValRange su 25000 (impostazione predefinita 1500).
Causa
Le limitazioni interne di LDAP sono state introdotte in Windows Server 2008 R2 e Windows Server 2008 per impedire l'overload del controller di dominio. Questi limiti sovrascrivono l'impostazione dei criteri LDAP quando il valore del criterio deve essere superiore.
Impostazione LDAP | valore massimo (hardcoded) |
---|---|
MaxReceiveBuffer | 20971520 |
MaxPageSize | 20000 |
MaxQueryDuration | 1200 |
MaxTempTableSize | 100000 |
MaxValRange | 5000 |
Pertanto, l'impostazione effettiva per i criteri LDAP precedenti è MaxPageSize=50000 e MaxValRange=25000 in un controller di dominio di Windows Server 2003 come configurato nei criteri LDAP, ma in un controller di dominio Windows Server 2008 R2 o Windows Server 2008 i limiti hardcoded dettano MaxPageSize=20000 e MaxValRange=5000.
MaxValRange influisce sul numero di attributi restituiti per una query. Se si esegue una query LDAP per l'attributo multivalore Member per un oggetto gruppo con più di 5000 membri, il controller di dominio Windows Server 2008 R2 o Windows Server 2008 restituirà solo 5000 di essi.
Risoluzione
I nuovi limiti massimi introdotti con Windows Server 2008 R2 e Windows Server 2008 tentano di applicare il messaggio che le applicazioni devono adottare ai criteri che AD desidera applicare. È consigliabile adattare di conseguenza l'applicazione LDAP.
Per la limitazione di MaxValRange, è possibile prendere in considerazione le informazioni e gli esempi MSDN seguenti per l'uso di query con intervallo: Recupero di intervalli di valori di attributo https://msdn.microsoft.com/library/cc223242(PROT.10).aspx
Nell'esempio di codice seguente viene usato un intervallo per recuperare i membri di un gruppo usando l'interfaccia IDirectoryObject: codice di esempio per rango con IDirectoryObject https://msdn.microsoft.com/library/aa705923(VS.85).aspx
Nell'esempio di codice seguente viene usato l'intervallo per recuperare i membri di un gruppo usando l'interfaccia IDirectorySearch: codice di esempio per l'intervallo con IDirectorySearch https://msdn.microsoft.com/library/aa705924(VS.85).aspx
Per MaxPageSize è consigliabile usare query di paging, descritte in MSDN come indicato di seguito: Paging dei risultati della ricerca https://msdn.microsoft.com/library/aa367011(VS.85).aspx
Funzione ldap_create_page_control https://msdn.microsoft.com/library/aa366547(VS.85).aspx
Esiste un modo per ignorare queste limitazioni, ma è consigliabile discutere i requisiti con il supporto tecnico del cliente Microsoft per decidere se modificare i criteri è l'approccio corretto.
Ulteriori informazioni
Per altre informazioni sui criteri LDAP, vedere Criteri LDAP https://msdn.microsoft.com/library/cc223376(PROT.10).aspx