Active Directory 列出 OU

编程入门 行业动态 更新时间:2024-10-27 18:23:15
本文介绍了Active Directory 列出 OU的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我目前有这个代码,

string defaultNamingContext; DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"); defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString(); rootDSE = new DirectoryEntry("LDAP://" + defaultNamingContext); //DirectoryEntry domain = new DirectoryEntry((string)"LDAP://" + defaultNamingContext); DirectorySearcher ouSearch = new DirectorySearcher(rootDSE,"(objectCategory=Organizational-Unit)", null, SearchScope.Subtree); MessageBox.Show(rootDSE.Path.ToString()); try { SearchResultCollection collectedResult = ouSearch.FindAll(); foreach (SearchResult temp in collectedResult) { comboBox1.Items.Add(temp.Properties["name"][0]); DirectoryEntry ou = temp.GetDirectoryEntry(); } }

当我使用调试器时,我可以看到 rootDSE.Path 实际上指向正确的位置,在这种情况下 DC=gtp,DC=Local 但目录搜索器没有找到任何结果.有人可以帮忙吗?

When i use the debugger i can see that rootDSE.Path is infact pointing to the right place, in this case DC=g-t-p,DC=Local but the directory searcher doesn't find any results. Can anyone help?

推荐答案

Stephen - 我的错 - 由于某种原因,使用 objectCategory 的搜索不起作用.

Stephen - my bad - for some reason, the search using objectCategory doesn't work.

即使 objectCategory 显示为 CN=Organizational-Unit,在搜索时,您仍然需要使用与 objectClass 相同的值:

Even though the objectCategory is displayed as CN=Organizational-Unit, for searching, you still need to use the same value as for the objectClass:

所以尝试使用过滤器 (objectCategory=organizationalUnit) - 这绝对适合我!

So try to use the filter (objectCategory=organizationalUnit) - that definitely works for me!

更新:为了在搜索结果中获取一些属性(以便在组合框中显示它们),您需要在创建 DirectorySearcher 时包含这些属性:

UPDATE: in order to get some properties in your search result (in order to display them in the combo box), you need to include those when you create the DirectorySearcher:

DirectorySearcher ouSearch = new DirectorySearcher(rootDSE); ouSearch.Filter = "(objectCategory=Organizational-Unit)"; ouSearch.SearchScope = SearchScope.Subtree; ouSearch.PropertiesToLoad.Add("name"); // add more properties if you want to ...

有了这个,你肯定能够抓住 temp.Properties["name"][0] 并将其粘贴到组合框的项目列表中.

With this, you should definitely be able to grab the temp.Properties["name"][0] and stick it into the combobox's list of items.

我真的不明白你需要什么线

I don't really see what you need the line

DirectoryEntry ou = temp.GetDirectoryEntry();

获取name属性后.....

after grabbing the name property .....

更多推荐

Active Directory 列出 OU

本文发布于:2023-11-09 03:19:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1571252.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Active   Directory   OU

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!