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
|
Const FOLDER_ADD_SUBDIRECTORY = &h000004
Const FILE_DELETE = &h010000
Const FOLDER_TRAVERSE = &h000020
Const FILE_READ_ATTRIBUTES = &h000080
Const FILE_READ_CONTROL = &h020000
Const FOLDER_LIST_DIRECTORY = &h000001
Const FILE_READ_EA = &h000008
Const FILE_WRITE_EA = &h000010
Const FILE_SYNCHRONIZE = &h100000
Const FILE_WRITE_ATTRIBUTES = &h000100
Const FILE_WRITE_DAC = &h040000
Const FOLDER_ADD_FILE = &h000002
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Fonction Recup_Droits() : permet de récupérer les droits NTFS du dossier passé en paramètre (folder (chaine de caractères))
'
Sub Recup_Droits(folder)
' Option : Ne pas stopper le programme en cas d'erreur
On Error Resume Next
' Dédinition des variables de la fonction
Dim objFolderSecuritySettings
Dim intRetVal
Dim intControlFlags
Dim objSD
Dim arrACEs
Dim objACE
' Dans la chaîne folder, on remplace tous les '\' par "\\"
folder = Replace(folder, "\", "\\")
' Récupération des droits NTFS du dossier folder
Set objFolderSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting=""" & folder & """")
'WScript.Echo "folder : " & folder
If Err.Number <> 0 Then
WScript.Echo "Erreur : Impossible d'obtenir les informations sur les droits NTFS du dossier " & folder & VbCrLf & VbCrLf & "Erreur n° " & Err.Number & " , Description : " & Err.Description
Err.Clear
Else
intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD)
intControlFlags = objSD.ControlFlags
If intControlFlags AND SE_DACL_PRESENT Then
arrACEs = objSD.DACL
For Each objACE in arrACEs
If (objACE.Trustee.Name <> "Administrateurs") AND (objACE.Trustee.Name <> "SYSTEM") Then
testIsPresent = false
i = colonneDebut
If testIsPresent = false Then
intCol = i
WScript.Echo "Nouveau groupe trouvé : " & objACE.Trustee.Name
End If
If objACE.AccessMask AND FOLDER_TRAVERSE Then
If objACE.AccessMask AND FILE_READ_ATTRIBUTES Then
If objACE.AccessMask AND FILE_READ_EA Then
If objACE.AccessMask AND FOLDER_LIST_DIRECTORY Then
If objACE.AccessMask AND FILE_WRITE_EA Then
If objACE.AccessMask AND FILE_DELETE Then
If objACE.AccessMask AND FILE_WRITE_ATTRIBUTES Then
If objACE.AccessMask AND FOLDER_ADD_FILE Then
WScript.Echo "Ecriture"
End If
End If
End If
Else
WScript.Echo "LECTURE"
End If
End If
End If
End If
Else
strDroits = ""
If objACE.AccessMask AND FOLDER_TRAVERSE Then
strDroits = strDroits & "Parcours du dossier / exécuter le fichier" & " ; "
End If
If objACE.AccessMask AND FOLDER_LIST_DIRECTORY Then
strDroits = strDroits & "Liste du dossier / lecture de données" & " ; "
End If
If objACE.AccessMask AND FILE_READ_ATTRIBUTES Then
strDroits = strDroits & "Attributs de lecture" & " ; "
End If
If objACE.AccessMask AND FILE_WRITE_EA Then
strDroits = strDroits & "Création de fichiers / écriture de données" & " ; "
End If
If objACE.AccessMask AND FOLDER_ADD_FILE Then
strDroits = strDroits & "Création de dossier / ajout de données" & " ; "
End If
If objACE.AccessMask AND FILE_WRITE_ATTRIBUTES Then
strDroits = strDroits & "Attributs d'écriture" & " ; "
End If
If objACE.AccessMask AND FILE_DELETE Then
strDroits = strDroits & "Suppression" & " ; "
End If
If objACE.AccessMask AND FILE_READ_EA Then
strDroits = strDroits & "Autorisations de lecture" & ";"
End If
WScript.Echo strDroits
End If
End If
Next
Else
If Err.Number <> 0 Then
WScript.Echo "ERREUR lors de l'écriture dans le fichier Excel"
Quitter 1
End If
End If
End If
' Libération des variables de la fonction
Set objFolderSecuritySettings = Nothing
Set intRetVal = Nothing
Set intControlFlags = Nothing
Set objSD = Nothing
Set arrACEs = Nothing
Set objACE = Nothing
End Sub
'''''''''''''''''''''''''''''' |
Partager