簡體   English   中英

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

[英]How to get list of all domains in Active Directory using C#

任何人都可以幫助我獲取 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.Domains 時試圖找到我的應用程序的當前域上下文。 我能夠通過做這樣的事情來解決它。

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM