iCACLS с переменной для имени пользователя в VBS - PullRequest
0 голосов
/ 28 декабря 2018

Надеюсь, что кто-то может помочь, так как я не могу понять это: (

У меня есть следующие vbs для установки разрешений на список подпапок в указанном каталоге (C: \ test) ина основе указанной учетной записи пользователя (Test1);

    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)

Однако очевидно, что это не работает, так как записывается в виде буквенной строки. I 'Мы попробовали несколько вариантов форматирования, но, похоже, не смогли заставить его делать то, что мне нужно.

Кто-нибудь сможет помочь?

Заранее спасибо!

Адам

1 Ответ

0 голосов
/ 28 декабря 2018

Только что понял, должно было быть:

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

Адам

...