OVH Cloud OVH Cloud

Connexion pour infos User LDAP

3 réponses
Avatar
yves.grenet
Bonjour,

J'ai créé un script pour interroger l'annuaire LDAP mais il ne
fonctionne pas dans certains cas.

Si j'interroge l'annuaire pour un utilisateur créé par défaut dans le
"container" Users tout fonctionne correctement.

Il faut savoir que le schéma de l'annuaire à été modifié afin de
répondre à certaines exigences. Ainsi une autre classe pour les Users
à été créée. Nous l'appelerons "AutreUser".
Ces "AutreUser" sont classées dans une arborescence d'OU :
DC=AnnuLDAP->OU=SuperUser->OU=Paris->OU=Annuaire->CN=Mon_utilisateur.
(Pour confirmer, le dossier par défaut des users est :
DC=AnnuLDAP->CN=Users->CN=Mon_utilisateur)

Dim conteneur
Dim utilisateur,OU
Dim dso

const ADS_SECURE_AUTHENTICATION = &h1

set dso = GetObject("LDAP:")
set conteneur = dso.OpenDSObject
("LDAP://Nom_Serveur.AnnuLDAP/CN=TOTO,OU=Annuaire,OU=Client,OU=SuperUser,DC=Nom_Serveur.AnnuLDAP",
StrUser, StrPwd, ADS_SECURE_AUTHENTICATION)

WScript.Echo "prénom : " & vbTab & conteneur.Get("Prenom")
WScript.Echo "Fin"


Le script s'arrête sur la ligne "set conteneur = dso.OpenDSObject"
avec l'erreur "Une référence a été renvoyée par le serveur.".
Je ne suis pas très à l'aise avec VBS et ADSI. J'ai passé beaucoup de
temps sur Internet pour trouver une piste. J'ai testé plein de
solution mais rien y fait.
Merci pour votre aide.

3 réponses

Avatar
Sebastien Piche
bon pour t'aider un peux voicie un petit script que j'ai fait qui renvoie un
msgbox avec le path ldap de l'usager qui est connecté sur l'ordinateur qui
éxécute le script
avec d'autre info fort utile

fonctionne sous windows 2000 et plus uniquement

copier ici_______________
Set objSysInfo = CreateObject("ADSystemInfo")
msgbox ("nom et OU: " & objSysInfo.UserName &vbcrlf &_
"ordinateur: " & objSysInfo.ComputerName &vbcrlf& _
"Site: " & objSysInfo.SiteName &vbcrlf &_
"Domain: " & objSysInfo.DomainShortName &vbcrlf &_
"nom de DNS: " & objSysInfo.DomainDNSName &vbcrlf & _
"Forest DNS: " & objSysInfo.ForestDNSName &vbcrlf &_
"PDC: " & objSysInfo.PDCRoleOwner &vbcrlf &_
"Schema: " & objSysInfo.SchemaRoleOwner &vbcrlf& _
"native mode: " & objSysInfo.IsNativeMode &vbcrlf)


fin du copier_____________________________
"Yves" a écrit dans le message de
news:
Bonjour,

J'ai créé un script pour interroger l'annuaire LDAP mais il ne
fonctionne pas dans certains cas.

Si j'interroge l'annuaire pour un utilisateur créé par défaut dans le
"container" Users tout fonctionne correctement.

Il faut savoir que le schéma de l'annuaire à été modifié afin de
répondre à certaines exigences. Ainsi une autre classe pour les Users
à été créée. Nous l'appelerons "AutreUser".
Ces "AutreUser" sont classées dans une arborescence d'OU :

DC=AnnuLDAP->OU=SuperUser->OU=Paris->OU=Annuaire->CN=Mon_utilisateur.

(Pour confirmer, le dossier par défaut des users est :
DC=AnnuLDAP->CN=Users->CN=Mon_utilisateur)

Dim conteneur
Dim utilisateur,OU
Dim dso

const ADS_SECURE_AUTHENTICATION = &h1

set dso = GetObject("LDAP:")
set conteneur = dso.OpenDSObject

("LDAP://Nom_Serveur.AnnuLDAP/CN=TOTO,OU=Annuaire,OU=Client,OU=SuperUser,DC Nom_Serveur.AnnuLDAP",

StrUser, StrPwd, ADS_SECURE_AUTHENTICATION)

WScript.Echo "prénom : " & vbTab & conteneur.Get("Prenom")
WScript.Echo "Fin"


Le script s'arrête sur la ligne "set conteneur = dso.OpenDSObject"
avec l'erreur "Une référence a été renvoyée par le serveur.".
Je ne suis pas très à l'aise avec VBS et ADSI. J'ai passé beaucoup de
temps sur Internet pour trouver une piste. J'ai testé plein de
solution mais rien y fait.
Merci pour votre aide.


Avatar
yves.grenet
"Sebastien Piche" wrote in message news:...
bon pour t'aider un peux voicie un petit script que j'ai fait qui renvoie un
msgbox avec le path ldap de l'usager qui est connecté sur l'ordinateur qui
éxécute le script
avec d'autre info fort utile

fonctionne sous windows 2000 et plus uniquement

copier ici_______________
Set objSysInfo = CreateObject("ADSystemInfo")
msgbox ("nom et OU: " & objSysInfo.UserName &vbcrlf &_
"ordinateur: " & objSysInfo.ComputerName &vbcrlf& _
"Site: " & objSysInfo.SiteName &vbcrlf &_
"Domain: " & objSysInfo.DomainShortName &vbcrlf &_
"nom de DNS: " & objSysInfo.DomainDNSName &vbcrlf & _
"Forest DNS: " & objSysInfo.ForestDNSName &vbcrlf &_
"PDC: " & objSysInfo.PDCRoleOwner &vbcrlf &_
"Schema: " & objSysInfo.SchemaRoleOwner &vbcrlf& _
"native mode: " & objSysInfo.IsNativeMode &vbcrlf)


fin du copier_____________________________


Merci pour ce bout de code qui fonctionne. Mais j'ai oublié de
préciser ceci : j'interroge l'annuaire AD à partir d'une machine qui
ne fait pas parti du domaine de l'AD. Ainsi je dois spécifier un user
mot de passe pour autoriser la connexion. Le bout de code que tu
fournis ne permet pas de faire cela.
C'est pour ça que j'ai précisé "StrUser, StrPwd,
ADS_SECURE_AUTHENTICATION
" dans le ... dso.OpenDSObject (...
As tu une autre idée ?


Est que quelqu'un connaît une solution via ADO pour passer le user et
mot de passe ?
Quelque chôse du style :
Set aCon = CreateObject("ADODB.Connection")
Set aCmd = CreateObject("ADODB.Command")
aCon.Provider = "ADsDSOObject"
.....


Merci de votre aide.

Avatar
yves.grenet
Bon, je vois que ça n'inspire pas grand monde mon problème.
Mais j'ai trouvé la solution.
Pour info, l'erreur "Une référence a été renvoyée par le serveur."
traduit en anglais est "8235 A referral was returned from the server."
Dans mon cas, elle signifie que le domaine que je veux contacter
n'existe pas. J'avais mis "CN=...,CN=...,DC=Nom_Server.AnnuLDAP".
Cette syntaxe est valable pour désigner le serveur LDAP, dans la
première partie de la commande mais pas pour désigner le DC.
Erreur de débutant.