快速枚举森林和构建域树的方法?

时间:2014-05-13 10:36:53

标签: c# active-directory directoryservices

我需要构建一个 domains in a forest 的树。到目前为止,我使用了以下代码:

using System.DirectoryServices.ActiveDirectory;

...

List<Domain> domains = new List<Domain>(); // flat list of domains
foreach (Domain dom in Forest.GetCurrentForest().Domains)
{
    try
    {
        domains.Add(dom);
        var de = dom.GetDirectoryEntry();
        // Here I have de.Guid and de.Parent.Guid, so using them I can build a tree
    }
    catch () {} // for simplicity left it blank.
}

代码效果很好。但是,当某些域无法使用时,响应( Domain.GetDirectoryEntry() )可能需要一段时间(15-20秒),然后才会抛出异常。但是使用Active Directory域和信任,可以使用问题域快速检索所有林树,所以我想在某处有一些域缓存。

如果此缓存位于 Global Catalog ,我想知道 - 是否可以在没有 GC 的情况下拥有 AD 结构?< / p>

我如何执行更快的林域枚举,并构建树结构?

0 个答案:

没有答案