2011-04-04 441 views
1

我有一個代碼來獲取域中OU的列表。獲取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 

任何幫助表示讚賞...謝謝

回答

5

temp.Path應該讓你的每個OU的distinguishedName來。

+0

嘿感謝哥們但有顯示以上完全合格的名稱的方式「CN =計算機1,OU =部門101, OU = Business Unit#1,DC = us,DC = xyz,DC = com「as .. businessmenit/department 101 – user175084 2011-04-04 21:59:07

+0

'string.Join(」/「,temp.Path.Split(',')。Select(s => s.StartsWith(「OU」))。Reverse()。ToArray())' – 2011-04-05 16:21:16

1

使用屬性Path from SearchResult,如temp.Path,請參閱link

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()); 
    } 
} 
+0

嘿感謝這麼多..有沒有辦法顯示上述字符串作爲businessunit /部門101 – user175084 2011-04-04 21:55:59

相關問題