如何使用C#获取Active Directory中所有域的列表

Aru*_*run 8 c# dns active-directory

任何人都可以帮助我获取Active Directory中的所有域名.我已经尝试了很多次,但所有程序都只列出了当前的工作域.

我怎样才能做到这一点?

Lee*_*ile 10

Domain domain = Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, "yourDomain", "username", "password"));

Forest forest = domain.Forest;

DomainCollection domains = forest.Domains;
Run Code Online (Sandbox Code Playgroud)

以上使用System.DirectoryServices.ActiveDirectory命名空间.它将为您提供一个域集合,其中包含与您的给定域位于同一个林中的所有域.


Pau*_*aul 5

我在让LeeMobile 的代码在我的案例中工作时遇到了一些问题,因为它在运行 Forest.Domains 时试图找到我的应用程序的当前域上下文。我能够通过做这样的事情来解决它。

Forest forest = Forest.GetForest(new DirectoryContext(DirectoryContextType.Forest, "yourForestDomain", "username", "password"));
DomainCollection domains = forest.Domains;
Run Code Online (Sandbox Code Playgroud)


Ser*_*ian 1

使用 DirectorySearcher,您可以连接并读取一个 Active Directory 的结构,包括结构(组织单位、组、用户、计算机、域控制器)。为了连接到不同的域,您需要该其他域的凭据。我们在从属于与目标域不同的域的计算机连接到另一个域时遇到问题。我也很好奇这是否可能。