Bonjour,

Je cherche à faire un script VBS qui dans un repertoire recupere tous les fichiers et les met dans un tableu.. il stocke les infos dans un tableau ( nom du fichier + date de creation du fichier).. apres il teste la date de création la plus récente des fichiers... Et puis il renvoie un message de d'erreur ( ou CRITICAL car c'est pour faire du Nagios) dans le cas le ficher le plus récent à 24h.. Pour le moment, j'ai un script qui teste si un fichier dans le repertoire a plus de 24h mais ca bloque quand jai plusieurs fichiers car il renvoie toujours un message d'erreur car il ya des fichiers qui s'accumulent..
Je vous présente mon script :

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
<script language="VBScript"> 
 
If Wscript.Arguments.Named.Exists("h") Or Wscript.Arguments.Count = 0 Then 
Wscript.Echo "Plugin help screen:" 
Wscript.Arguments.ShowUsage() 
Wscript.Quit(0) 
End If 
 
' Déclaration des variables et constantes 
'---------------------------------------- 
strFolder = Wscript.Arguments.Unnamed.Item(0) 
strMin = wscript.Arguments.Unnamed.Item(1) 
strMin = Int(strMin) 
 
Const intOK = 0 
Const intWarning = 1 
Const intCritical = 2 
Const intUnknown = 3 
 
'Début des tests 
'--------------- 
Dim objFSO 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
 
If objFSO.FolderExists(strFolder) Then 'Vérification si le répertoire existe 
 
Set objFolder = objFSO.GetFolder(strFolder) 
set colFiles = objFolder.Files 
For Each objFile in colFiles 
If DateDiff("n",objFile.DateLastModified,Now())>strMin Then 
retour=retour+1 
End If 
 
Next 
If retour>0 then 
WScript.Echo "Fileage CRITICAL - des fichiers ont plus de " & strMin & " Minutes" 
Wscript.Quit(intCritical) 
Else 
WScript.Echo "Fileage OK - Tous les fichiers ont moins de " & strMin & " Minutes" 
WScript.Quit(intOK) 
End If 
Else 
Wscript.Echo "Fileage Unknown - le dossier spécifie n existe pas" 
Wscript.Quit(intUnknown) 
End If 
</script>
Je précise juste que ce sont des fichiers .bak sous format xxx_20080609xxxx.bak avec "20080609" qui est la date de création du fichier.....

Besoin Urgent SVP...


Merci