Bonjour,
Le script ci-dessous est censé vider le contenu du répertoire C:\Windows \Temp et il fonctionne parfaitement quand je le lance manuellement (aux fichiers tenus près bien sûr).
Étant sous Wndows 7 intégral j'ai la possibilité via Gpedit de lancer ce script à l'arrêt de Windows mais tout se passe comme s'il n'était pas exécuté. Si je mets un msgbox témoin, celui-ci ne s'affiche pas. Je n'ai donc aucun moyen simple de voir ce qui se passe.
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 '--------------------------------------------------------------------------------------- ' VIDAGE DOSSIER TEMP DE WINDOWS '--------------------------------------------------------------------------------------- ' Déclaration et intialisation variables '--------------------------------------- Dim MonSysFic, MonProcess, MonShell, MonEnv Dim tmp, nf, nd, force, chemin, col, dossier, fichier force = True nf = 0 nd = 0 ' Instanciation objets '--------------------- Set MonSysFic = WScript.CreateObject("Scripting.FileSystemObject") Set MonShell = WScript.CreateObject("WScript.Shell") Set MonEnv = MonShell.Environment("PROCESS") ' Supression contenu temp windows '-------------------------------- tmp = MonEnv("Windir") &"\Temp" nf = nf + Sup_fichiers(tmp) nd = nd + Sup_dossiers(tmp) ' Coup de balai '-------------- Set col = Nothing Set dossier = Nothing Set fichier = Nothing Set MonSysFic = Nothing Set MonShell = Nothing Set MonEnv = Nothing ' Fonction suppression de dossiers (retourne nb de dossiers supprimés) '--------------------------------------------------------------------- Function Sup_dossiers(chemin) Set col = MonSysFic.getfolder(chemin).Subfolders For Each dossier In col On Error Resume Next dossier.Delete (force) If Err.Number = 0 Then Sup_dossiers = Sup_dossiers + 1 Next End Function ' Fonction suppression de fichiers (retourne nb de fichiers supprimés) '--------------------------------------------------------------------- Function Sup_fichiers(chemin) Set col = MonSysFic.getfolder(chemin).Files For Each fichier In col On Error Resume Next fichier.Delete (force) If Err.Number = 0 Then Sup_fichiers = Sup_fichiers + 1 Next End Function
Sur le même principe j'ai écrit un autre script qui supprime les fichiers temporaires au niveau C:\Utilisateurs\nom_utiisateur et qui s'exécute à la fermeture de session. Ça fonctionne sans souci.
Les problèmes analogues évoqués sur la toile sont tous liés à l'utilisation d'un serveur de domaine. Dans mon cas c'est du GPO purement local. Y'aurait-il des restrictions dans ce cas ? J'ai écrit ce script quand j'étais sous XP et pour autant qu'il me souvienne je n'avais pas ce problème.
Merci d'avance pour vos suggestions.
Partager