2013-03-19 70 views
0

我对很新,我的任务是制作一个给定文件夹中的文件列表以及具有每个文件权限的用户。如何使用Excel 2003 VBA获取文件的用户权限?

  • 我能得到的文件名的文件夹中,
  • ,但我不知道如何让用户与权限列表。

我使用Excel 2003中

我发现这个代码,增加了“人人”的文件夹的权限:

“添加的权限功能SetPermissions)大家( 暗淡strHomeFolder,strHome,strUser的 昏暗intRunError,objShell,objFSO

strHomeFolder = "C:\Test" 

Set objShell = CreateObject("Wscript.Shell") 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
If objFSO.FolderExists(strHomeFolder) Then 
    intRunError = objShell.Run("%COMSPEC% /c Echo Y| cacls " _ 
    & strHomeFolder & " /e /c /g everyone:F ", 2, True) 

    If intRunError <> 0 Then 
     Wscript.Echo "Error assigning permissions for user " _ 
     & strUser & " to home folder " & strHomeFolder 
    End If 
End If End Function 

但是,我不知道如何修改代码以返回指定文件夹授予的当前权限。我也想为指定的文件做这件事。我真的很感激任何帮助。谢谢!

+0

谷歌* *的VBScript(可执行文件在Excel VBA),*文件的权限*,* ACL *。这应该让你开始 – brettdj 2013-03-19 10:53:29

回答

1

要获得文件的所有者,这个功能可以帮助你:

Function GetFileOwner(fileDir As String, fileName As String) As String 
Dim secUtil As Object 
Dim secDesc As Object 
Set secUtil = CreateObject("ADsSecurityUtility") 
Set secDesc = secUtil.GetSecurityDescriptor(fileDir & fileName, 1, 1) 
GetFileOwner = secDesc.owner 
End Function 
+0

在即时窗口检查,我​​已经获得了这样的答案:
'?GetFileOwner(“C:\ Users \ xxx \ Documents \”,“log.docx”)'
LOC \ Octopus' – Octopus 2013-03-19 11:12:53

+0

谢谢八达通的代码。不幸的是,我需要文件的权限,而不是所有者。但我感谢你的帮助。再次感谢! – mini 2013-03-26 03:25:45

相关问题