此代码枚举Active Directory域,如果正在运行的mahine是林的一部分。
public static ArrayList EnumerateDomains()
{
ArrayList alDomains = new ArrayList();
Forest currentForest = Forest.GetCurrentForest();
DomainCollection myDomains = currentForest.Domains;
foreach (Domain objDomain in myDomains)
{
alDomains.Add(objDomain.Name);
}
return alDomains;
}
是否可以枚举属于其他森林的域?
森林和全球目录有什么区别?
答案 0 :(得分:1)
如果您通过调用Forest.GetForest替换currentForest
的设置来识别您希望枚举其域的林,则上述逻辑应该有效(提供权限正常)。
DirectoryContext context = new DirectoryContext(DirectoryContextType.Forest,
"dns-name-of-target-forest");
Forest currentForest = Forest.GetForest(context);
如果您没有权限但知道有人这样做,则DirectoryContext constructor overrides允许您指定备用名称和密码。
全局目录与森林的关系详细here。简而言之,林是用于对AD对象进行分组的Active Directory(AD)抽象。全局编录(如果林有一个)是一个分布式数据存储库,需要在该林上完成某些类型的操作。