按字母顺序过滤Active Directory用户

时间:2010-02-10 17:20:06

标签: c# .net active-directory

我必须为我工作的公司中的每个用户修改活动目录中的属性。这是我用户获取所有用户的代码。

        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 个答案:

答案 0 :(得分:1)

之前我使用过OpenLDAP所以我对过滤器有点熟悉,我发现Search Filter Syntax document可能有所帮助。以下是我认为可能的结果:

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

让我知道它是否有效。