Authentification LDAP / script WSH

Authentification LDAP / script WSH - VB/VBA/VBS - Programmation

Marsh Posté le 16-05-2005 à 02:12:41    

Bonjour,
 
Sur un serveur W2K en Active Directory, j'arrive à ajouter un utilisateur grace à un script WSH :
 
Dim Domain
Dim oUser
Set Domain = GetObject("LDAP://localhost/CN=users,dc=domainname,dc=com" )
Set oUser = Domain.Create("user","cn=test" )
oUser.Put "samAccountName","Jo"
oUser.Put "givenName","Jo"
oUser.Put "sn","Brown"
oUser.Put "userPrincipalName","jo@domainename.com"
oUser.SetInfo
 
Je voudrait pouvoir faire la même opération mais vers un autre serveur LDAP via le réseau. Pour ca je remplace la 3ème ligne par :
 
Set Domain = GetObject("LDAP://192.168.1.1/CN=users,dc=domainname,dc=com" )
 
mais j'obtient le message d'erreur "Une méthode d'authentification plus sécurisée est necessaire pour ce serveur".
 
Je pense qu'il suffit de préciser le login et mot de passe de l'administrateur LDAP mais je n'ai trouvé nul part la méthode pour faire ca. Je précise qu'en utilisant un client JAVA LDAP Browser j'arrive bien à accéder à distance à ce serveur LDAP avec le compte d'administration et à y faire des modifications.
 
Petit détail : le serveur LDAP auquel je veux accéder à distance n'est pas un Active Directory mais un OpenLDAP.
 
Merci d'avance pour vos aides.


---------------
Slasher
Reply

Marsh Posté le 16-05-2005 à 02:12:41   

Reply

Marsh Posté le 16-05-2005 à 19:03:03    

Bon, j'ai trouvé quelques trucs sur le net et ca marche :
 
Dim strPath
Dim strUsername
Dim strPassword
Dim adsNamespaceLDAP
Dim adsMyObject
strPath = "LDAP://192.168.1.1/CN=USERS,dc=domainname,dc=com"
strUsername = "cn=Administrateur,cn=Users," & "dc=domainname,dc=com"
strPassword = "admin"
Set adsNamespaceLDAP = GetObject("LDAP:" )
Set adsMyObject = adsNamespaceLDAP.OpenDSObject (strPath, strUsername, strPassword, 0)
Set oUser = adsMyobject.Create("user","cn=vlaunders" )
oUser.Put "samAccountName","Jo"
oUser.Put "givenName","Jo"
oUser.Put "sn","Brown"
oUser.Put "userPrincipalName","jo@reskit.com"
oUser.SetInfo


---------------
Slasher
Reply

Marsh Posté le 17-05-2005 à 00:41:46    

Encore un petit problème lié au mêem script pour créer un objet de classe inetOrgPerson sous OpenLDAP cette fois.
 
J'ai modifié le script de la manière suivante :
 
Dim strPath  'path to the directory server
Dim strUsername  'DN of the username
Dim strPassword  'plain-text password
Dim adsNamespaceLDAP 'ADSI namespace object
Dim adsMyObject  'root object of the directory
strPath = "LDAP://192.168.1.1/OU=Users,dc=domainname,dc=com"
strUsername = "cn=Admin," & "dc=domainname,dc=com"
strPassword = "admin"
Set adsNamespaceLDAP = GetObject("LDAP:" )
Set adsMyObject = adsNamespaceLDAP.OpenDSObject (strPath, strUsername, strPassword, 0)
Set oUser = adsMyobject.Create("inetOrgPerson","cn=vlaunders" )
oUser.Put "givenName","Jo"
oUser.Put "SN","Brown"
oUser.SetInfo
 
et j'obtient l'erreur "violation de nom". Quelqu'un saurait comment on fait ca ?


---------------
Slasher
Reply

Marsh Posté le 17-05-2005 à 09:48:11    

Salut,
 
Ne serait-ce pas simplement qu'à la suite de tes nombreux essais, le User que tu tentes d'ajouter est déjà présent dans l'annuaire ? Ou que tu l'ais supprimé et que la transaction n'ait pas abouti ?
 
C'est énorme, je sais, mais à 1:00 du mat', ça peut arriver.


Message édité par fifou le 17-05-2005 à 09:49:56
Reply

Marsh Posté le 17-05-2005 à 11:57:21    

lol
 
non non, c'est pas ca. J'aurais bien aimé !


---------------
Slasher
Reply

Marsh Posté le 17-05-2005 à 21:50:38    

Tu trouveras surement ta réponse dans le scriptrepository
http://www.microsoft.com/technet/s [...] fault.mspx

Reply

Marsh Posté le 18-05-2005 à 02:09:59    

Merci pour le lien !
 
Donc j'ai fouillé un peu dessus, y'a pas mal de choses... ADSI Scriptomatic est pas mal aussi pour avoir du code rapidement.
 
Seulement j'en arrive toujours au même problème : "violation de nom" quand je le fait sous OpenLDAP (sous AD ca marche très bien). Même l'ajout d'une simple OU me provoque cette erreur !
 
Pour une OU, la fin du code généré par ADSI Scriptomatic resssemble à ca :
 
Set objOrganizationalunit = objContainer.Create("organizationalUnit", "ou=USERS" )
objOrganizationalunit.SetInfo
 
Sur la 1ere ligne si je remplace "organizationalUnit" par un nom bidon, un message m'indique que le type d'objet n'existe pas (ce qui parait logique) et si je laisse "organizationalUnit" j'ai "violation de nom".
 
Dans la théorie ca me parait pas très compliqué pourtant mais je trouve aucune infos la dessus :(.
 
Peut être que je n'utilise pas la bonne méthode... Mon but au final serait d'extraire certaines infos liées aux utilisateurs dans AD et de les enregistrer dans OpenLDAP.


---------------
Slasher
Reply

Marsh Posté le 26-09-2007 à 19:04:53    

heavymetalmaster a écrit :


J'ai le même problème
Une personne aurait elle trouve la solution depuis tous ce temps
 


Reply

Marsh Posté le 29-10-2008 à 12:03:30    

Hello,
J'ai l'intention d'administrer un annuaire ldap via vb script moi aussi. Un peu d'aide serait le bienvenue donc :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed