Bonjour,

J'ai actuellement un AD avec 30 scripts de logon différents pour les connexions des utilisateurs.

Cas général : le script doit mapper un seul lecteur réseau correspondant à son service.
Cas particulier : le script doit mapper plusieurs lecteurs réseau correspondant à ses lieux d'activités si celui-ci exerce sur 2,3 ou 4 services.

Ma problèmatique est donc la suivante :
Comment après avoir récupérer ma liste de groupe auquel l'utilisateur appartient je peux lui mapper son ou ses lecteurs réseau (verifier l'existant d'un lecteur déjà mappé à chaque fois ?)

Remarque :
  • mon utilisateur appartient à un groupe de sécurité de type "Domain Local" et plusieurs autres groupes spécifiques à son statut.
  • j'utilise un tableau de 10 valeurs pour stocker la liste des groupes dont mon utilisateur est membre
  • un select case doit permettre de mapper les lecteurs correspondants


Je vous joins le début de ma réflexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
ON ERROR RESUME NEXT
set WshShell = CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
 
 
if WshShell.ExpandEnvironmentStrings("%OS%") <> "Windows_NT" then
  WshShell.Run "COMMAND.EXE /C NET TIME \\BTW-USER1 /SET /Y >NUL:"
 
  DomainName=WshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32\NetworkProvider\AuthenticatingAgent")
  Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
 
  WshNetwork.MapNetworkDrive "U:",UserObj.HomeDirectory
' msgbox (UserObj.homeDrive)
  msgbox (UserObj.HomeDirectory)
 
else
 
  DomainName=WshShell.ExpandEnvironmentStrings("%USERDOMAIN%")
  Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
 
end if
 
 
 
 
Dim UserGroups
Dim GroupObj
Dim strNomServeur as string	'nom du serveur de fichier
Dim tabGroupeUser(intMAXTAB) 	'tableau des groupes
Dim index=0						'index d'accès aux valeurs du tableau
Dim intMAXTAB as integer 	'nombre de groupes max qui sera utilisée dans le tableau pour mapper les lecteurs.
 
'Initialisation des variables utilisées.
UserGroups=""
strNomServeur="xxxx"
intMAXTAB = 10
 
'Création d'un tableau contenant la liste des groupes dont l'utilisateur est MEMBRE
'tableau de 10 valeurs max.
For index=0 to (intMAXTAB-1)
	'For Each GroupObj In UserObj.Groups
	tabGroupeUser(index)=GroupObj.Name
Next
 
For index=0 to (intMAXTAB-1)
	Select case InGroup(tabGroupeUser(index))
		case "dl_PoleG06":
			if TesterLecteur("S:")
				WshNetwork.MapNetworkDrive "S:","\\"&strNomServeur&"\G06"
				CreerRaccourciReseau "Fichiers service G06","S","Fichiers service G06"
			end If
		case "dl_PoleG07":
			WshNetwork.MapNetworkDrive "S:","\\"&strNomServeur&"\G07"
			CreerRaccourciReseau "Fichiers service G07","S","Fichiers service G07"
		case "dl_PoleG08":
			WshNetwork.MapNetworkDrive "S:","\\"&strNomServeur&"\G08"
			CreerRaccourciReseau "Fichiers service G08","S","Fichiers service G08"
		case "dl_PoleI03":
			WshNetwork.MapNetworkDrive "S:","\\"&strNomServeur&"\I03"
			CreerRaccourciReseau "Fichiers service I03","S","Fichiers service I03"
		case "dl_PoleIntersectoriel":
			WshNetwork.MapNetworkDrive "S:","\\"&strNomServeur&"\G06"
			CreerRaccourciReseau "Fichiers service G06","S","Fichiers service G06"
		case else wscript.echo  "coucou"
Next
Comment mettre en place mon "Select case" pour simplifier et optimiser tout cela ?

Merci à tous

++
Nerick