Accès à Active Directory en VBS [Résolu]

Troy34 4 Messages postés mardi 5 août 2008Date d'inscription 13 août 2009 Dernière intervention - 7 août 2009 à 10:34 - Dernière réponse : Troy34 4 Messages postés mardi 5 août 2008Date d'inscription 13 août 2009 Dernière intervention
- 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 :).
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Troy34 4 Messages postés mardi 5 août 2008Date d'inscription 13 août 2009 Dernière intervention - 13 août 2009 à 16:28
3
Merci
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 :)

Merci Troy34 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de Troy34
cs_jempee 1 Messages postés samedi 22 mars 2003Date d'inscription 13 août 2009 Dernière intervention - 13 août 2009 à 16:12
0
Merci
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
Commenter la réponse de cs_jempee

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.