Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1553 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] [VBS] Mappage réseaux selon le groupe de l'utilisateur AD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] [VBS] Mappage réseaux selon le groupe de l'utilisateur AD

n°1519812
Tama25
Posté le 26-02-2007 à 09:13:17  profilanswer
 

Bonjour  :wahoo:  
Je suis débutante en vbs et je dois créer un script permettant de mapper des lecteurs réseaux à des utilisateurs en fonction de leur groupe dans Active Directory. En m'inspirant de ce que j'ai vu sur le forum et ailleurs, j'arrive presque au résultat voulu  mais un problème persiste  :fou:  
En effet, à la connexion d'un utilisateur, le script s'exécute bien et parvient à mapper le premier lecteur réseau indiqué dans mon script. Impossible ensuite de mapper les autres !  :??:  
 
Voici mon code :
 

Code :
  1. Dim objRootLDAP, objGroup, objUser, objOU, objmemberOf
  2. Dim strOU, strUser, strDNSDomain, strLDAP, List, objADSysInfo,arr,intlength,intNamelength,strGroupName
  3. Dim strDrive,strShare,strServer,strPers,strElev
  4. BS = Chr(92) ' Backslash
  5. DBS = BS & BS ' Double Backslash
  6. strServer="serveur" 'Nom du serveur
  7. strElev="Eleves" 'Nom du partage d'échange Elèves-Profs
  8. ' Commands to bind to AD
  9. Set objRootLDAP = GetObject("LDAP://RootDSE" )
  10. Set objNetwork = CreateObject("Wscript.Network" )
  11. 'Trouver le DN de l'utilisateur
  12. Set objADSysInfo = CreateObject("ADSystemInfo" )
  13. strUser = objADSysInfo.UserName
  14. Set objUser = GetObject("LDAP://" & strUser)
  15. ' Extraire la liste des groupes de l'utilisateur
  16. objmemberOf  = objUser.GetEx("memberOf" )
  17. For Each objGroup in objmemberOf
  18.      List = List & objGroup & vbCr
  19.      arr=Split(List,"," )
  20.      intlength=Len(arr(0))
  21.      intNamelength=intlength - 3
  22. Next
  23. strGroupName= Right(arr(0), intNameLength)
  24. WScript.Echo strGroupName
  25. WScript.Echo strUser
  26. 'tableau contenant lecteurs et partages par groupes'
  27. Select Case strGroupName
  28.    Case "Etudiant"
  29.           aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
  30.                             Array("X:",DBS & srtServer & BS & strGroupName))
  31.        
  32.    Case "Personnel"
  33.           aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
  34.                             Array("X:",DBS & srtServer & BS & strGroupName),_
  35.                             Array("T:",DBS & strServer & BS & strElev))
  36.    Case "Administration"
  37.           aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
  38.                             Array("X:",DBS & srtServer & BS & strGroupName),_
  39.                             Array("T:",DBS & strServer & BS & strElev)) 
  40. End Select
  41.  
  42. 'Procédure mappage d'un lecteur 
  43. Sub Mappage(strDrive,strShare)
  44.      objNetwork.MapNetworkDrive strDrive, strShare
  45. End Sub
  46. 'Mapper les lecteurs
  47. For i = LBound(aryShares) to UBound(aryShares)
  48.   aryAux = aryShares(i)
  49.   Mappage aryAux(0), aryAux(1)
  50. Next
  51. WScript.Quit


 
 
La boucle s'exécute et le premier lecteur ( Z: ) est connecté mais ensuite le message suivant apparait : "Le chemin d'accès spécifié n'est pas valide" et les lecteurs suivants ne sont pas mappés... Quand j'affiche le contenu de la variable AryAux au premier tour de la boucle, elle contient bien "Z:" qui est la lettre du premier lecteur, puis au deuxième tour, elle contient "\\\NomUtilisateur" au lieu de la lettre du second lecteur...   :??:  :??:  
 
Merci de votre aide  :jap:


Message édité par Tama25 le 26-02-2007 à 10:25:56
mood
Publicité
Posté le 26-02-2007 à 09:13:17  profilanswer
 

n°1519857
Tama25
Posté le 26-02-2007 à 10:24:56  profilanswer
 

:o  :o  La prochaine fois je ferai plus attention à ce que j'écris...  
 

Code :
  1. aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
  2.                           Array("X:",DBS & srtServer & BS & strGroupName))


J'ai tout simplement inversé deux lettres à la deuxième ligne... j'ai mis srtServer au lieu de strServer   :sarcastic:  
Problème résolu  :)  Le script mappe bien tous les lecteurs...   :wahoo:

n°1685877
Shoot94
Posté le 13-02-2008 à 14:58:30  profilanswer
 

Bonjours,
 
Déjà je remercie Tama25 pour avoir partagé ces informations.
 
J'ai réutilisé votre script en l'adaptant à mes besoin.
mais je rencontre un problème, dans le cas où un utilisateur de l'AD est   membre de plusieurs groupes.
le script ne prend pas en compte tous les groupes et donc ne me mapp pas tous les lecteurs réseaux correspondant.
 
N'ayant que mes notion scolaire de programmation je sollicite votre aide!
Merci d'avance


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] [VBS] Mappage réseaux selon le groupe de l'utilisateur AD

 

Sujets relatifs
Logiciel de programmation en paire - Résolu[Résolu][VBA ACCESS] LIKE + * ou % ?
[resolu]ID qui s'incrémente +2Impossible de compiler des shaders en cg! [RESOLU]
[RESOLU] 1 erreur de validation (x)HTML 1.0 TransitionalRESOLU : PHP afficher un gif animé qui s'anime
[PHP] [Résolu] Construire une variable avec une autre variable ?Aide pour batch de renommage
VBA - Gif animé dans un Userfom [Résolu][resolu] VB macro de comparaison de lignes
Plus de sujets relatifs à : [Résolu] [VBS] Mappage réseaux selon le groupe de l'utilisateur AD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR