1

我有一个代码来获取域中的 OU 列表。

现在这只是列出了所有的 OU,并没有给出任何区分 OU 和子 OU 的方法。

DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain);

DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=organizationalUnit)");

foreach (SearchResult temp in mySearcher.FindAll())
{
   OU_DownList.Items.Add(temp.Properties["name"][0].ToString());
}

有没有办法获得 OU 的完全限定名称?

对于子 OU 来说是这样的:

CN=Computer1,OU=Department 101,OU=Business Unit #1,DC=us,DC=xyz,DC=com

任何帮助表示赞赏...谢谢

4

2 回答 2

5

temp.Path应该为您提供每个 OU 的 distinctName。

于 2011-04-04T20:37:09.827 回答
1

使用Path来自的属性SearchResult,如中所示temp.Path,请参阅链接

Path 属性在 Active Directory 层次结构中唯一标识此条目。始终可以使用此路径检索条目。

您可以使用以下源代码枚举所有可用属性:

foreach(string propKey in temp.Properties.PropertyNames)
{
    // Display each of the values for the property identified by
    // the property name.
    foreach (object property in temp.Properties[propKey])
    {
        Console.WriteLine("{0}:{1}", propKey, property.ToString());
    }
}
于 2011-04-04T21:08:11.477 回答