Suppression répertoire en fonction d'une date de modification

maxeln - 27 juil. 2012 à 15:51
 Utilisateur anonyme - 27 juil. 2012 à 19:45
Je cherche à créer un script qui supprime des répertoires de profil utilisateur (dossier Documents and Settings) sauf les répertoires Administrateur, All Users, etc.
de plus cette suppression ne doit concerner que les répertoires de plus de 31 jours. voici le début de mon code (je suis débutant en vb)

'#Evite l'interruption du déroulement d'un script lorsqu'une erreur se produit
'On Error resume next

'#Fonction RunCommande : Lance une commande CMD avec le code en paramètre.
Function RunCommande(Program)
Dim oShell
Set oShell = CreateObject("WScript.Shell")
oShell.Run Program , True
End Function

'#-----------------------------------------------------------------
'#Liste des dossiers à ne pas supprimer dans Documents and Settings (sous forme de dictionnaire)
'Récupération du nom d'utilisateur en cours (variable d'environnement)
Dim Shell
Set Shell = Wscript.CreateObject ("Wscript.Shell")
UserName = Shell.ExpandEnvironmentStrings ("%USERNAME%")
SystemDrive = Shell.ExpandEnvironmentStrings ("%SYSTEMDRIVE%")
SystemRoot = Shell.ExpandEnvironmentStrings ("%SYSTEMROOT%")
'Création de la liste des dossiers
Dim ListeDossiers(12)
ListeDossiers(0) = "admin"
ListeDossiers(1) = "Administrateur"
ListeDossiers(2) = "administrateur.DOMMUTM01"
ListeDossiers(3) = "All Users"
ListeDossiers(4) = UserName
ListeDossiers(5) = "ctx_cpsvcuser"
ListeDossiers(6) = "ctx_cpsvcuser.XENAPP01"
ListeDossiers(7) = "ctx_cpuuser"
ListeDossiers(9) = "Ctx_StreamingSvc"
ListeDossiers(10) = "Default User"
ListeDossiers(11) = "LocalService"
ListeDossiers(12) = "NetworkService"
'#-----------------------------------------------------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
set Folder = FSO.GetFolder("C:\Document et Setting")
sOlderThanDays = 31
'#----------------- Compute old date
dOldDate = dateadd("d", 0 - sOlderThanDays, Now())

'#Suppression des profiles utilisateurs dans "Document et Setting".

For Each Subfolder in Folder.SubFolders
'D booléen, si D 1 c'est que le dossier est trouvé, sinon D = 0 (dans ce cas suppression du dossier)
D = 0
For Each valeur in ListeDossiers
if Subfolder.name = valeur then
D = 1
end if
next
if D = 0 then
RunCommande("CMD /C RD /S /Q "&chr(34)&"C:\Document et Setting"&Subfolder.name)
end if
Next

Merci par avance
A voir également:

4 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
27 juil. 2012 à 16:09
Bonjour à toi aussi,

Oui et.. quelle est la question? Ton script te donne une erreur ou ne fonctionne pas?


L'expérience, c'est une connerie par jour, mais jamais la même..
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juil. 2012 à 18:18
Bonjour,

RunCommande("CMD /C RD /S /Q "&chr(34)&"C:\Document et Setting"&Subfolder.name)


C'est quoi, cette commande ? une commande Dos dans du VB.Net ?
Vive le progrès (mode dérision)
Et en plus : Rappel : Dos ne connait pas les chemins longs.
Mais enfin ... Du Dos à partir de VB.Net ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juil. 2012 à 18:19
Et un seul chr(34) ... !
Bref ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Utilisateur anonyme
27 juil. 2012 à 19:45
Bonjour,

C'est quoi, cette commande ? une commande Dos dans du VB.Net ?


Et FSO, alors que le Framework n'en a absolument pas besoin ?

On dirait que c'est plus du VBScript que du VB.net.
0
Rejoignez-nous