如果我在 2008 R2 域控制器上运行以下 LDAP 语句,
adoCommand.CommandText = "<LDAP://my2008DC.MyChild.MyPDC.com/CN=Enterprise Admins,CN=Users,DC=MyPDC,DC=com>;(&(objectCategory=group)(cn=*));cn;base"
Set adoRecordset = adoCommand.Execute
我收到“从服务器返回了引荐”错误。
但是,如果我在 2003 DC 上运行相同的脚本,它可以正常运行。
请注意,my2008DC 是 MyChild.MyPDC.com 域中的全局目录,它将具有 MyPDC.com 域的部分副本,因此可以查询该服务器以查找有关 MyPDC.com 中对象的信息,对吗?
有什么线索可以解释为什么 2003 域控制器能够运行它,而 2008 域控制器却不能运行它吗?
答案1
根据服务器名称,我推断这是子域的 DC。您请求的是父域中实体的数据,因此是引用。
您在这里查询的是 AD,而不是全局目录,因此 AD 没有数据。我大胆猜测您的 win2k3 DC 位于父域中。
答案2
您显然是在针对本地域分区执行搜索,全局目录不会返回引荐
如果要针对全局目录执行 LDAP 搜索,请指定端口 3268,如下所示:
LDAP://my2008DC.MyChild.MyPDC.com:3268/...
看这篇 TechNet 文章以获得关于该主题的进一步解释和注释。