iCACLS с переменной для имени пользователя в VBS
Надеюсь, что кто-то может помочь, так как я не могу понять это:(
У меня есть следующие 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)
Тем не менее, очевидно, что это не работает, так как написано в виде буквенной строки. Я пробовал несколько вариантов форматирования, но не могу заставить его делать то, что мне нужно.
Кто-нибудь сможет помочь?
Заранее спасибо!
Адам
1 ответ
Просто разобрался, должен был
& objFolder & " /grant:r " & objFolder.Name & ":(OI)(CI)F /T", 2, True)
Адам