Приведенная выше логика должна работать (при условии, что разрешения в порядке), если вы замените настройку currentForest
на вызов Forest.GetForest , который идентифицирует лес, домены которого вы хотите перечислить.
DirectoryContext context = new DirectoryContext(DirectoryContextType.Forest,
"dns-name-of-target-forest");
Forest currentForest = Forest.GetForest(context);
Если у вас нет разрешения, но вы знаете кого-то, кто имеет, есть Переопределение конструктора DirectoryContext , которое позволяет вам указать альтернативное имя и пароль.
ОтношениеГлобальный каталог в лес подробно здесь .Короче говоря, лес - это абстракция Active Directory (AD) для группировки объектов AD.Глобальный каталог (если он есть в лесу) - это распределенный репозиторий данных, необходимый для выполнения определенных типов операций в этом лесу.