Attribution lettres de lecteurs reseau attribués automatiquement en vbs

Résolu
petite_fraise Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 13 mai 2006 - 9 mai 2006 à 09:41
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 13 mai 2006 à 17:26
Bonjour à tous

J'ai besoin d'un petit coup de mains en vbs...

Je veux attribuer mes lettres de lecteurs automatiquement (mappages reseau) et ça par groupe. Ce dont je réussie à faire mais seulement pour un seul mappage par groupe. A partir de deux, j'ai un message d'erreur me disant "Nom de périphérique local déjà utilisé". Ce qui veux dire que ça fonctionne pour la première lettre à attribuer automatiquement pour le même groupe mais pas pour les mappages suivants... De plus, ça fonctionne très bien pour le premier lecteur (mappage) de chaque groupe. Ce que je souhaite, c'est donc de pouvoir attribuer plusieurs lettres de lecteurs (mappages) à certains groupes et pas uniquement un seul mappage !

Mon morceau de script qui fonctionne :
...
For i = Asc("R") To Asc("Z")
unite = Chr(i)
If fso.DriveExists(unite)=False Then
Exit For
End if
Next
...
Case "Group1"
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\Partage1" (mappage attribué avec 1er lettre de lecteur disponible)
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\Partage2" (message d'erreur et non attribution du mappage car "nom du périphérique déjà utilisé")

Case "Group2"
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\PartageA" (mappage attribué avec la 1er lettre de lecteur disponible)
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\PartageB" (message d'erreur et non attribution du mappage car "nom du périphérique déjà utilisé")

A savoir que j'ai essayé d'ajouter la ligne suivante :
unite = Chr(Asc(unite)+1)
Et ça ne me donne rien de bon !

En espérant avoir été assez clair !

Merci pour toute l'aide que vous pourrez m'apporter

carpe diem

3 réponses

petite_fraise Messages postés 5 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 13 mai 2006
13 mai 2006 à 10:17
Bonjour,

Merci bien pour ton aide

En fait, j'ai trouvé une solution, c'est à dire que j'utilise mon expression "Chr(Asc(unite)+1)" que je mets à la place de "unite" dans les mappages suivants, exemple :

...
Case "Group1"
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\Partage1"
WshNetwork.MapNetworkDrive Chr(Asc(unite)+1) & ":", "\\ServerName\Partage2"
...

Tout fonctionne très bien comme ça

Encore merci pour ton intérêt et peut-être à bientôt

carpe diem
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
11 mai 2006 à 12:23
Salut 763348 petite_fraise,

il faut faire une itération (ou plusieurs appels) qui te permette de changer la valeur de unite à chaque mappage!
Mets ta recherche de lettre valide dans une fonction, ex :
Public Function GetValideDriveUnit() As String
...
End Function

et fait un appel à l'outil d'unité valide, un appel à l'outil de mappage, et ce pour chaque mappage à réaliser, ex :

...
Case "Group1"
'obtiens une unité valide (par exemple "E")
unite = GetValideDriveUnit
'crée le mappage
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\Partage1"
'obtiens une unité valide (par exemple, forcément pas "E", nouvelle déjà utilisée))
unite = GetValideDriveUnit
'crée le mappage
WshNetwork.MapNetworkDrive unite & ":", "\\ServerName\Partage2"
...

Qu'en penses-tu?
à+

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
13 mai 2006 à 17:26
De rien, je t'en prie!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
Rejoignez-nous