gpt4 book ai didi

c# - 如何找到 Active Directory 的全局目录?

转载 作者:行者123 更新时间:2023-11-30 15:47:46 24 4
gpt4 key购买 nike

我想在 Active Directory 环境中以 GC://DC=xxx,DC=yyy,DC=zzz 格式搜索用户。但是我如何以编程方式在任意 Active Directory 环境中找到全局目录?每个域名总是对应一个全局目录吗?我可以尝试任何其他方法吗?

注意:Forest.FindAllGlobalCatalogs() 返回服务器名称列表,但实际上我无法使用它们进行搜索。

Edit1:这是我想要做的:假设我的事件目录有一个名为 domain1.root.com 的域,那么我将使用 GC://DC=domain1,DC=root,DC=com 来搜索用户。但这总是全局目录吗?每个域都必须有一个全局目录吗?

Edit2:我现在可以使用以下代码搜索用户:

            var currentForest = Forest.GetCurrentForest();
var globalCatalog = currentForest.FindGlobalCatalog();
Console.WriteLine(globalCatalog.Name);
//DirectorySearcher searcher = new DirectorySearcher("GC://"+y.Name);
DirectorySearcher searcher = globalCatalog.GetDirectorySearcher();
searcher.Filter = @"samaccountname=skaranth";
Console.WriteLine(searcher.SearchRoot.Path);
var result = searcher.FindOne();
if(result!=null)
Console.WriteLine(result.Properties["distinguishedname"][0]);
searcher.Dispose();
globalCatalog.Dispose();
currentForest.Dispose();

最佳答案

你到底想用这个实现什么??

全局目录是存储在特定域 Controller 上的特殊属性子集。虽然每个域 Controller 都有该域的一整套属性和对象,但全局目录包含来自 AD 林中所有域的数据。

所以 GC 实际上只在您需要跨多个域查找内容时才会发挥作用。如果您只有一个域,GC 根本帮不了您。

Forest.FindAllGlobalCatalogs() 确实会为您提供包含全局目录数据集的所有域 Controller 服务器的列表。那你为什么不能用那些来搜索??你能告诉我们你到目前为止尝试了什么吗??

全局目录就是 - global - 例如你根本不应该有任何理由想要指定一个特定的服务器.....无论如何,这些服务器都应该有相同的数据集。

再说一次:为什么您觉得需要找到一个具有全局目录的服务器,一旦您拥有该信息,您想要做什么?为什么在进行全局目录搜索时感觉需要指定服务器??

关于c# - 如何找到 Active Directory 的全局目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3219664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com