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 :

Suppression de repertoires


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Suppression de repertoires
    Bonjour,

    Je n'arrive pas à supprimer les répertoires voulus sur un serveur bien que je sois admin du domaine.
    Plutôt que de faire de longs discours je préfère vous fournir 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
    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
     
    ' VB Script Document
    option explicit
     
    'On Error resume next
     
    Dim ConnexionReseau, LecteurReseau, RepUserASup, Repertoire
    Dim ListeServeurs, LectureLigne,LigneTronquee, FichierLog
    Dim f1, f2, f3, f4, f5, fx, fy, fz, i, X
    Dim Tablo()
    Dim NomAdmin, PasswordAdmin
    Dim Serveur, DomaineDuDc
    Dim DateDebut, DateFin
    Const ForReading=1
    Const ForWriting=2
    Const ForAppending=8
     
    X=0
     
    '=======================================================
    'Affichage de la date de debut du commencement du script
    '=======================================================
    DateDebut=Now 'Affectation de la variable pour calcul ulterieur du temps passe pour lexecution du script
    WScript.Echo Day(DateDebut)& "."& Month(DateDebut)& "."& Year(DateDebut)& " "& Hour(DateDebut)& ":"& Minute(DateDebut)& ":"& Second(DateDebut)
     
    'Declaration des Objets
    Set f1 = CreateObject("Scripting.FileSystemObject")
    Set ConnexionReseau = CreateObject("WScript.Network")
     
    Set ListeServeurs=f1.OpenTextFile("D:\Boulot\ScriptsVbs\ServeursDc2.csv",ForReading) 'Ouverture du fichier de la liste des serveurs
    Set FichierLog=f1.OpenTextFile("D:\Boulot\ScriptsVbs\LogSupRep.Log",ForWriting,True) 'Creation ou mise a zero du fichier de log
    'Set ListeServeurs=f1.OpenTextFile("G:\ScriptsVbs\ServeursDc.csv",ForReading) 'Ouverture du fichier de la liste des serveurs
    'Set FichierLog=f1.OpenTextFile("G:\ScriptsVbs\LogSupRep.Log",ForWriting,True) 'Creation ou mise a zero du fichier de log
    'Set ListeServeurs=f1.OpenTextFile("c:\SvrUtils\UserSup\ServeursDc.csv",ForReading) 'Ouverture du fichier de la liste des serveurs
    'Set FichierLog=f1.OpenTextFile("c:\SvrUtils\UserSup\Log\LogSupRep.Log",ForWriting,True) 'Creation ou mise a zero du fichier de log
     
    '==========================================
    'Ecriture de la date dans le fichier de log
    '==========================================
    FichierLog.WriteLine Day(DateDebut) & "." & Month(DateDebut) & "." & Year(DateDebut) & " " & Hour(DateDebut) & ":" & Minute(DateDebut) & ":"& Second(DateDebut)
     
    '==================
    'Corps du programme
    '==================
    Do While not	ListeServeurs.AtEndOfStream 'Tant qu'on est pas a la fin du fichier de serveur on continue
    	LectureLigne=ListeServeurs.Readline 'Lecture ligne a ligne du fichier de serveur
    	LigneTronquee=split(LectureLigne,";") 'On eclate la premiere ligne qui est mise dans un tableau
    	Serveur=LigneTronquee(0)
    	DomaineDuDc=LigneTronquee(1)
    	NomAdmin= LigneTronquee(2)
    	PasswordAdmin= LigneTronquee(3)
     
    	Set LecteurReseau=ConnexionReseau.EnumNetworkDrives 'On liste les lecteurs reseaux sur le serveur
     
    	'=====================================
    	'Teste la presence des lecteurs reseau
    	'=====================================
    	For i = 0 to LecteurReseau.Count - 1 Step 2
    		If LecteurReseau.Item(i)="Y:" then
    			ConnexionReseau.RemoveNetworkDrive "Y:" 'Si Y: existe on le supprime
    		end if
    		If LecteurReseau.Item(i)="Z:" then
    			ConnexionReseau.RemoveNetworkDrive "Z:" 'Si Z: existe on le supprime
    		end if
    	Next
    	'==================================================
    	'On etabli les deux connections reseaux necessaires
    	'==================================================
    	ConnexionReseau.MapNetworkDrive "Y:","\\" & Serveur & "\USERS",False,DomaineDuDc & "\" & NomAdmin,PasswordAdmin
    	ConnexionReseau.MapNetworkDrive "Z:","\\" & Serveur & "\USERS_PERSO",False,DomaineDuDc & "\" & NomAdmin,PasswordAdmin
    	Set f2 = f1.GetFolder("Y:")
    	Set f3 = f1.GetFolder("Z:")
    	Set fy = f2.SubFolders
    	Set fz = f3.SubFolders
     
    	WScript.Echo "================================"
    	WScript.Echo "Serveur " & Serveur & " Domaine " & DomaineDuDc
    	WScript.Echo "================================"
    	WScript.Echo "  ================"
    	WScript.Echo "  Ressources USERS"
    	WScript.Echo "  ================"
    	FichierLog.WriteLine "================================"
    	FichierLog.WriteLine "Serveur " & Serveur & " Domaine " & DomaineDuDc
    	FichierLog.WriteLine "================================"
    	FichierLog.WriteLine "  ================"
    	FichierLog.WriteLine "  Ressources USERS"
    	FichierLog.WriteLine "  ================"
     
    	'===============================================================================================
    	'Test de la presence des repertoires contenant A-SUP, A_SUP, ASUP et affectation dans un tableau
    	'===============================================================================================
    	For Each f4 in fy
    		if (InStr(1,LCase(f4.name),LCase("A-SUP"),1)<>0) or (InStr(1,LCase(f4.name),LCase("A_SUP"),1)<>0) or (InStr(1,LCase(f4.name),LCase("ASUP"),1)<>0) then
    			Redim Preserve Tablo(X)
    			Tablo(X)=f4.path
    			X=X+1
    		End if
    	Next
     
    	'=========================
    	'On efface les repertoires
    	'=========================
    	If Tablo(0)<>"" then 'S'il y a au moins une donnée dans Tablo
    		for i=Lbound(Tablo) to Ubound(Tablo)
     
    '*******************************************************
    '*************** le probléme *******************************
                                    f1.DeleteFolder (Tablo(i)),True 'On efface les repertoire dont le nom figure dans le Tableau
    '*******************************************************
    '*******************************************************
     
    				If (f1.FolderExists(Tablo(i))) then 'Petite verif si on a pu effacer les repertoires'
    					WScript.Echo Tablo(i) & " n'a pas ete efface"
    					FichierLog.Writeline Tablo(i) & " n'a pas ete efface"
    				Else
    					WScript.Echo Tablo(i) & " supprime"
    					FichierLog.Writeline Tablo(i) & " supprime"
    				End if
    		Next
    	End if
     
    	Redim Tablo(0) 'On remet le tableau Tablo a zero
    	X=0
     
    	WScript.Echo "  ======================"
    	WScript.Echo "  Ressources USERS_PERSO"
    	WScript.Echo "  ======================"
    	FichierLog.WriteLine "  ======================"
    	FichierLog.WriteLine "  Ressources USERS_PERSO"
    	FichierLog.WriteLine "  ======================"
     
    	'===============================================================================================
    	'Test de la presence des repertoires contenant A-SUP, A_SUP, ASUP et affectation dans un tableau
    	'===============================================================================================
    	For Each f5 in fz
    		if (InStr(1,LCase(f5.name),LCase("A-SUP"),1)<>0) or (InStr(1,LCase(f5.name),LCase("A_SUP"),1)<>0) or (InStr(1,LCase(f5.name),LCase("ASUP"),1)<>0) then
    			Redim Preserve Tablo(X)
    			Tablo(X)=f5.path
    			X=X+1
    		End if
    	Next
     
    	'=========================
    	'On efface les repertoires
    	'=========================
    	If Tablo(0)<>"" then 'S'il y a au moins une donnée dans le Tablo
    		for i=Lbound(Tablo) to Ubound(Tablo)
    				f1.DeleteFolder (Tablo(i)),True 'On efface les repertoire dont le nom figure dans le Tableau
    				If (f1.FolderExists(Tablo(i))) then 'Petite verif si on a pu effacer les repertoires'
    					WScript.Echo Tablo(i) & " n'a pas ete efface"
    					FichierLog.Writeline Tablo(i) & " n'a pas ete efface"
    				Else
    					WScript.Echo Tablo(i) & " supprime"
    					FichierLog.Writeline Tablo(i) & " supprime"
    				End if
    		Next
    	End if
     
    	'=========================================
    	'Suppression des lecteurs reseaux Y: et Z:
    	'=========================================
    	ConnexionReseau.RemoveNetworkDrive "Y:"
    	ConnexionReseau.RemoveNetworkDrive "Z:"
    Loop 'On reboucle
     
    LectureLigne.Close 'Fermeture du fichier Serveur
     
    DateFin=Now 'Date de fin mise dans la variable
    WScript.Echo Day(DateFin) & "." & Month(DateFin) & "." & Year(DateFin) & " " & Hour(DateFin) & ":" & Minute(DateFin) & ":" & Second(DateFin) 'Affichage de la date
    WScript.Echo "Temps d'execution du script: " & DateDiff("n", DateDebut, DateFin) & " Minute(s)" 'On affiche la difference de temps entre le debut et la fin de l'execution du script
    FichierLog.WriteLine Day(DateFin) & "." & Month(DateFin) & "." & Year(DateFin) & " " & Hour(DateFin) & ":" & Minute(DateFin) & ":" & Second(DateFin) 'Ecriture de la date dans la log
    FichierLog.WriteLine "Temps d'execution du script: " & DateDiff("n", DateDebut, DateFin) & " Minute(s)" 'Ecriture de la difference de temps entre le debut et la fin de l'execution du script dans la log
     
    FichierLog.close 'Fermeture du fichier de log
    Voilà mon message d'erreur:
    D:\Boulot\ScriptsVbs\SupRepUserDc.vbs(104, 5) Erreur d'exécution Microsoft VBScript: Permission refusée
    Code de la ligne ou se produit l'erreur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '*************** le probléme *******************************
    f1.DeleteFolder (Tablo(i)),True 'On efface les repertoire dont le nom figure dans le Tableau
    '*******************************************************

    A mon avis Mon problème viens d'où je me situe dans l'arborescence mais je ne sais pas comment faire.

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    affiche le contenu de la variable Tablo(i) avant de supprimer le répertoire.
    Le chemin est peut être erroné ou bien ton script se trouve dans le répertoire que tu veux effacer ou ...

Discussions similaires

  1. Suppression de repertoires par dates de création
    Par chaminette dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 21/11/2007, 11h55
  2. Réponses: 1
    Dernier message: 07/11/2007, 08h29
  3. création / suppression de repertoire / fichiers et thickbox
    Par leken11 dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 30/08/2007, 17h26
  4. Problème de suppression de repertoire : accés refusé
    Par citizen_yule dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/07/2007, 17h21
  5. suppression de repertoire windows
    Par youcef81 dans le forum Windows XP
    Réponses: 3
    Dernier message: 18/08/2006, 18h17

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