【问题标题】:LDAP Query for OU's用于 OU 的 LDAP 查询
【发布时间】:2010-05-26 10:13:43
【问题描述】:

很抱歉成为一个超级痛苦的人,这一切都是新的:(

已经在这方面得到了很多帮助,但似乎无法看到问题所在,我正在尝试用所有当前 OU 的列表填充一个组合框,稍后向该 OU 中的每台机器发送一个关机命令。 (Acquiring AD OU list & Active Directory list OU's)是我之前的Q。

        string defaultNamingContext;
        //TODO 0 - Acquire and display the available OU's
        DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE");
        defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString();
        DirectoryEntry entryToQuery = new DirectoryEntry ("LDAP://" + defaultNamingContext);
        MessageBox.Show(entryToQuery.Path.ToString());

        DirectorySearcher ouSearch = new DirectorySearcher(entryToQuery.Path);
        ouSearch.Filter = "(objectCatergory=organizationalUnit)";
        ouSearch.SearchScope = SearchScope.Subtree;
        ouSearch.PropertiesToLoad.Add("name");

        SearchResultCollection allOUS = ouSearch.FindAll();

        foreach (SearchResult oneResult in allOUS)
        {
            //comboBox1.Items.Add(oneResult.ToString());
            comboBox1.Items.Add(oneResult.Properties["name"][0]);
        }

我已经通过并调试了我所知道的一切,搜索器没有找到任何结果,因此为什么组合框中没有填充任何内容。

【问题讨论】:

  • 我刚刚尝试手动添加整个 LDAP 路径 entryToQuery = "LDAP://OU=G-T-P,DC=G-T-P,DC=LOCAL" 我知道这里肯定有部门 OU树,我已经替换了要加载到 ["distinguishedName"] 的属性,以查看它是否可以将其拉回来,尽管考虑它不会有任何区别。在这一点上超级难倒!!!
  • +1 关于广告相关问题的有趣问题。

标签: c# active-directory ldap directoryservices


【解决方案1】:

我不得不使用非索引 objectClass 而不是 Catergory。

您只需要正确拼写即可:objectCategory - 不是 objectCatergory

(你的“r”太多了..... :-)

【讨论】:

  • 我知道我应该经常去学校:P
【解决方案2】:

作品:) :)

我不得不使用非索引 objectClass 而不是 Catergory。

组合框现在填充得非常好。

编辑: { “(对象类=组织单位)” }

【讨论】:

  • +1 自己寻找问题的答案,并将其提供给可能正在寻找此类问题的其他人。使用 DirectorySearcher 类时,请始终在 DirectorySearcher.Filter 属性成员中提供“objectClass”属性。
  • 谢谢威尔 为什么 objectCategory 不起作用,有人知道吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多