1

Тема: VBS: запросы к не-ActiveDirectory LDAP

Доброго времени суток!
Столкнулся с задачей:
Нужно средствами VBS.. ну, или как-нибудь еше, но удобнее всего при помощи VBS, вытащить список пользователей с сервера Communigate, используя LDAP. Для этой цели был написан скрипт примерно следующего вида:

' переменные
strComGateServerIP = "192.168.*.*"
strComGatePort = "389"

strComGateUser = "User"
strComGatePass = "Password"

strComGateBeseDN = "cn=basedn.ru"
strComGateFilter = "(&(st=ATB)(objectclass=*))"

'Доступ к LDAP
Set objConnection = CreateObject("ADODB.Connection")

objConnection.Provider="ADsDSOObject"
objConnection.Properties("User ID") = strComGateUser
objConnection.Properties("Password") = strComGatePass
objConnection.Open
 
Set objComGateCommand = CreateObject("ADODB.Command")
objComGateCommand.ActiveConnection = objConnection

 
'коннектимся к ComGate
objComGateCommand.CommandText =  "<LDAP://" & strComGateServerIP & ":" & strComGatePort & "/" & _
strComGateBeseDN & ">;" & strComGateFilter &  ";ADsPath,cn;subtree"
    
Set objComGateUsers = objComGateCommand.Execute

WScript.Echo objComGateUsers.RecordCount

Do Until objComGateUsers.EOF
        
    WScript.Echo objComGateUsers.Fields(0).Value
    WScript.Echo objComGateUsers.Fields(1).Value
        
objComGateUsers.MoveNext
Loop

С AD код работает на ура, но как только дело касается Communigateовского ldap, происходит какая-то фигня..
не могу получить ничего, кроме ADsPath. то есть - фильтр отрабатывает как положено, но в рекордсете не оказывается ничего, кроме этого-самого ADsPath..

расскажите мне, пожалуйста, что я делаю не так?

2

Re: VBS: запросы к не-ActiveDirectory LDAP

Faalh пишет:

но как только дело касается Communigateовского ldap,

Что это такое? Есть ли ссылка на online документацию, где можно было бы почитать на предмет особенностей и отличий от Microsoft LDAP?

3

Re: VBS: запросы к не-ActiveDirectory LDAP

Communigate - это серверная платформа для работы с почтой, VoIP и прочими такими штуками. В моем случае используется просто как почтовый сервер. Имеет в составе собственный LDAP модуль.
Online документации мне пока что удалось найти очень мало - штуковина проприетарная, видимо, поэтому делятся информацией очень ограниченно
разве что вот это:
CommuniGate Pro: LDAP Module
и вот это:
CommuniGate Pro: Directory

спасибо за участие в моем вопросе

4

Re: VBS: запросы к не-ActiveDirectory LDAP

У меня возникла аналогичная задача обратиться к LDAP серверу, в реализации Dionis TS.
Пытался также через ADODB.Command выполнить запрос, но не тут то было. Из всей строки CommandText, Dionis понимает только Dase DN, игнорируя фильтр (ищет по фильтру objectclass=*, какой бы я не указывал) и уровень поиска(subtree).
Command.Properties так же игнорирует, подключение идет с настройками по умолчанию.

Подскажите, пожалуйста, есть ли еще какая-нибудь возможность работать с LDAP серверами, может отдельная компонента есть или что-то подобное?

5

Re: VBS: запросы к не-ActiveDirectory LDAP

Чисто мысли в слух(проверить не смогу) - попробуйте обратиться к LDAP через WMI(Active Directory Provider) или сделать запрос через LogParser(с ним можно работать также и из скриптов). Возможно один из вариантов сработает...

Отдельные компоненты(ActiveX) мне не попадались, хотя это не значит что их нет .