Script Visual Basic

Résolu
ngassa_t
Messages postés
2
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
5 avril 2011
- 14 mars 2011 à 16:23
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
- 15 mars 2011 à 15:51
Bonjour,
Je suis débutant en VBS.
J'ai installé une instance ADAM (active directory en mode application) sur mon serveur Windows 2003.cette instance écoute sur le port 50000. Je souhaite créé mes utilisateurs à l'aide du script ci-dessous. mais je reçois le message d'erreur suivant:800A01C2 Wrong of arguments or invalid property assignment.
quelqu'un peut m'aider ??
-------------------------------------------------------------
-----------------------------------------------------------
Dim oContainer
Dim oUserSet,oUser
oContainer=GetObject("LDAP://localhost:50000/CN=annuaire,DC=contoso,DC=com")
'Create user
Set oUser = oContainer.Create("User","CN=Pilar Ackerman")
'Assign values to user attributes
oUser.Put "samAccountName","Pilar"
oUser.Put "givenName","Pilar"
oUser.Put "sn","Ackerman"
oUser.Put "userPrincipalName","pilar@contoso.com"
oUser.SetInfo'Clean upSet
oUser = NothingSet
oContainer = NothingWScript.Echo
'"Finished"WScript.Quit

3 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
15 mars 2011 à 15:51
Il est étonnant que le GetObject puisse s'utiliser avec un tel paramétrage.
Es-tu sûr que cette utilisation soit courante|possible ?
As-tu déjà réussi une connexion avec d'autres paramètres ?

GetObject peut accepter deux paramètres, optionnels individuellement :
- PathName : Le chemin de l'application
- Class : La classe du serveur auquel on veut s'adresser (serveur au sens logiciel comme Excel, avec un noyau serveur : Excel.Application)

Sur internet, j'ai trouvé ce genre de syntaxe, plus proche de l'utilisation de GetObject :
Set objLDAP = GetObject("LDAP:") 
Set objRoot = objLDAP.OpenDSObject("LDAP://localhost:50000/CN=...")

Essaye voir, en vérifiant, après le GetObject, qu'un objet est bien présent :
If objLDAP Is Nothing Then MsgBox "pas bon"
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
14 mars 2011 à 16:46
Salut

Je n'y connais rien an Active Directory et peu de pratique en VBS (ça commence bien !), mais ce genre de message peut venir d'une simple erreur d'orthographe :
- Vérifie l'orthographe des mots clés = propriétés utilisée. Ces mots peuvent être sensibles aux min/maj, par exemple samAccountName --> sAMAccountName (trouvé sur le net)
- Vérifie que, à chaque propriété, correspond bien un texte à fournir; peut-être que l'une d'elle nécessite un chiffre.
- Vérifie que les infos du GetObject sont compatibles avec tes propriétés : je vois deux fois "DC=", est-ce normal ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
ngassa_t
Messages postés
2
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
5 avril 2011

14 mars 2011 à 16:58
Bonjour,
Merci pour ta réponse.

Mon nom de domain est contoso.com d'ou c'est normal d’écrire dc=contoso,dc=com.

Mon dn est cn=annuaire,dc=contoso,dc=com

d'après mes recherches le pb sur cette ligne :

oContainer=GetObject("LDAP://localhost:50000/CN=annuaire,DC=contoso,DC=com")
0