Я использую openldap на Mac OS X Server 10.6 и мне нужно сгенерировать vcard для всех пользователей в данной группе.С помощью ldapsearch я могу перечислить все memberUid для всех пользователей в этой группе.Я нашел Perl-скрипт (Advanced LDAP Search или ALS), который был написан кем-то, кто легко сгенерирует vcard.ALS можно найти здесь http://www.ldapman.org/tools/als.gz
Так что мне нужно сделать, это создать скрипт-обертку (на python или perl), который будет эффективно проходить через memberUid и запускать команду ALS для создания vcardи добавить его в файл.
Эта команда предоставляет memberUid's:
ldapsearch -x -b 'dc=ldap,dc=server,dc=com' '(cn=testgroup)'
Затем при запуске ALS выдается vcard:
als -b dc=ldap,dc=server,dc=com -V uid=aaronh > vcardlist.vcf
Если это проще сделать с помощью Perl, так как ALS уже используетэто было бы хорошо.Я сделал больше работы в Python, но я открыт для предложений.
Заранее спасибо, Аарон
РЕДАКТИРОВАТЬ:
Вот ссылка на Net: код LDAP, который у меня есть на сегодняшний день.До сих пор он опускает записи ldap со всей информацией о пользователях.Чего мне не хватает, так это как получить только UID для каждого пользователя и затем вставить его в ALS.
http://www.queencitytech.com/net-ldap
Вот пример записи (после запуска кода по вышеуказанной ссылке):
#-------------------------------
DN: uid=aaronh,cn=users,dc=ldap,dc=server,dc=com
altSecurityIdentities : Kerberos:aaronh@LDAP.SERVER.COM
apple-generateduid : F0F9DA73-70B3-47EB-BD25-FE4139E16942
apple-imhandle : Jabber:aaronh@ichat.server.com
apple-mcxflags : <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>simultaneous_login_enabled</key>
<true/>
</dict>
</plist>
authAuthority : ;ApplePasswordServer;0x4c11231147c72b59000001f800001663,1024 35 131057002239213764263627099108547501925287731311742942286788930775556419648865483768960345576253082450228562208107642206135992876630494830143899597135936566841409094870100055573569425410665510365545238751677692308677943427807426637133913499488233527734757673201849965347880843479632671824597968768822920700439 root@ldap.server.com:192.168.1.175;Kerberosv5;0x4c11231147c72b59000001f800001663;aaronh@LDAP.SERVER.COM;LDAP.SERVER.COM;1024 35 131057002239213764263627099108547501925287731311742942286788930775556419648865483768960345576253082450228562208107642206135992876630494830143899597135936566841409094870100055573569425410665510365545238751677692308677943427807426637133913499488233527734757673201849965347880843479632671824597968768822920700439 root@ldap.server.com:192.168.1.170
cn : Aaron Hoffman
gidNumber : 20
givenName : Aaron
homeDirectory : 99
loginShell : /bin/bash
objectClass : inetOrgPersonposixAccountshadowAccountapple-userextensibleObjectorganizationalPersontopperson
sn : Hoffman
uid : aaronh
uidNumber : 2643
userPassword : ********
#-------------------------------