如何查找具有直接下属的人员,而不在Active Directory中显示直接下属

本文关键字:Active 显示 Directory 何查找 查找 | 更新日期: 2023-09-27 18:22:24

我正试图在active directory中找到所有有人向他们报告的用户,但我找不到任何允许我在搜索中排除没有任何直接报告的人的代码示例。

有人能帮我吗?LDAP完全让我困惑。

如何查找具有直接下属的人员,而不在Active Directory中显示直接下属

下面是我如何解决与您所描述的问题类似的问题的示例。我希望这能有所帮助。

DirectorySearcher searcher;
SearchResultCollection results;
searcher = new DirectorySearcher();
searcher.Filter = "(&(objectClass=user)(objectCategory=person))";
searcher.PropertiesToLoad.Add("DirectReports");
searcher.PropertiesToLoad.Add("mail");
searcher.SearchRoot = utilityDomain;
Dictionary<string, string> managerEmailAddresses = new Dictionary<string, string>();
using (searcher)
{
    results = searcher.FindAll();
    foreach (SearchResult result in results)
    {
        if (result.Properties["DirectReports"].Count > 0)
        {
            DirectoryEntry emp = result.GetDirectoryEntry();
            String mail = "";
            if (emp.Properties["mail"].Count > 0)
            {
                mail = emp.Properties["mail"][0].ToString();
                string userName;
                userName= mail.Split('@')[0];
                managerEmailAddresses.Add(userName, mail);
             }
         }
    }
    return managerEmailAddresses;
}

你试过这样的过滤器吗?(&(objectCategory=person)(objectClass=user)(directReports=*))