2013-10-29 33 views
0

我試圖獲取森林中的所有目錄條目。無法獲取林中的所有DirectoryEntry

我的代碼片段如下所示:

DirectoryContext dc = new DirectoryContext(DirectoryContextType.DirectoryServer, "xx.x.xxx.40", "w28\\administrator", "pwd"); 

Forest forest = Forest.GetForest(dc); 

Console.WriteLine("Domain count in forest: " + forest.Domains.Count); 
DomainCollection domains = forest.Domains; 

foreach (Domain d in domains) 
{ 
    Console.WriteLine(d.Name); 

    //It doesn't work 
    DirectoryEntry entry = d.GetDirectoryEntry(); 
    foreach (DirectoryEntry child in entry.Children) 
    { 
     Console.WriteLine(" - " + child.Name); 
    } 
} 

但是,我得到一個異常:

System.DirectoryServices.ActiveDirectory.ActiveDirectoryOperationException: Unknown error (0x80005000) ---> System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000) 
    at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 
    at System.DirectoryServices.DirectoryEntry.Bind() 
    at System.DirectoryServices.DirectoryEntry.get_AdsObject() 
    at System.DirectoryServices.PropertyValueCollection.PopulateList() 
    at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) 
    at System.DirectoryServices.PropertyCollection.get_Item(String propertyName) 
    at System.DirectoryServices.ActiveDirectory.PropertyManager.GetPropertyValue(DirectoryContext context, DirectoryEntry directoryEntry, String propertyName) 
    --- End of inner exception stack trace --- 
    at System.DirectoryServices.ActiveDirectory.PropertyManager.GetPropertyValue(DirectoryContext context, DirectoryEntry directoryEntry, String propertyName) 
    at System.DirectoryServices.ActiveDirectory.DirectoryEntryManager.ExpandWellKnownDN(WellKnownDN dn) 
    at System.DirectoryServices.ActiveDirectory.Domain.GetDirectoryEntry() 

回答

0

我得的情況下,同樣的錯誤時,我的幾個域控制器關閉並變得不可用。

我變了,我發現了的DirectoryEntry實例域的方式:

entry = new DirectoryEntry(string.Format("LDAP://{0}", d.Name), UserNameFull, password); 

因爲錯誤「的服務器不可操作」引發這工作得很好,因此它的點給用戶說它的DC有問題。

相關問題