0

私はを初めて使用し、特定のフォルダー内のファイルと、すべてのファイルに対するアクセス許可を持つユーザーのリストを作成する必要がありました。

  • フォルダ内のファイル名を取得できましたが、
  • しかし、権限を持つユーザーのリストを取得する方法がわかりません。

私はExcel2003を使用しています。

フォルダの権限に「全員」を追加する次のコードを見つけました。

'権限に全員を追加しますFunctionSetPermissions()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 に答える