Interroger Active Directory avec Lotus script

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Interroger Active Directory avec Lotus script

Messagepar gvana » 24 Nov 2010 à 16:47

coucou,

petite question.

je souhaiterais interroger en script l'annuaire Windaube Active Directory de ma société.
En fait simplement pour récupérer la date de naissance des utilisateurs.

Sachant qu'elle n'est renseigné qu'a cette endroit précis.

Est ce possible sachant que mon serveur domino est sur AS/400 ?

merci d'avance,
gvana
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 358
Inscrit(e) le : 09 Mai 2005 à 08:22
Localisation : Douai

Messagepar roubech » 26 Nov 2010 à 02:15

en LS, je ne vois pas
Par contre en Java, regardes du côté du package javax.naming
http://java.sun.com/products/jndi/1.2/j ... index.html

[syntax="java"]public static void main(String[] args) {
try {
Hashtable<String> env = new Hashtable<String>();
env.put("java.naming.factory.initial",
"com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.provider.url",
"ldap://localhost/dc=my-domain,dc=com");

Context ictx = new InitialContext(env);
NamingEnumeration<NameClassPair> e = ictx.list("cn=userA");
while (e.hasMore()) {
System.out.println("name: " + e.next().getName());
}
}
catch (javax.naming.NamingException e) {
System.err.println("Exception " + e);
}
}[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar JfCt » 26 Nov 2010 à 16:39

Bonjour

Tu peux le faire en LS .. mais pas simple.

En gros il te faut :

Dim objConnection As Variant
Dim objCommand As Variant
Dim objRecordSet As Variant

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"

objConnection.Properties("User ID")="TOTO"
objConnection.Properties("Password")="TITI"
objConnection.Open

Set objCommand = CreateObject("ADODB.Command")

Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 10
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

Acceder a l'AD, cela revient a faire une requete SQL de ce type :

Req="SELECT name FROM 'LDAP://"+Ldap+"' WHERE mail='"+Email+"' "

Ldap etant l'adresse IP ou se trouve L'AD
Email la valeur recherchee

Puis pour executer la requete :

objCommand.CommandText=Req
Set objRecordSet = objCommand.Execute

Pour lire le resultat ...

objRecordSet.movefirst
While Not objRecordSet.EOF
Chaine=objRecordSet.Fields(0).value
objRecordSet.movenext
Wend

dans objRecordSet.Fields(0) tu dois avoir la valeur que tu rechcherches, dans l'exemple le name.

Voila, c'est pas evident a faire marcher !!
Ah, pour finir, le debugger ne sait pas visualiser le contenu de tous ces objets, en particulier le recordset ....

En faisant une recherche (en demandant gentiment a Mr Google), tu dois trouver des exemples de cela en VB.
JfCt
Maître-posteur
Maître-posteur
 
Message(s) : 400
Inscrit(e) le : 01 Mars 2005 à 18:00
Localisation : Paris sud


Retour vers Développement