检索所有域名

时间:2017-06-29 13:11:21

标签: c# .net

我有这段代码

            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上测试它)它会显示一个域列表:WORKGROUP,本地机器名称,公司域名。在其他人的名单上是空的。首先,我认为它停止工作,但一些同事在运行代码时仍然看到列表;我看不到它(我们有相同的操作系统,安装了相同的.Net框架)。

1 个答案:

答案 0 :(得分:0)

建议使用以下代码:

using System.DirectoryServices.dll;

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