具有多个IP地址中的节点的Active Directory

我写了一些代码来从Active Directory服务器获取用户信息。 假设Active Directory服务器具有节点,每个节点都是另一个位于不同地理位置的Active Directory安装。 例如:美国有一台AD服务器,澳大利亚有另一台,美国有一台AD服务器,前两台作为节点。

如果我在根AD服务器上运行它,filter是否会查询我为跨地理位置search用户而编写的工作? 我使用的查询是

(|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson)) 

我实际上不能testing这个场景,但需要知道这里会发生什么。

AD是分布式的多主数据库,一般而言,您可以查询任何关于用户的域控制器,并在任何DC(节点)中获得相同的答案。

在AD中,您可以configuration服务器之间数据更改的复制,因此如果用户在澳大利亚更改某个属性,并且在纽约州查询针对服务器的某些数据,则可能会得到不同的答案。 域pipe理员可以告诉你有关域中的时间复制。

一旦复制发生,您在任何DC都有相同的信息。 通常复制时间大约为几分钟,但在某些情况下,每天只能设置为1或2次。

我希望这回答你的问题。

您的术语WRT Active Directory不精确。 我可以为你看到两个问题:

  • 查询AD的最近副本
  • 了解多域环境中查询的行为

全局目录维护着森林中所有域的内容的子集。 如果您使用的术语“节点”指的是独立的域,对全局编录的查询将允许您在单个查询中查询森林中的所有域(假设您正在查找的属性是复制到GC)。

物理closuresDC的位置通过DNS和LDAP查询的组合来完成。 在“dns ldapfind最近的域控制器”上的Gooooooglesearch返回一些好的第一步( 通过LDAP查找最接近的域控制器 )。

如果您在Windows上开发,则可以使用ADSI API“免费”获取域控制器位置。

这里不清楚的是“节点”这个词的含义。

  • 具有多个域控制器的地理位置分布的单个Active Directory域?
  • 单个域包含每个地理位置的用户和计算机的OU?
  • 多个域代表不同的公司地区办事处?

只要您查询同一个域的域控制器,就可以从任何一个域中得到同样的查询结果 (除了复制问题)。

但是,如果您有多个域,或者您想要查询给定域的特定子树(OU),您将得到不同的答案。

确定你想要“或”“|” 运算符在查询中,这是没有意义的。 你也等同节点与域?

下面的例子也会给你一个不需要代码testing的例子。

dsquery * domainroot -filter(|(objectClass = user)(objectClass = person)(objectClass = inetOrgPerson))“-attr *

但就像我说的“OR”| 操作员没有意义。

奇怪的是,我发现了一个在serverfaults的答案代码的错误,这将是更糟的,如果这样做后消失