2017-06-29 68 views
0

我有這樣的代碼檢索所有域名

  using (var winNT = new DirectoryEntry("WinNT:")) 
      { 
       foreach (DirectoryEntry child in winNT.Children) 
       { 
        if (String.Compare(child.SchemaClassName, "Domain", true) == 0) 
        { 
         _AvailableDomains.Add(child.Name); 
        } 
       } 
      } 

在某些機器(我剛剛測試在Win 2016)則顯示域列表:工作組,本地機器名,公司域。在別人名單上是空的。首先,我認爲它停止工作,但一些同事在運行代碼時仍然看到列表;我看不到它(我們有相同的操作系統,安裝了相同的.Net框架)。

+0

那將是一個權限問題? – LONG

回答

0

推薦與下面的代碼工作:

using System.DirectoryServices.dll; 

using (var forest = Forest.GetCurrentForest()) 
{ 
    foreach (Domain domain in forest.Domains) 
    { 
     _AvailableDomains.Add(domain.Name); 
     domain.Dispose(); 
    } 
}