Если я запустил следующее предложение LDAP на контроллере домена 2008 R2,
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, он работает нормально.
Обратите внимание, my2008DC - это глобальный каталог в домене MyChild.MyPDC.com, он будет иметь частичную копию домена MyPDC.com и, следовательно, может запрашивать этот сервер, чтобы найти информацию об объектах в MyPDC.com, я прав?
Есть какие-нибудь подсказки о том, почему контроллеры домена 2003 могут запускать его, а контроллеры домена 2008 - нет?
Вы явно выполняете поиск в разделе локального домена, глобальный каталог не будет возвращать рефералов
Если вы хотите выполнить поиск LDAP в глобальном каталоге, укажите порт 3268, например:
LDAP://my2008DC.MyChild.MyPDC.com:3268/...
Видеть эта статья TechNet для дальнейших объяснений и примечаний по теме.
По имени сервера я сделал вывод, что это DC для дочернего домена. Вы запрашиваете данные об объекте в родительском домене и, следовательно, о переходе.
Здесь вы запрашиваете AD, а не глобальный каталог, поэтому у AD нет данных. Рискну предположить, что ваш win2k3 DC находится в родительском домене.