2017-06-29 45 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(); 
    } 
}