![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mai 2005
Messages: 25
|
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' |
|
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 702
|
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_LogicalFileSecuritySettin g='' & strFolderName & ''') intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(ob jSD) 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 |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|