How to set folder permissions with VBScript

molemenacer's Avatar
Newbie Member
Hi all,

I am trying to set folder permissions for "everyone" on a folder and am struggling to find out how to do it in VBScript.

I have found a few articles but because i am new to this i do not really understand them.

Any help would be greatly appreciated.

Thanks in advance
molemenacer's Avatar
Newbie Member
I have been able to find the code and implement it, however it wipes out all those that have permission already and just leaves the one that i am creating. Does anyone know why?
Code:
Function 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 & " /t /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

Last edited by shabbir; 14Nov2006 at 18:22.. Reason: Code formating.
pradeep's Avatar, Join Date: Apr 2005
Team Leader
Trying using the /E switch insted of /T switch for cacls. Good Luck!
molemenacer's Avatar
Newbie Member
Thanks pradeep that worked.
molemenacer's Avatar
Newbie Member
I have come accross another problem, in that i need to be able to execute an sql script from a vbscript, is this possible and how easy is it?
RTorres9's Avatar, Join Date: Jul 2008
Newbie Member
Hello Guys,

I too needed a VBscript to set folder permissions on workstations. So thanks for the information.
However in my code I could never get the variable of strfolder path to get recognized.

Here is what I'm referring to:
Option Explicit
Dim strFolder

strFolder = "C:\Test\Growing Palms"

Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%COMSPEC% /k cacls & stfFolder & /E /G WhiteCastle\Sarah:F")
WScript.Quit

I just could not get the directory to get recognized!

I ended up change the script line to the following.
objShell.Run("%COMSPEC% /k cacls ""c:\test\Growing Palms"" /E /G WhiteCastle\Sarah:F")

Any Idea as to what I was doing wrong is attempting to use the Variable.
I know that once your sent the %comspec% comand you are very much in at a dos prompt.
Perhaps if there was a way to pass over the variable to the shell command envirnment.

Please advise,
RTorres9
pradeep's Avatar, Join Date: Apr 2005
Team Leader
Check this line
Code: VBScript
objShell.Run("%COMSPEC% /k cacls & stfFolder & /E /G WhiteCastle\Sarah:F")

Should be,
Code: VBScript
objShell.Run("%COMSPEC% /k cacls """ & stfFolder & """ /E /G WhiteCastle\Sarah:F")
RTorres9's Avatar, Join Date: Jul 2008
Newbie Member
Thanks for the information.

Looks like the lack of the double double quotes is the problem.

I'll give this a try.

Have a nice day!
SreejithRajan's Avatar, Join Date: Jan 2010
Newbie Member
Hi ,I need to give " only write" permission to a folder through VB Script.Please let me know how to achieve this.I used the below VB script(Please let me know what modification needs to be made):Function SetPermissions() Dim strHomeFolder, strHome, strUser Dim intRunError, objShell, objFSO strHomeFolder = "C:\Demo" Set objShell = CreateObject("Wscript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strHomeFolder) Then intRunError = objShell.Run("%COMSPEC% /k cacls """ & strHomeFolder & """ /E /G fareast\Sreejith:F") If intRunError 0 Then Wscript.Echo "Error assigning permissions for user " _ & strUser & " to home folder " & strHomeFolder End If End IfEnd Function
SANUJ's Avatar, Join Date: Jun 2010
Newbie Member
From the Above code i am not able to set permission to a folder inside "C:\Program files" ,
Please do the nessessary help