Bonjour,

Dans un des scripts sur lesquels je tente désespérément de travailler, je rencontre un petit problème.

En effet, la fonction suivante ne me permet pas d'obtenir le résultat escompté :

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
Function GETINFO_PARTAGE(FS1, varwhere)
	 On Error Resume Next
	 'création du chemin du partage PathShare
	 Dim PathShare : PathShare = "\\" & FS1 & "\Partage"
 
	 'check de la dispo du lecteur
	 If fso.driveExists("I:") Then
	   Net.RemoveNetworkDrive "I:", True, True
	   Net.MapNetworkDrive "I:", PathShare, , User, Password
	 Else
	   Net.MapNetworkDrive "I:", PathShare, , User, Password
	 End If
	 'Attrappe le disque I:
	 Dim Disque : Set Disque = fso.GetDrive("I:")
	 'récupère l'occupation et le disponnible
	 Dim Occup : Occup = FormatNumber(((Disque.TotalSize - Disque.FreeSpace)/1024^3), 3)
	 Dim Dispo : Dispo = FormatNumber((Disque.FreeSpace/1024^3), 3)
	 Dim colDossiers, Dossier, outinfo
 
	If err.number <> 0 then
		GETINFO_PARTAGE = PathShare & ";Non Disponible"
		On Error Goto 0
		Exit Function
	End If
 
	 outinfo = PathShare & ";" & Occup & ";" & Dispo & vbCrlf
	 Set colDossiers = fso.getFolder(PathShare).SubFolders
 
	For each Dossier in colDossiers
		outinfo = outinfo & varwhere & ";" & UCase(dossier.path) & ";" & FormatNumber((dossier.size/1024^3), 3) & vbCrlf
 
		If Err.Number <> 0 Then
			outinfo = outinfo & varwhere & ";" & UCase(dossier.path) & ";" & Err.Description & vbCrlf
			On Error Goto 0
		End If
	Next
 
	Net.RemoveNetworkDrive "I:", True, True
 
	GETINFO_PARTAGE = Left(outinfo, Len(outinfo) -1)
End Function 'GETINFO_PARTAGE
Je me mange des "C:\script.vbs(157, 3) Erreur d'exécution Microsoft VBScript: Permission refusée" sur la ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
outinfo = outinfo & varwhere & ";" & UCase(dossier.path) & ";" & FormatNumber((dossier.size/1024^3), 3) & vbCrlf
Et n'arrive pas à passer outre.

En résumé, cette fonction est censée (entre autre) :
- Mapper un partage (NAS)
- Récupérer l'espace disque utilisé du volume sur lequel est monté ce partage
- Récupérer l'espace disque disponible du volume sur lequel est monté ce partage
- Faire de même avec chaque sous répertoire.

J'ai besoin que :
- Si erreur sur serveur, il passe au serveur suivant = OK
- Si erreur sur Partage, il passe au partage suivant = OK (je crois)
- Si erreur sur Dossier dans le partage, il passe au dossier suivant dans ce partage = KO (de toute évidence).

Pouvez-vous m'aider, SVP, à comprendre ce qui ne va pas dans cette fonction ?

Merci d'avance pour votre aide.

Sincèrement,
Boueep

EDIT : Remplacement de "ouKilEst" par "varwhere" dans la 2nd zone code.