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 |
Partager