Bonjour j'ai un script si dessous qui fonctionne bien lors de la premiere utilisation. Mais si je supprimes lecteurs réseau manuellement et que je relance le script, ce dernier ne les remontes pas, vous savez d'ou pourrait provenir l'erreur ?

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
67
68
69
'Déclaration, obligatoire
	Dim wshNetwork 
 
'Instanciation de la classe "NETWORK"
	Set WshNetwork = WScript.CreateObject("WScript.Network" ) 
 
'Déclaration des constantes de groupe, elles doivent contenir le nom exact des groupes d'utilisateur AD
	CONST DIRECTION_GROUP = "cn=Direction" 
	CONST COMPTA_GROUP = "cn=Compta"
	CONST GENERAL_GROUP = "cn=General" 
	'Liste des lecteurs réseau à déconnecter, afin de ne pas déconnecter de lecteurs supplémentaires
	CONST NETWORK_DRIVE_REMOVE = "T: N: U: P:"
 
'Ouverture de la classe Active Directory System Info afin de récupérer les infos de l'utilisateur connecté
	Set ADSysInfo = CreateObject("ADSystemInfo" ) 
 
	'Affichage du contenu UserName (on peux supprimer), on peux remarquer qu'il contiens toute une chaine de connexion
	WScript.Echo "ADSysInfo.UserName renvoie toute une chaine de connexion :" & vbcrlf  & vbcrlf & ADSysInfo.UserName
	WScript.Echo "WshNetwork.UserName renvoie uniquement le nom d'utilisateur :" & vbcrlf  & vbcrlf &  WshNetwork.UserName
 
	'Connexion à l'utilisateur ---CONNECTé--- via le LDAP (Annuaire)
	Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
 
	'Récupération de la liste des groupes ("MemberOf" = "Membre de") de l'utilisateur
	strGroups = LCase(Join(CurrentUser.MemberOf)) 
 
	'Affichage des groupes de l'utilisateur  (on peux supprimer)
	WScript.Echo "Contenu de la variable strGroups, censée contenir la liste des groupes de l'utilisateur :" & vbcrlf  & vbcrlf & strGroups
 
	'On récupère la liste des Lecteurs Réseau connectés
	set strNetDrives=WshNetwork.EnumNetworkDrives
 
	'Passage en revue des lecteurs réseaux, afin d'éviter une erreur si le lecteur n'à jamais été connecté. (le voila le FOR héhé! )
	For i = 0 to strNetDrives.Count - 1 Step 2
 
		'On affiche la première ligne (Lettre lecteur) et la seconde ligne (nom de partage), d'ou un STEP 2, afin de faire 2 lignes par 2 lignes
		'Pareil on peux virer la ligne
		WScript.Echo "Lettre : " & strNetDrives.Item(i) & vbcrlf & "Partage : " & strNetDrives.Item(i+1)
 
 
		'On supprime le lecteur réseau uniquement si on le trouve dans la chaine NETWORK_DRIVE_REMOVE (et de 1 IF)
		If InStr(strNetDrives.Item(i),NETWORK_DRIVE_REMOVE) then
			'On affiche la lettre du lecteur qu'on supprime.... pareil on peux virer la ligne après :p
			WScript.Echo "Suppression du lecteur : " & strNetDrives.Item(i)
			'On supprime le lecteur réseau
			WshNetwork.RemoveNetworkDrive strNetDrives.Item(i)
		End If
	Next
 
'Si DansLaChaine StrGroups on trouve la valeur DIRECTION ou COMPTA ou GENERAL alors on agit! et de 1 IF ELSEIF!
If InStr (strGroups, DIRECTION_GROUP) Then 
	WScript.Echo "DIRECTION"
	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSO\Commun" 
	WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta" 
	WshNetwork.MapNetworkDrive "U:", "\\SRV-PERSO\Direction" 
	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
elseif InStr (strGroups, COMPTA_GROUP) Then 
	WScript.Echo "COMPTA"
	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun" 
	WshNetwork.MapNetworkDrive "N:", "\\SRV-PERSO\Compta" 
	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
elseif InStr (strGroups, GENERAL_GROUP) Then 
	WScript.Echo "GENERAL"
	WshNetwork.MapNetworkDrive "T:", "\\SRV-PERSo\Commun" 
	WshNetwork.MapNetworkDrive "P:", "\\SRV-PERSO\USERS$\%Username%" 
End If
 
'Toujours finir le script par un Quit, sinon il reste en mémoire!
WScript.quit

Cordialement,