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