Может ли кто-нибудь помочь мне получить все домены в Active Directory. Я пробовал много раз, но все программы показывают только текущий рабочий домен.
Как я могу это сделать?
Может ли кто-нибудь помочь мне получить все домены в Active Directory. Я пробовал много раз, но все программы показывают только текущий рабочий домен.
Как я могу это сделать?
Domain domain = Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, "yourDomain", "username", "password"));
Forest forest = domain.Forest;
DomainCollection domains = forest.Domains;
В приведенном выше примере используется пространство имен System.DirectoryServices.ActiveDirectory. Это даст вам коллекцию доменов, содержащую все домены, которые находятся в том же лесу, что и ваш домен.
У меня были некоторые проблемы с получением кода LeeMobile для работы в моем случае, потому что он пытался найти текущий контекст домена моего приложения во время работы леса .Домены. Я смог обойти это, сделав что-то вроде этого.
Forest forest = Forest.GetForest(new DirectoryContext(DirectoryContextType.Forest, "yourForestDomain", "username", "password"));
DomainCollection domains = forest.Domains;
С помощью DirectorySearcher вы можете подключиться и прочитать структуру одной Active Directory, включая структуру (подразделения организации, группы, пользователи, компьютеры, контроллеры домена). Чтобы подключиться к другому домену, вам потребуются учетные данные этого другого домена. У нас были проблемы с подключением к другому домену с машины, принадлежащей другому домену, отличному от целевого. Мне тоже интересно, возможно ли это.
Вы также можете использовать System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest().Domains
var domains = Forest.GetCurrentForest().Domains.Cast<Domain>();
foreach (var domain in domains)
{
Console.WriteLine(domain.Name);
}