Accès à Active Directory en VBS

Résolu
Troy34 Messages postés 4 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 13 août 2009 - 7 août 2009 à 10:34
Troy34 Messages postés 4 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 13 août 2009 - 13 août 2009 à 16:28
Bonjour tout le monde :),

Je fais actuellement un script en VBS chargé d'interroger Active Directory et j'ai un bloc de code qui me retourne une erreur.


strBase   =  "<LDAP://" & strDomainDN & ">;"
strFilter = "(&(objectclass=user)(objectcategory=person));" 
strAttrs  = "distinguishedname;"
strScope  = "subtree"

set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"

set objRS = objConn.Execute(strBase & strFilter & strAttrs & strScope)
objRS.MoveFirst
while Not objRS.EOF
MyFile.WriteLine (objRS.Fields(0).Value)
    objRS.MoveNext
wend
MyFile.close



La ligne de code "set objRS objConn.Execute(strBase & strFilter & strAttrs & strScope)" me renvoie l'erreur suivante> Le tableau n'existe pas.

Je renseigne les bonnes informations au niveau du strDomain puisque j'ai fais le test d'interroger mon Active Directory avec une requête du type SQL (SELECT attribut FROM strdomain WHERE champ='qqch') et là ca marche.

L'erreur "Le tableau n'existe pas" ne m'est retournée que lorsque j'utilise l'accès à mon Active Directory à l'aide du filtre (strFilter).

Est ce que quelqu'un aurait une piste à suivre pour solutionner mon problème s'il vous plait ? ... Parce que là ca fait trois jours que je cherche une solution que je ne trouve pas :s.

D'avance, Merci pour vos réponses :).

2 réponses

Troy34 Messages postés 4 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 13 août 2009
13 août 2009 à 16:28
Salut jempee !

Non, ce n'était pas un problème de droit.

J'ai fini par trouver et l'erreur que je faisais était toute bête... Cette erreur était dans le format de mon strDomain ==> Je gardais les "<>" qui étaient présentes à titre d'exemple dans le code original .... Et on ne se moque pas !

Merci pour ta réponse :)
3
cs_jempee Messages postés 1 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 13 août 2009
13 août 2009 à 16:12
Salut,


je viens de m'écrire un VBS qui interroge l'AD sur un ordinateur précis qui est passé en condition dans la requête.

Bien sur cette interrogation fonctionne si ton compte à les droits sur l'AD. D'ailleurs l'erreur que tu obtiens me laisse penser que tu as un problème de permission

Info chez MSDN : http://msdn.microsoft.com/en-us/library/aa746471(VS.85).aspx


Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select distinguishedName, Name, Location from 'LDAP://" & StrDomain & "' Where objectClass='computer' and name='" & computername & "'"
objCommand.Properties("Page Size") = 100
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Do Until objRecordSet.EOF
StrdistinguishedName = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
Loop
0
Rejoignez-nous