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
| '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Ce script à pour but, de sauvagrader les ACL.
'il scann les X premiers sous Repertoires de chaque Repertoire Racine.'
'il stocke les fichier des ACL sur un Emplacement defini. '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''Declaration des variables''''''''''''''''''''''''''''''''''''''''''''''
Dim oFSO,oFld
Dim Chemin_def,Chemin,Chemin_Next,Chemin_Next1,Chemin_Next2 'pour le traitement nom du chemin (gestion des caracrteres /,:, ,&,_)
Dim Subnumber
Dim stRep_log
Dim Var_test
Dim Ext
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set shl = createobject("wscript.shell")
stRep = "d:\users" 'Emplacement à Scanner
stRep_log = "C:\Logs\ACL\" 'Emplacement de stockage des fichiers ACL
LectRep stRep 'Rappel de la recurcivite sur les repertoires
Subnumber = 0
'
' Fonction récursive de parcours de répertoire
'
Sub LectRep (stR)
Verif(stRep_log)
If Subnumber < 4 Then 'ici le nombre de sous repertoires à scanner
For each oFld in oFSO.GetFolder(stR).SubFolders 'pour chaque sous repertoires
Subnumber = Subnumber + 1 'on incremente le compteur (juqu'au nombre de sous rep à scanner)
Ext = ".txt" 'definition de l'extension du fichier de stockage ACL
If InStr (oFld.Path,"\") Then 'recherche du caractere dans le nom du repertoire sacnner
Chemin = Replace(oFld.Path,"\","-")'remplacement du caractere dans le nom du repertoire sacnner
Chemin_def = Chemin & Ext 'nom du repertoire retravaillé present dans la variable Chemin_def
End if
If InStr (Chemin,":") Then
Chemin_Next = Replace(Chemin,":","")
Chemin_def = Chemin_Next & Ext
End if
If InStr (Chemin_Next," ") Then
Chemin_Next1 = Replace(Chemin_Next," ","_")
Chemin_def = Chemin_Next1 & Ext
End If
If InStr (Chemin_Next1,"&") Then
Chemin_Next2 = Replace(Chemin_Next1,"&","ET")
Chemin_def = Chemin_Next2 & Ext
End If
Wscript.Echo "--------------- " & oFld.PAth & "-----------------" 'affiche nom du repertoire scanné
WScript.Echo Subnumber 'affiche la position du repertoire scanné
WScript.Echo Chemin_def 'affiche le nom du repertoire retravaillé
Commande (oFld.PATH)'appel de la commande DOS de sauvegarde des ACL
LectRep oFld.PATH 'appel de la recursivitée sur les sous repertoires
Next
Else
Subnumber = 0 'remise à 0 du compteur de sous repertoire
End If
end Sub
'
' commande de sauvegarde ACL à executer
'
Sub Commande (stR)
Dim stCde
wscript.echo stR
stCde = "cmd /C setacl.exe -on " &"""" & stR & """" &" -ot file -actn list -lst f:sddl;w:d,s,o,g;i:n;s:y -rec no > "&stRep_log &Chemin_def
WScript.Echo stCde
shl.run stCde,0,True
WScript.Echo "conetue var " &Chemin_def
End Sub
'Verification de l'existence du repertoire de stockage des ACL et création si il n'existe pas
Sub Verif(stRep_log)
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not ofso.FolderExists(stRep_log) Then
WScript.echo"pas de rep log"
Verif(ofso.GetParentFolderName(stRep_log))
ofso.CreateFolder(stRep_log)
WScript.echo"Rep_Log créé"
End If
End Sub |
Partager