Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何搜索AD全局Caalogue而不是域控制器?_C#_C# 4.0_Active Directory_Ldap - Fatal编程技术网

C# 如何搜索AD全局Caalogue而不是域控制器?

C# 如何搜索AD全局Caalogue而不是域控制器?,c#,c#-4.0,active-directory,ldap,C#,C# 4.0,Active Directory,Ldap,我有一些c#代码可以成功搜索域,但是我们的客户说它需要搜索全球目录。这有多容易?有意义吗?AD全局编录(GC)可以位于任何域控制器上(通常位于所有域控制器上),对Active Directory所做的更改每隔几分钟复制到所有域控制器。但是,AD中有一些设置没有复制,只能在这个特定的域控制器上找到,这就是为什么经常需要搜索所有域控制器上的值,然后只需询问一个即可 因此,要回答您的问题,您很可能在查询一个域控制器方面做得很好(没有源代码,不能肯定),而这正是您的客户要求您做的。但您可能需要添加选项来

我有一些c#代码可以成功搜索域,但是我们的客户说它需要搜索全球目录。这有多容易?有意义吗?

AD全局编录(GC)可以位于任何域控制器上(通常位于所有域控制器上),对Active Directory所做的更改每隔几分钟复制到所有域控制器。但是,AD中有一些设置没有复制,只能在这个特定的域控制器上找到,这就是为什么经常需要搜索所有域控制器上的值,然后只需询问一个即可

因此,要回答您的问题,您很可能在查询一个域控制器方面做得很好(没有源代码,不能肯定),而这正是您的客户要求您做的。但您可能需要添加选项来扫描其他域控制器以获取更多信息(如果我记得很好,这可能是用户的最后登录时间,它存储在每个域控制器上,并且没有复制)


除非有更多的问题,否则你会在问题中告诉我们:-)

所有全球目录的第一部分都是一个目录。在编程上,可以使用与Active Directory完全相同的方式查询它

你只需要找到地面军事系统的地址和端口。查询您的客户端域的DNS以获取服务(SRV)条目
\u gc.\u tcp.DNSDomain
,这很容易做到。这些条目将为您提供当前全局目录的DNS地址和端口(通常为3268)

以下是Nslookup示例:

> set type=srv
> _gc._tcp.societe.fr
Serveur :  srventr2.societe.fr
Address:  192.168.183.138

_gc._tcp.societe.fr     SRV service location:
          priority       = 0
          weight         = 100
          port           = 3268
          svr hostname   = srventr2.societe.fr
srventr2.societe.fr     internet address = 192.168.183.138

之后,您可以使用与普通目录完全相同的方式搜索全局目录。正如您在评论中所看到的,只有当您的林中有多个域时,才会进行相互测试。这是因为林中所有域的所有对象都可以在GC中找到,但请注意每个对象的所有属性都不存在(如架构中所指定)。

答案非常简单,我所做的只是将url从

GC://<url> to LDAP://<ur>
GC://到LDAP://

显然,域控制器是由这个GC连接的,因此我们的客户告诉我们,我们应该能够扫描GC以查看两个域,而不是一次扫描一个域?这一切都取决于配置。您的客户在一个林中有两个域?或者他在两个林中有两个域,并且在域之间建立了信任。但他们可能是对的(因为他们设置了它),所以查询一个GC就足够了(除非你想查询其他信息,比如上次登录,然后你需要查询所有GC)。是的,实际上只需要查询一次GC。实际上,我刚刚将url更改为GC://我们应该如何知道您实际上没有提供任何代码?:-)你解决了你的问题,这很好,但是下次用足够的代码把你的问题写得更清楚,这样可以提供帮助。我怎么会知道那是什么?