0

我对很陌生,我的任务是列出给定文件夹中的文件以及对每个文件具有权限的用户。

  • 我能够获取文件夹中的文件名,
  • 但我不知道如何获取具有权限的用户列表。

我正在使用excel 2003。

我发现这段代码将“每个人”添加到文件夹的权限中:

'在权限函数中添加所有人 SetPermissions() Dim strHomeFolder, strHome, strUser Dim 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

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

4

1 回答 1

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
于 2013-03-19T11:10:38.550 回答