为什么枚举DirectoryEntry子项仅在WinNT域上返回20个结果? C#

时间:2011-05-11 13:08:00

标签: c# enumeration directoryentry

我目前正在使用以下代码查找给定WinNT域中的计算机,因为WinNT域不支持DirectorySearcher;

protected void ScanDomain(string domainName, bool isLocalDomain)
{
    DirectoryEntry parentEntry = new DirectoryEntry();

    if(isLocalDomain)
    {
        try
        {
            parentEntry.Path = "WinNT://" + domainName;

            int numResults = 0;
            foreach (DirectoryEntry childEntry in parentEntry.Children)
            {
                switch (childEntry.SchemaClassName)
                {
                    case "Computer":
                        Debug.WriteLine(childEntry.Name);

                        numResults++;
                        break;
                }
            }

            if (numResults == 0)
            {
                Debug.WriteLine("No results.");
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine("Failed.");
        }
    }
    else
    {
        //...
    }
}

但是当使用这种方法时,我只收到20个计算机结果,即使我知道计算机的数量也多于域中的计算机。

所以我只是想知道是否有人知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

目录条目返回特定节点的子节点。这不包含节点下的节点,意味着它的大孩子。尝试检查大孩子,并获得WIN NT下的每个节点,这将工作。

如果您需要代码段,请与我们联系。或者我错过了我身边的任何事情。