IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Vider tous mes dossiers temporaires d'un seul (double) clic


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Vider tous mes dossiers temporaires d'un seul (double) clic
    Bonjour à vous !

    J'ai trouvé à réaliser deux scripts : le listing des profils utilisateurs qui ont ouverts une session sur mon PC/Serveur (VBS d'extraction des chemins "ProfileImagePath" depuis le registre) et ensuite vider les dossiers suivant (Temporary Internet Files, Content.ie5, temp, cookies, recent) selon ma volonté (BAT boucle FOR sur le fichier TXT généré via le VBS)...

    Je me dis qu'on doit pouvoir faire tout le traitement via un seul script VBS mais je ne m'en sorts pas :

    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
     
    Option Explicit
    On Error Resume Next
    Dim AFile, TheFiles, IETemp, IEcontentie5, myTemp, myCookies, myRecent, Afolder, TheFolder 
    Dim FSO 
     
    On Error Resume Next
    Const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
     
    Set objRegistry=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
    objRegistry.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys
     
    For Each objSubkey In arrSubkeys
        strValueName = "ProfileImagePath"
        strSubPath = strKeyPath & "\" & objSubkey
        objRegistry.GetExpandedStringValue HKEY_LOCAL_MACHINE,strSubPath,strValueName,strValue
        IETemp = strValue & "\Local Settings\Temporary Internet Files"
        IEcontentie5 = strValue & "\Local Settings\Temporary Internet Files\Content.ie5"
        myTemp = strValue & "\Local Settings\Temp"
        myCookies = strValue & "\Cookies"
        myRecent = strValue & "\Recent"
        NettoyageDossier (IETemp)
        NettoyageDossier (IEContentie5)
        NettoyageDossier (myTemp)
        NettoyageDossier (myCookies)
        NettoyageDossier (myRecent)
     
        'Pour tester les variable 
        WScript.Echo IETemp
        ' &VbCrLf& IEContentie5 &VbCrLf& myTemp &VbCrLf& myCookies &VbCrLf& myRecent
    Next
     
    msgbox "Maintenant on peut souffler !"
     
    Sub NettoyageDossier (RepConcerne) 
       Set FSO = WScript.CreateObject("Scripting.FileSystemObject") 
       set Afolder=FSO.GetFolder (RepConcerne) 
       Set TheFiles = AFolder.Files 
       Set TheFolder = Afolder.SubFolders 
     
       For Each AFile In TheFiles 
            On Error Resume Next 
           AFile.Delete 
            On Error Goto 0 
       Next 
     
       For Each AFile In TheFolder 
            On Error Resume Next 
           AFile.Delete 
            On Error Goto 0 
       Next 
    End Sub
    Notez que je suis une bille en VBS et que je tente juste d'apprendre et de comprendre...

    Par la suite, je serai éventuellement intéressé par une jolie interface à cet outil qui ferait un genre de tableau "Utilisateur - Dossier1 [Coche verte]" et j'ai imaginé pouvoir faire ça en html ou excel...

    L'intérêt de tout cela est de nettoyer mon serveur TSE facilement

    Avis aux amateurs, merci par avance aux contributeurs

    Cordialement,

    Letwan

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    >Notez que je suis une bille en VBS ...
    OK, dans ce cas, [1] enlevez tout "on error resume next" directive; [2] faites comprendre ce que c'est "Option Explicit" directive: il vous faut déclarer tous les variables avant qu'elles soient utilisées. Elle a une portée jusq'au dedans d'un sub ou d'une fonction - mais le comportement du script est un peu different d'un manque de déclaration dans le "main" que dans un sub ou dans une fonction. Mais faites [1] surtout si vous êtes débutant...

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut 75 ans plus tard...
    Bonjour désolé de déterré mon propre Topic (me jetez pas trop de pierres svp).

    Je reviens ici pour indiquer que la solution m'a énormément aidé et que j'ai du coup complètement terminé ce script .
    Par conséquent, je le partage avec la communauté qui pourra peut-être y trouver un intérêt !

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    Option Explicit
    'On Error Resume Next
    Dim AFile, TheFiles, IETemp, IEcontentie5, myTemp, myCookies, myRecent, Afolder, TheFolder, strComputer, objRegistry, strKeyPath, strValueName, strSubPath, arrSubkeys, objSubkey, strValue
    Dim FSO, filesys, objWMIService, oss, os, maVersion
     
    'On Error Resume Next
    Const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set oss = objWMIService.ExecQuery ("Select Version from Win32_OperatingSystem")
     
    For Each os in oss
        maVersion = Replace(os.Version, ".", "")
    Next
     
    Set objRegistry=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
    Set filesys = WScript.CreateObject("Scripting.FileSystemObject") 
     
    strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
    objRegistry.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys
     
    For Each objSubkey In arrSubkeys
        strValueName = "ProfileImagePath"
        strSubPath = strKeyPath & "\" & objSubkey
        objRegistry.GetExpandedStringValue HKEY_LOCAL_MACHINE,strSubPath,strValueName,strValue
    	If maVersion > 600000 Then
    		IETemp = strValue & "\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.ie5"
    		IEcontentie5 = strValue & "\AppData\Local\Microsoft\Windows\Temporary Internet Files"
    		myTemp = strValue & "\AppData\Local\Temp"
    		myCookies = strValue & "\AppData\Roaming\Microsoft\Windows\Cookies"
    		myRecent = strValue & "\AppData\Roaming\Microsoft\Windows\Recent"
    	Else
    	    IETemp = strValue & "\Local Settings\Temporary Internet Files"
    		IEcontentie5 = strValue & "\Local Settings\Temporary Internet Files\Content.ie5"
    		myTemp = strValue & "\Local Settings\Temp"
    		myCookies = strValue & "\Cookies"
    		myRecent = strValue & "\Recent"
    	End If
     
    	If filesys.FolderExists(IETemp) Then
    		'WScript.Echo "Dossier " &IETemp& " : Existe"
    		NettoyageDossier (IETemp)
    		'WScript.Echo "Dossier IE Temp : Nettoyé"
    	End If
    	If filesys.FolderExists(IEContentie5) Then
    		'WScript.Echo "Dossier " &IEContentie5& " : Existe"
    		NettoyageDossier (IEContentie5)
    		'WScript.Echo "Dossier Content.IE5 : Nettoyé"
    	End If
    	If filesys.FolderExists(myTemp) Then
    		'WScript.Echo "Dossier " &myTemp& " : Existe"
    		NettoyageDossier (myTemp)
    		'WScript.Echo "Dossier Temporaire: Nettoyé"
    	End If
    	If filesys.FolderExists(myCookies) Then
    		'WScript.Echo "Dossier " &myCookies& ": Existe"
    		NettoyageDossier (myCookies)
    		'WScript.Echo "Dossier Cookies : Nettoyé"
    	End If
    	If filesys.FolderExists(myRecent) Then
    		'WScript.Echo "Dossier " &myRecent& " : Existe"
    		NettoyageDossier (myRecent)
    		'WScript.Echo "Dossier Fichiers Recent : Nettoyé"
    	End If
        'Pour tester les variable 
    	'msgbox "test:" & strSubPath
        'WScript.Echo IETemp &VbCrLf& IEContentie5 &VbCrLf& myTemp &VbCrLf& myCookies &VbCrLf& myRecent
    Next
    'WScript.Echo strValue
    'msgbox "Fin du traitement : Maintenant on peut souffler !"
     
    Sub NettoyageDossier (RepConcerne) 
       Set FSO = WScript.CreateObject("Scripting.FileSystemObject") 
       set Afolder=FSO.GetFolder (RepConcerne) 
       Set TheFiles = AFolder.Files 
       Set TheFolder = Afolder.SubFolders 
     
       For Each AFile In TheFiles
            On Error Resume Next 
            AFile.Delete 
            On Error Goto 0 
       Next 
     
       For Each AFile In TheFolder 
            On Error Resume Next 
            AFile.Delete 
            On Error Goto 0 
       Next 
    End Sub
    Je suis à peine moins débutant que lors de mon premier message donc c'est peut être pas optimal mais ça fait le job !
    Mes serveurs TSE/RDS vont être nettoyés régulièrement comme ça !

    Bien à vous, je range ma pelle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mes dossiers sont en lecture seule
    Par owenho dans le forum Windows 7
    Réponses: 6
    Dernier message: 14/10/2013, 16h20
  2. Tous mes dossiers sont en lecture seulement
    Par GinTonHic dans le forum Windows XP
    Réponses: 7
    Dernier message: 17/12/2011, 20h22
  3. vider dossier temporaire
    Par alpanko dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 03/03/2008, 22h01
  4. Dossier "Mes documents" s'ouvre tout seul au demarrage
    Par isma92 dans le forum Windows XP
    Réponses: 12
    Dernier message: 12/11/2007, 10h09
  5. synchroniser automatiquement TOUS mes sous dossiers IMAP
    Par mimochasam dans le forum Thunderbird
    Réponses: 1
    Dernier message: 29/06/2007, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo