为什么枚举目录条目子项在 WinNT 域上只返回 20 个结果?C#.

本文关键字:返回 结果 WinNT 枚举 为什么 | 更新日期: 2023-09-27 17:55:58

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

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 个计算机结果。

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

为什么枚举目录条目子项在 WinNT 域上只返回 20 个结果?C#.

目录条目返回特定节点的子节点。这将不包含节点下的节点,意味着它的孙子。尝试也检查孙子,并获取 WIN NT 下的每个节点,这将起作用。

如果您需要代码片段,请告诉我。或者我这边缺少任何东西。