OVH Cloud OVH Cloud

vbs sur ldap

1 réponse
Avatar
olivier
Bonjour,

Débutant en vbs je me pose la question suivante sur les script liés à
l'Active directory.

J' ai écrit quelques scripts de la forme :
Set variable1=
getobject("LDAP://ou=utilisateurs,ou=centre,dc=domaine,dc=com)
for each variable2 in variable1
wscript.echo "Pour" &variable2.samaccountname & "&variable2.descritpion"
next
avec quelques commandes put ou remplace pour effectuer des modifications.


Par contre je ne comprends pas les scripts de la forme:
set objcommand = createobject("adodb.connection")
objcommand.activeconnection=objconnection
objcommandcommandtext="LDAP://dc=domaine,dc=com"distinguishedname..."
...
set obRecordset
objconnection.close

Quelle est la différence fondamentale, pouquoi la méthode du premier script
ne permet elle pas de satisfaire toutes les modifications liées à l'annuaire
LDAP.
Pourquoi faire un Connection/command/recordset au lieu d'une requete sur
ldap?

Merci

Olivier Hardy
http://oprhardy.free.fr

1 réponse

Avatar
Jérôme Cornier [MS]
Bonjour,

Tel que vous le présentez il peut y avoir confusion. En fait une requête
LDAP simple permet de charger un objet (getobject) et ses propriétés. S'il
est nécessaire de charger plusieurs objets d'un même container AD par
exemple, vous devrez interroger la base Active Directory avec une requête de
type "Select ...". Evidemment il faudra ensuite analyser les objets trouvés
un par un, d'où le foreach ou le until sur le recordset.Dans ce cas il
s'agit d'une communication entre les fournisseurs de services ADO et ADSI.

Pour illustrer cela je vous propose quelques liens (il y a certainement
mieux mais je n'ai pas encore trouvé) :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/searching_with_activex_data_objects_ado.asp
http://msdn.microsoft.com/library/en-us/adsi/adsi/adsi_object_model_for_ldap_providers.asp

Exemple d'interrogation avec ADO :
http://www.microsoft.com/technet/scriptcenter/scripts/ad/sites/adsivb07.mspx
Ici, on cherche toutes les entrées de la class 'nTDSDSA' contenues dans le
container 'configuration' du domain fabrikam.com. C'est une façon de
scripter l'équivalent d'une recherche avec ADSIEdit.

J'espère que ce début d'explication vous aidera.

--
Cordialement,
_________________________________________________________
Jérôme Cornier
Microsoft Services France

"olivier" a écrit dans le message de news:
4219cba0$0$28425$
Bonjour,

Débutant en vbs je me pose la question suivante sur les script liés à
l'Active directory.

J' ai écrit quelques scripts de la forme :
Set variable1=
getobject("LDAP://ou=utilisateurs,ouÎntre,dc=domaine,dc=com)
for each variable2 in variable1
wscript.echo "Pour" &variable2.samaccountname & "&variable2.descritpion"
next
avec quelques commandes put ou remplace pour effectuer des modifications.


Par contre je ne comprends pas les scripts de la forme:
set objcommand = createobject("adodb.connection")
objcommand.activeconnection=objconnection
objcommandcommandtext="LDAP://dc=domaine,dc=com"distinguishedname..."
...
set obRecordset
objconnection.close

Quelle est la différence fondamentale, pouquoi la méthode du premier
script ne permet elle pas de satisfaire toutes les modifications liées à
l'annuaire LDAP.
Pourquoi faire un Connection/command/recordset au lieu d'une requete sur
ldap?

Merci

Olivier Hardy
http://oprhardy.free.fr