Tama25 | Bonjour 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 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 :
- Dim objRootLDAP, objGroup, objUser, objOU, objmemberOf
- Dim strOU, strUser, strDNSDomain, strLDAP, List, objADSysInfo,arr,intlength,intNamelength,strGroupName
- Dim strDrive,strShare,strServer,strPers,strElev
- BS = Chr(92) ' Backslash
- DBS = BS & BS ' Double Backslash
- strServer="serveur" 'Nom du serveur
- strElev="Eleves" 'Nom du partage d'échange Elèves-Profs
- ' Commands to bind to AD
- Set objRootLDAP = GetObject("LDAP://RootDSE" )
- Set objNetwork = CreateObject("Wscript.Network" )
- 'Trouver le DN de l'utilisateur
- Set objADSysInfo = CreateObject("ADSystemInfo" )
- strUser = objADSysInfo.UserName
- Set objUser = GetObject("LDAP://" & strUser)
- ' Extraire la liste des groupes de l'utilisateur
- objmemberOf = objUser.GetEx("memberOf" )
- For Each objGroup in objmemberOf
- List = List & objGroup & vbCr
- arr=Split(List,"," )
- intlength=Len(arr(0))
- intNamelength=intlength - 3
- Next
- strGroupName= Right(arr(0), intNameLength)
- WScript.Echo strGroupName
- WScript.Echo strUser
- 'tableau contenant lecteurs et partages par groupes'
- Select Case strGroupName
- Case "Etudiant"
- aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
- Array("X:",DBS & srtServer & BS & strGroupName))
-
- Case "Personnel"
- aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
- Array("X:",DBS & srtServer & BS & strGroupName),_
- Array("T:",DBS & strServer & BS & strElev))
- Case "Administration"
- aryShares = Array(Array("Z:",DBS & strServer & BS & strUser),_
- Array("X:",DBS & srtServer & BS & strGroupName),_
- Array("T:",DBS & strServer & BS & strElev))
- End Select
-
- 'Procédure mappage d'un lecteur
- Sub Mappage(strDrive,strShare)
- objNetwork.MapNetworkDrive strDrive, strShare
- End Sub
- 'Mapper les lecteurs
- For i = LBound(aryShares) to UBound(aryShares)
- aryAux = aryShares(i)
- Mappage aryAux(0), aryAux(1)
- Next
- 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 Message édité par Tama25 le 26-02-2007 à 10:25:56
|