Possible Duplicate:
Can I get more than 1000 records from a DirectorySearcher in Asp.Net?
I am searching for existing logins using ADS Directory searcher findAll() method (as in following code). It appears the findall method returns only 1000 entries although there are more entries than that.
How do I findAll() of every login ?
IList<string> adslist = new List<string>();
using (DirectoryEntry de = new DirectoryEntry("LDAP://armlink.com", null, null, AuthenticationTypes.Secure))
using (DirectorySearcher ds = new DirectorySearcher(de, "(objectclass=user)", new string[] { "samaccountname" }))
foreach (SearchResult sr in ds.FindAll())
{
string[] e = sr.Path.Split(new string[] { "LDAP://", "OU=", ",", "DC=", ".com", "/CN=" }, StringSplitOptions.RemoveEmptyEntries);
ResultPropertyCollection pc = sr.Properties;
adslist.Add(e[0] + "/" + pc["samaccountname"][0].ToString());
// Debug.WriteLine(adslist.Last());
}
This is due to a server-side limit. From the
DirectorySearcher.SizeLimitdocumentation:And:
Basically from this, it looks like unless there’s a way of changing the server-side default, you’re going to be limited to 1000 entries. It’s possible that specifying a
PageSizewill let you fetch a certain number at a time, with a total greater than 1000… not sure.By the way, it looks like you should also have a
usingdirective around theSearchResultCollection: