[VBScript] [RESOLU] trouver le chemin ldap

trouver le chemin ldap [VBScript] [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 14-02-2006 à 15:22:00    

voila, je voudrais savoir quel est le chemin LDAP exact sur lequel je suis en ce moment (dans un domaine).
 
je sais recupérer des info a partir du chemin, mais je dois connaitre ce chemin avant tout ! ^_^
 
merci encore !


Message édité par anthony0000 le 28-02-2006 à 10:40:18
Reply

Marsh Posté le 14-02-2006 à 15:22:00   

Reply

Marsh Posté le 16-02-2006 à 11:21:23    

Hello !
 
le script suivant permet de retrouver le DistinguishedName de l'utilisateur (donc le chemin ldap complet) qui execute le script (en direct ou par logon, pas besoin de droits particulier)
 

Code :
  1. ' ---------
  2. ' script pour retrouver des paramètres spécifiques
  3. ' à l'utilisateur en partant de son login
  4. ' pas de droits spécifiques nécessaires au niveau AD
  5. ' --------
  6. ' récupération du login de l'utilisateur
  7. Set oNET = WScript.CreateObject("WScript.Network" )
  8. usrLOG = oNET.UserName
  9. ' Recherche du login dans AD
  10. ' cette première section se connecte au contexte du domaine
  11. Set objDSE = GetObject("LDAP://rootDSE" )
  12. set oConnection = CreateObject("ADODB.Connection" )
  13. oConnection.Provider = "ADsDSOObject"
  14. oConnection.Open "ADs Provider" 
  15. ' ci dessous le filtre sur le login utilisateur
  16. sFilter = "(&(objectclass=user)(samaccountname=" & usrLOG & " ))"
  17. ' dans cette ligne, on défini les paramètres récupéré : ici
  18. DistinguishedName
  19. ' c'est celle ci que vous pouvez modifier en fonction des paramètres ADSI à récupérer (paramètre avant subtree, séparé par des virgules)
  20. sQuery = "<LDAP://" & objDSE.Get("defaultNamingContext" ) & ">;" & sFilter & ";distinguishedName;subtree"
  21. Set oRecordSet = oConnection.Execute(sQuery)
  22. ' on inscrit le distinguishedName dans une variable, et voilà
  23. usrDN = oRecordset.Fileds("distinguishedName" ).value
  24. oConnection.Close
  25. ' affichage du distinguishedName pour la forme :
  26. wscript.echo usrDN


j'espère que ça peut t'aider.


Message édité par pilosite le 23-02-2006 à 16:14:13
Reply

Marsh Posté le 16-02-2006 à 14:39:01    

merci ! ton script m'a bien aidé, mais j'ai fais 2 modifs pour qu'il marche :
 
j'ai mis en quote la ligne "DistinguishedName " (qui est tout seul sur la ligne
 
et a la fin c'est fields (y'avais une ptite erreur de frappe , heureusement que quiand ça marche pas ça m'indique la ligne ! j'aurai pas trouvé sinon ^_^)
 
merci encore !

Reply

Marsh Posté le 16-02-2006 à 14:48:53    

par contre j'ai un autre ptit pb :  
 
je voudrais ensuite récuperer des infos a propos de l'utilisateur, et pouvoir les modifier, mais je n'y arrive pas, je voudrais pouvoir choisir le "accountexpires".

Reply

Marsh Posté le 16-02-2006 à 14:51:24    

quand je veux choisir d'afficher le "accountexpires", ça me met :
 
"cet objet ne gere pas cette propriété ou cette méthode"

Reply

Marsh Posté le 16-02-2006 à 15:24:30    

Essai un truc de ce genre là :
 

Citation :

 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 accountexpires from 'LDAP://DC=pdch,DC=fr' Where objectClass='user' and samAccountName = " & tonUtilisateur
  Set objRecordSet = objCommand.Execute
  objRecordSet.MoveFirst


J'ai pas testé avec l'expiration du compte mais avec les machines auxquelles l'utilisateur peut se connecter et ça marche impec!


Message édité par Sboubinette62 le 16-02-2006 à 15:24:51
Reply

Marsh Posté le 16-02-2006 à 15:35:55    

salut! merci pour tout ça, mais j'ai une erreur juste a la fin ("une ou plusieurs erreur se sont produite lors de l'execution de la commande" )
 

Reply

Marsh Posté le 16-02-2006 à 15:41:53    

anthony0000 a écrit :

salut! merci pour tout ça, mais j'ai une erreur juste a la fin ("une ou plusieurs erreur se sont produite lors de l'execution de la commande" )


 
J'avais eut la même erreur dans un autre scripts et en fait je mettais un chemin LDAP plus complet avec OU et certaine contennait des apastrophes c'est ça qui faisait merder! Mais bon là ça ne peut pas être ça ! Peut-être que la "propriété" "accountexpires" ne marche pas en procédant comme ceci. Essai avec une autre "propriété" (samAccountName...) voir si tu a la même erreur.

Reply

Marsh Posté le 16-02-2006 à 15:53:01    

les autres propriété ne marchent pas.
 
peut etre serait-ce + simple qi je disais ce que j'avais besoin de faire :
 
 
creer un admin du domaine temporaire, rien de +

Reply

Marsh Posté le 16-02-2006 à 16:17:32    

anthony0000 a écrit :

les autres propriété ne marchent pas.
 
peut etre serait-ce + simple qi je disais ce que j'avais besoin de faire :
 
 
creer un admin du domaine temporaire, rien de +


 
si les autres propriétés ne marchent pas y a peut-être une erreur de syntaxe!
Parce que c'est sûr que la méthode marche vu que je l'ai utilisé plusieurs fois!
 
Fais un wscript.echo    "Select accountexpires from 'LDAP://DC=pdch,DC=fr' Where objectClass='user' and samAccountName = " & tonUtilisateur  
 
voir un peu si ça t'affiche tout correctement!

Reply

Marsh Posté le 16-02-2006 à 16:17:32   

Reply

Marsh Posté le 16-02-2006 à 16:37:11    

seul la ligne s'affiche, pas le résultat.
 
en tout cas le ldap est ok et l'utilisateur aussi, je ne vois pas d'ou ça peut venir.
 
je vais essayer encore de voir ça :)

Reply

Marsh Posté le 16-02-2006 à 17:24:08    

ok bin tien moi au courrant, juste pour savoir t'en fais beaucoup des scripts vbs? Et ta appris ou?parce que y a pas beaucoup de docs quand même! Moi j'ai commencé à en faire en stage, j'avais jamais vu avant! Mais bon j'ais fait pas mal de VB et j'ai des bonnes bases en algorithmie ça aide.

Reply

Marsh Posté le 17-02-2006 à 09:43:18    

j'ai appris en cours, et le j'en fais en stage, a part ça j'ai du mal avec le dévellopement ^_^ mais vbscript me parait pas trop dur, tant que je trouve des solutions ^_^

Reply

Marsh Posté le 17-02-2006 à 10:03:23    

le pb que je te disais hier c'est que je ne peux pas voir les valeurs de certaines propriétés , et c'est embettant car j'en ai besoin.
je ne comprends pas pourquoi je n'ai accès qu'a une partie.
 
par exemple avec ce script, tu verras toutes les propriétés de ton user :
 
Dim objUSER, chListe, i
 
set objuser = getobject("LDAP://CN=test321,CN=Users,DC=carpediem,DC=local" )
 
objUSER.GetInfo
 
i = objUSER.PropertyCount
 
chListe="Il y a " & i & " valeurs dans le cache de propriétés local : " & vbCrLf & vbCrLf
 
For cpt = 0 To (i - 1)
 champ = objUSER.Item(cpt).name
 chListe=chListe & champ & vbCrLf
Next
 
WScript.Echo chListe
 
wscript.echo "whencreated : " & objUser.get("whencreated" ) & vbcrlf _
& "cn : " & objUser.get("cn" )  & vbcrlf _
& "givenname : "& objUser.get("givenname" )  & vbcrlf _
& "userprincipalname : " & objUser.get("userprincipalname" )  & vbcrlf _
& "useraccountcontrol : " & objUser.get("useraccountcontrol" )  & vbcrlf _
& "CHOIX DE TA VALEUR : " & objUser.get("CHOIX DE LA VALEUR" )
 
 
 
tu verras que certaines ne fonctionnent pas, comme objectclass ou accountexpires ou d'autre

Reply

Marsh Posté le 17-02-2006 à 10:19:27    

Bizarre quand même!
Tu disais ta appris ça en cours, tu fais quoi comme étude?

Reply

Marsh Posté le 17-02-2006 à 10:29:18    

pareil que dans une autre thread, va jeter un oeil ici :
 
http://www.dx21.com/SCRIPTING/ADSI/INDEX.ASP
 
tu as tout ce qu'il faut pour choper n'importe quelle propriété de l'objet utilisateur, avec des exemples tout prêt


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/
Reply

Marsh Posté le 17-02-2006 à 10:30:26    

Il faut savoir que toutes les propriétés ne sont pas simple à choper, certaines exigent de passer par le provider WinNT et non LDAP, certaines sont multi valuée etc... le site que je t'ai cité explique ça bien (dans la mesure du possible  :lol: )


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/
Reply

Marsh Posté le 17-02-2006 à 10:37:27    

wahhhh, je viens juste de regarder un tout ptit peu, et j'ai deja trouvé ^_^
 
 
maintenant je n'ai plus qu'a esperer que ça marche ^_^
 
 
merci beaucoup !
 
 
sinon, j'avoue que j'ignorait completement cette difference que tu viens d'expliquer !
 
 
ah sinon, juste pour info, connais-tu un moyen pour modifier ISA 2004 avec des scripts ?


Message édité par anthony0000 le 17-02-2006 à 10:38:51
Reply

Marsh Posté le 17-02-2006 à 10:41:37    

mmm, tout dépend de ce que tu veux faire !
 
il y a pas mal de scripts pour isa 2004 sur le technet, par exemple :
 
http://www.microsoft.com/france/te [...] tents.mspx
 
tu as aussi l'inimitable isascript.org :
 
http://www.isascripts.org/
 


---------------
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles ! tout pour apprendre le scripting orienté infrastructure Microsoft, en français dans les textes et exemples.  http://www.eyrolles.com/Informatiq [...] 212116922/
Reply

Marsh Posté le 17-02-2006 à 11:00:51    

merci pour ces liens !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed