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

Mappage réseaux selon le groupe de l'utilisateur AD [Résolu] [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 26-02-2007 à 09:13:17    

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
Reply

Marsh Posté le 26-02-2007 à 09:13:17   

Reply

Marsh Posté le 26-02-2007 à 10:24:56    

: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:

Reply

Marsh Posté le 13-02-2008 à 14:58:30    

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

Reply

Sujets relatifs:

Leave a Replay

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