iCACLS,其中VBS中的用户名变量为

时间:2018-12-28 16:11:33

标签: vbscript icacls

希望有人可以提供帮助,因为我对此一无所知:(

我具有以下vb,用于基于指定的用户帐户(Test1)来设置对指定目录(C:\ test)中的子文件夹列表的权限;

    Dim intRunError, objShell, objFSO

Set objShell = CreateObject("Wscript.Shell")
set objFSO = CreateObject("Scripting.FileSystemObject")

 For Each objFolder In objFSO.GetFolder("c:\Test").SubFolders
        If objFSO.FolderExists(objFolder) Then
            intRunError = objShell.Run("%COMSPEC% /c Echo Y| icacls " _
            & objFolder & " /grant:r Test1:(OI)(CI)F /T", 2, True)

            If intRunError <> 0 Then
                Wscript.Echo "Error assigning permissions for user " _
                & objFolder.Name & " to the folder " & objFolder
        End If
    End If

 Next

一切正常。但是,我真正想要的是为将使用权限设置的帐户使用变量。就我而言,该文件夹的名称将始终是正确的用户名。所以我希望使用一个变量,例如:

& objFolder & " /grant:r objFolder.Name:(OI)(CI)F /T", 2, True)

但是,很明显,这不能以文字字符串形式编写。我已经尝试了几种格式的变体,但似乎无法使其满足我的需要。

任何人都可以提供帮助吗?

谢谢!

亚当

1 个答案:

答案 0 :(得分:0)

刚弄清楚,应该是:

& objFolder & " /grant:r " & objFolder.Name & ":(OI)(CI)F /T", 2, True)

亚当