代码之家  ›  专栏  ›  技术社区  ›  Aaron

按字母顺序筛选Active Directory用户

  •  2
  • Aaron  · 技术社区  · 15 年前

            String domain = Properties.Settings.Default.ADConn;
            String user = Properties.Settings.Default.ADAdmin;
            String pass = Properties.Settings.Default.ADPass;
    
            DirectoryEntry ADEntry = new DirectoryEntry(domain, user, pass);
            DirectorySearcher ADSearcher = new DirectorySearcher(ADEntry);
            ADSearcher.Filter = "(&(objectClass=user)(objectCategory=person))";                        
            SearchResultCollection allResults = ADSearcher.FindAll();            
            foreach (SearchResult result in allResults)
            {
                DirectoryEntry deUser = result.GetDirectoryEntry();
    
                 //....Do stuff here
    

    公司里有很多人,所以有人要求我按字母顺序分割用户,一次处理一个用户块。例如,更改用户[A-G],然后[H-N],然后[O-Z]的属性。我如何修改我的过滤器以提供用户X到Y?

    ADSearcher.Filter = "(&(objectClass=user)(objectCategory=person)(sAMAccountName>=X)(sAMAccountName<=Y))";                        
    

    非常感谢你的帮助。

    1 回复  |  直到 15 年前
        1
  •  1
  •   mtmk    15 年前

    我以前使用过OpenLDAP,所以我对过滤器有点熟悉,我发现了一个 Search Filter Syntax document 这可能会有帮助。以下是我认为可能的情况:

    (&(objectClass=user)(objectCategory=person)(cn>='a')(cn<='b'))