我需要构建一个 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>
我如何执行更快的林域枚举,并构建树结构?