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:
Suppression répertoire en fonction d'une date de modification
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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