nom personne ayant des droits sur des dossiers

plumpony531

XLDnaute Nouveau
Tout d'abord je souhaite une heureuse et bonne Année à tout le forum. Que ce qui veulent de l'argent en ai, que ce qui veulent un enfant prospere bref....que tout un chacun soit heureux.


Je cherche a recuperer les logins NT des users ayant des droits d'acces Read et/ou write sur des dossiers.

Mon code VBA fonctionne en grande partie mais je bloque desesperemment sur cette partie.
Merci aux ames charitable de me venir en aide.


Plum'
 

MichelXld

XLDnaute Barbatruc
bonsoir Plum

cet exemple est adapté de ce lien

http://microsoft.supinfo.com/scripts/14048/



Option Explicit

Sub lister_Aurorisations_Repertoire()
'
'http://microsoft.supinfo.com/scripts/14048/
'
'adapté et testé avec Excel 2002 & WinXP
'

Dim strFolderName As String
Dim objWMIService As Object, objFolderSecuritySettings As Object
Dim objACE ' As ?????
Dim objSD ' As ?????
Dim intRetVal As Long
Dim intControlFlags As Long
Dim arrACEs ' As ?????

strFolderName = 'C:\\\\\\\\Documents and Settings\\\\\\\\michel\\\\\\\\dossier\\\\\\\\excel'
Const SE_DACL_PRESENT = &H4
Const ACCESS_ALLOWED_ACE_TYPE = &H0
Const ACCESS_DENIED_ACE_TYPE = &H1

Const FILE_ALL_ACCESS = &H1F01FF
Const FOLDER_ADD_SUBDIRECTORY = &H4
Const FILE_DELETE = &H10000
Const FILE_DELETE_CHILD = &H40
Const FOLDER_TRAVERSE = &H20
Const FILE_READ_ATTRIBUTES = &H80
Const FILE_READ_CONTROL = &H20000
Const FOLDER_LIST_DIRECTORY = &H1
Const FILE_READ_EA = &H8
Const FILE_SYNCHRONIZE = &H100000
Const FILE_WRITE_ATTRIBUTES = &H100
Const FILE_WRITE_DAC = &H40000
Const FOLDER_ADD_FILE = &H2
Const FILE_WRITE_EA = &H10
Const FILE_WRITE_OWNER = &H80000

Set objWMIService = GetObject('winmgmts:')
Set objFolderSecuritySettings = _
objWMIService.Get('Win32_LogicalFileSecuritySetting='' & strFolderName & ''')
intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD)

intControlFlags = objSD.ControlFlags

If intControlFlags And SE_DACL_PRESENT Then
arrACEs = objSD.DACL
For Each objACE In arrACEs
Debug.Print objACE.Trustee.Domain & '\\\\\\\\' & objACE.Trustee.Name
If objACE.AceType = ACCESS_ALLOWED_ACE_TYPE Then
Debug.Print vbTab & 'Allowed:'
ElseIf objACE.AceType = ACCESS_DENIED_ACE_TYPE Then
Debug.Print vbTab & 'Denied:'
End If
If objACE.AccessMask And FILE_ALL_ACCESS Then
Debug.Print vbTab & vbTab & 'FILE_ALL_ACCESS '
End If
If objACE.AccessMask And FOLDER_ADD_SUBDIRECTORY Then
Debug.Print vbTab & vbTab & ' FOLDER_ADD_SUBDIRECTORY '
End If
If objACE.AccessMask And FILE_DELETE Then
Debug.Print vbTab & vbTab & 'FILE_DELETE '
End If
If objACE.AccessMask And FILE_DELETE_CHILD Then
Debug.Print vbTab & vbTab & 'FILE_DELETE_CHILD '
End If
If objACE.AccessMask And FOLDER_TRAVERSE Then
Debug.Print vbTab & vbTab & ' FOLDER_TRAVERSE '
End If
If objACE.AccessMask And FILE_READ_ATTRIBUTES Then
Debug.Print vbTab & vbTab & 'FILE_READ_ATTRIBUTES '
End If
If objACE.AccessMask And FILE_READ_CONTROL Then
Debug.Print vbTab & vbTab & 'FILE_READ_CONTROL '
End If
If objACE.AccessMask And FOLDER_LIST_DIRECTORY Then
Debug.Print vbTab & vbTab & ' FOLDER_LIST_DIRECTORY '
End If
If objACE.AccessMask And FILE_READ_EA Then
Debug.Print vbTab & vbTab & 'FILE_READ_EA '
End If
If objACE.AccessMask And FILE_SYNCHRONIZE Then
Debug.Print vbTab & vbTab & 'FILE_SYNCHRONIZE '
End If
If objACE.AccessMask And FILE_WRITE_ATTRIBUTES Then
Debug.Print vbTab & vbTab & 'FILE_WRITE_ATTRIBUTES '
End If
If objACE.AccessMask And FILE_WRITE_DAC Then
Debug.Print vbTab & vbTab & 'FILE_WRITE_DAC '
End If
If objACE.AccessMask And FOLDER_ADD_FILE Then
Debug.Print vbTab & vbTab & ' FOLDER_ADD_FILE '
End If
If objACE.AccessMask And FILE_WRITE_EA Then
Debug.Print vbTab & vbTab & 'FILE_WRITE_EA '
End If
If objACE.AccessMask And FILE_WRITE_OWNER Then
Debug.Print vbTab & vbTab & 'FILE_WRITE_OWNER '
End If
Next
Else
Debug.Print 'No DACL present in security descriptor'
End If
End Sub



bonne soiree
MichelXld
 

Statistiques des forums

Discussions
312 110
Messages
2 085 388
Membres
102 882
dernier inscrit
Sultan94