# Change Folder Permissions in Bulk

Hello.

Currently I am in a W2K3 Enviroment.

On one of our shared drives we have a list of Jobs, each which have a folder called COST.  I need to reset permissions on that COST folder, but can't push it down via inheritance.  Is there any way by a gui tool or script I can make those changes.

An Example of the structure is:

\\root\JobFiles\JobNumber1\Cost

Therefor I would like to script something that rests the permissions for these folders

\\root\JobFiles\JobNumber1\Cost
\\root\JobFiles\JobNumber2\Cost
\\root\JobFiles\JobNumber3\Cost

and so forth.
LVL 2
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
You could use the cacls.exe command line tool and then script the changes that you need to make.  You can get the applicable switches for the command by running cacls /? at the command line, if you're not familiar with it. You'd still have to identify each folder individually in the script, but at least you could cut and paste the folder paths.
There's also an enhanced tool for Win2K3 SP2, which I've never used:
http://support.microsoft.com/kb/919240
0
Author Commented:
So keeping with my example above...

What would my command be

cacls \\root\JobFiles\JobNumber1\Cost /T

How do I set it to inherit?

Can I also add a group vice a user?
0
Commented:
Well, this would be a lot easier to answer if you'd say which permissions those Cost folders should have ...
The example below would add *C*hange permissions to all Cost subfolders, leaving the current permissions intact.
Simply enter the following command in a command line.
You can do that safely, it's in test mode and will only echo the cacls commands it would otherwise run:

for /d %a in ("\\root\JobFiles\*.*") do @ECHO cacls.exe "%a\Cost" /t /e /g:YOURDOMAIN\SomeGroup:C

To run it for real, you'd need to leave out the @ECHO.
0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
Agreeing with oBdA - it'd be a lot easier if you could say what you want the permissions on the folders to look like after the script has run.
I use xcacls.vbs from VBScript on my fileserver - I use it to go through and change permissions of subfolders en masse. You can download XCACLS.VBS from here:
You'll have to play around with it a little as i'm not entirely sure exactly what end result you're after. To see the switches for xcacls.vbs, run this from the command prompt:

cscript \\path\to\xcacls.vbs /?

NB: Copy and paste this code into a blank notepad document, and save it with the extension ".vbs" for it to work.

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

Set rootPath = "\\root\jobfiles"
xcaclsPath = "path\to\xcacls.vbs"

Set rootFolder = objFSO.GetFolder(rootPath)

For Each subfolder in rootFolder.subfolders
fldrName = subfolder.name
'Running the next two commands grant MODIFY access to the specified user
modCmd = "cscript " & xcaclsPath & " " & rootPath & "\" & fldrName & "\Cost /E /G DOMAIN\username:M"
objShell.Run modCmd, 1, True
'Running the next two commands turn the INHERIT flag for the folder on.
inCmd = "cscript " & xcaclsPath & " " & rootPath & "\" & fldrName & "\Cost /E /I ENABLE"
objShell.Run inCmd, 1, True
Next

0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
OS Security

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.