DELPHI et ACTIVE DIRECTORY (ou LDAP)

thonyboy
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
- 4 juin 2004 à 14:05
g2loq
Messages postés
10
Date d'inscription
vendredi 12 juillet 2002
Statut
Membre
Dernière intervention
15 mars 2005
- 3 mars 2005 à 15:22
Bonjour,

Je souhaiterais developper avec delphi une petite appli qui permettrait de mettre a jour (ou creer) les champs nom, prenom, description et telephone.

Je ne trouve aucune doc ou exemple sur le net.

Quelqu'un a t'il des infos, des liens, ou mieux un exemple.

D'avance merci

5 réponses

oakenshi
Messages postés
1
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
13 octobre 2004

13 oct. 2004 à 15:02
Pardon pour mon français

Voir ici:
http://www.vkarlsen.no/lvk/current/
http://www.ararat.cz/synapse/

Bonne chance

Thorin Oakenshield
0
cs_Ivanov
Messages postés
8
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
1 avril 2009

10 janv. 2005 à 22:49
Bonjour,

J'ai visité les liens mais comment fais-tu pour créer ou supprimer un compte dans l'active directory (avec les UO),

Merci pour ta réponse!
0
g2loq
Messages postés
10
Date d'inscription
vendredi 12 juillet 2002
Statut
Membre
Dernière intervention
15 mars 2005

2 mars 2005 à 15:10
Il n'y a pas beaucoups d'exemple sur internet, ca fait des mois que je cherche. :-)

J'ai pondu une petite fonction, hiers elle marchait chez moi, aujourd'hui non et je ne vois pas pourquoi. Mais cela va peut être aidé quelqu'un. :-)

interface


uses
SysUtils,
Variants,
Dialogs,


ComObj, ActiveX,


ActiveDs_TLB; //ADSI








//------------------------------------------------------------------------------
function ADsGetObject(lpszPathName: PWideChar; const riid: TGUID; out obj): HResult; stdcall; external 'activeds.dll';
function ADsOpenObject(lpszPathName: PWideChar; lpszUserName: PWideChar; lpszPassword: PWideChar; dwReserved: LongInt; const riid: TIID; out obj): HResult; stdcall; external 'activeds.dll';


...





implementation






//------------------------------------------------------------------------------
function Change_Description_PC_ADSI ( nom_ordi_a_modif,descript : string) : string; // Modification de la description du PC ds Active Directory
const MAX_car = 255;
var
UnknownObj: IUnknown;
obj : IAds;


myUser, myPassword, nom_pc : string;
DestName : string;


PWCmyUser, PWCmyPassword, PWCDestName : array [0..MAX_car] of WideChar;


begin


nom_pc := nom_ordi_a_modif; //'l-atEcono1Essai';
DestName := 'LDAP://NomServeur/CN=' + nom_pc + ',OU=...,DC=...,DC=...,DC=...';
myUser := 'DOMAINE\LOGIN' ;
myPassword := 'PWD' ;


//test si la chaine rentre dans le tableau declarer dans VAR
if (length(DestName)
0
g2loq
Messages postés
10
Date d'inscription
vendredi 12 juillet 2002
Statut
Membre
Dernière intervention
15 mars 2005

2 mars 2005 à 15:19
N.B : il faut faire des recherche autour du mot clef ADSI pour plus d'info.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
g2loq
Messages postés
10
Date d'inscription
vendredi 12 juillet 2002
Statut
Membre
Dernière intervention
15 mars 2005

3 mars 2005 à 15:22
la solution qui marche bien, a nouveau :-)

//------------------------------------------------------------------------------
function Change_Description_PC_ADSI ( nom_ordi_a_modif,descript : string) : string; // Modification de la description du PC ds Active Directory
const MAX_car = 255;
var
UnknownObj: IUnknown;
obj : IAds;


myUser, myPassword, nom_pc, DestName : string;



begin


nom_pc := nom_ordi_a_modif;
DestName := 'LDAP://NomServeur/CN=' + nom_pc + ',OU=...,DC=...,DC=...,DC=...';


myUser := 'DOMAIN\LOGIN' ;
myPassword := 'PWD' ;


try

//ADsGetObject(StringToOleStr(DestName), IID_IADs, UnknownObj); //connextion sans authentifications
OleCheck( AdsOpenObject( StringToOleStr (DestName),
StringToOleStr(myUser),
StringToOleStr(myPassword), 0, IID_IADs, UnknownObj)); //connextion avec authentifications



obj : = UnknownObj as IADs;


obj.Put('description', descript); //met dans un tampon
obj.SetInfo; //valide la valeur du tampon ds AD. Si Get avant SetInfo Alors cela efface le Put


result := obj.get('description');


except on E: EOleException do begin ShowMessage('Source ' + E.Source + ' Message ' + E.Message); end;
end;



end;
//------------------------------------------------------------------------------
0