如何获取特定OU

时间:2017-01-26 08:53:29

标签: c# winforms active-directory

我有以下代码......

 // List of strings for your names
            List<string> allUsers = new List<string>();



            using (var context = new PrincipalContext(ContextType.Domain, "bellbain.local"))
            {
                using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
                {
                    foreach (var result in searcher.FindAll())
                    {
                        DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
                        //  allUsers.Add(("First Name: " + de.Properties["givenName"].Value));
                        allUsers.Add(de.Properties["sAMAccountName"].Value.ToString());


                    }
                }
            }
            listBox1.DataSource = allUsers;

这可以很好地创建我所有用户名的列表,但是我只希望特定OU中的用户名列表。我在网上找到了一些例子,但是无法准确理解如何将它们应用到我的情况中。

<树>&#39;树&#39;在Active目录中

mydomain.local&gt; MyBusiness&gt;用户&gt; SBSUsers&gt; TestDept

我需要一个仅包含Test Dept OU中用户的列表。

我试过了......

//名称的字符串列表         列出allUsers = new List();

    string ou = "OU=TestDept,DC=mydomain.local";

    using (var context = new PrincipalContext(ContextType.Domain, "bellbain.local",ou))
    {
        using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
        {
            foreach (var result in searcher.FindAll())
            {
                DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
                //  allUsers.Add(("First Name: " + de.Properties["givenName"].Value));
                allUsers.Add(de.Properties["sAMAccountName"].Value.ToString());


            }
        }
    }
    listBox1.DataSource = allUsers;

但是列表框是空的......

0 个答案:

没有答案