Help creating batch file to change permissions of folders
Moderator: DosItHelp
Help creating batch file to change permissions of folders
Hi guys & girls
I'm very new to batch file creation and would love some help
I need to be able to change the NTFS permissions on a particular folder using a script (so i can schedule on a daily basis)
I have hundreds of folders under a file MP3 share (eg: \\server\music\black sabbath\(1970) Paranoid\*.mp3)
In that same folder, I have a folder called FLAC (eg: \\server\music\black sabbath\(1970) Paranoid\FLAC\*.flac)
I need the FLAC folders (including their contents) to have their current permissions removed and then their permissions set to rwx for administrator and a 2nd user
I don't want to effect the permissions of the MP3 files, just the FLAC's
Any help would be awesome
Thankyou in advance!!
I'm very new to batch file creation and would love some help
I need to be able to change the NTFS permissions on a particular folder using a script (so i can schedule on a daily basis)
I have hundreds of folders under a file MP3 share (eg: \\server\music\black sabbath\(1970) Paranoid\*.mp3)
In that same folder, I have a folder called FLAC (eg: \\server\music\black sabbath\(1970) Paranoid\FLAC\*.flac)
I need the FLAC folders (including their contents) to have their current permissions removed and then their permissions set to rwx for administrator and a 2nd user
I don't want to effect the permissions of the MP3 files, just the FLAC's
Any help would be awesome
Thankyou in advance!!
Re: Help creating batch file to change permissions of folder
Which version of Windows is it?
Re: Help creating batch file to change permissions of folder
OOPS, I guess that could have been helpful eh?
Apologies there
Windows Server 2003
Thanks
Apologies there
Windows Server 2003
Thanks
Re: Help creating batch file to change permissions of folder
This is untested: try it on some dummy folders and files first.
Code: Select all
@echo off
for /f "delims=" %%a in ('dir "d:\flac" /b /s /ad ') do (
echo y| cacls "%%a" /C /G administrator:F /G user2:F
echo y| cacls "%%a\*.*" /C /G administrator:F /G user2:F
)
pause
Re: Help creating batch file to change permissions of folder
Thanks so much foxidrive
Currently its prompting for each change, needing to say Y or N
Also, how can I add the 2nd user when the user has a space in it?
Thanks a lot for your help, REALLY appreciate it
Currently its prompting for each change, needing to say Y or N
Also, how can I add the 2nd user when the user has a space in it?
Thanks a lot for your help, REALLY appreciate it
Re: Help creating batch file to change permissions of folder
See my edited code above - I added echo y| to each line to answer the prompt with y
Put the username in "double quotes" and see how that goes.
Put the username in "double quotes" and see how that goes.
Re: Help creating batch file to change permissions of folder
Thanks the prompting change worked great
adding the user is " didnt work unfortunately
Any other ideas?
adding the user is " didnt work unfortunately
Any other ideas?
Re: Help creating batch file to change permissions of folder
Show me the syntax you used in the cacls command to be sure.
Re: Help creating batch file to change permissions of folder
Thankyou!
@echo off
for /f "delims=" %%a in ('dir "C:\Users\Administrator\Desktop\Tunez\flac" /b /s /ad ') do (
echo y| cacls "%%a" /C /G administrator:F /G "John Smith":F
echo y| cacls "%%a\*.*" /C /G administrator:F /G "John Smith":F
)
pause
@echo off
for /f "delims=" %%a in ('dir "C:\Users\Administrator\Desktop\Tunez\flac" /b /s /ad ') do (
echo y| cacls "%%a" /C /G administrator:F /G "John Smith":F
echo y| cacls "%%a\*.*" /C /G administrator:F /G "John Smith":F
)
pause
Re: Help creating batch file to change permissions of folder
Does this work?
Code: Select all
@echo off
for /f "delims=" %%a in ('dir "C:\Users\Administrator\Desktop\Tunez\flac" /b /s /ad ') do (
echo y| cacls "%%a" /C /G administrator:F /G "John Smith:F"
echo y| cacls "%%a\*.*" /C /G administrator:F /G "John Smith:F"
)
pause
Re: Help creating batch file to change permissions of folder
No, I get the same error
Re: Help creating batch file to change permissions of folder
What is the error message? It could give us a clue.
Re: Help creating batch file to change permissions of folder
It just shows switching information
However if that user info is removed, the batch works as expected.
Its a bit strange
You can specify more than one user in a command.
Abbreviations:
CI - Container Inherit.
The ACE will be inherited by directories.
OI - Object Inherit.
The ACE will be inherited by files.
IO - Inherit Only.
The ACE does not apply to the current file/directory.
ID - Inherited.
The ACE was inherited from the parent directory's ACL.
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
[/R user [...]] [/P user:perm [...]] [/D user [...]]
filename Displays ACLs.
/T Changes ACLs of specified files in
the current directory and all subdirectories.
/L Work on the Symbolic Link itself versus the target
/M Changes ACLs of volumes mounted to a directory
/S Displays the SDDL string for the DACL.
/S:SDDL Replaces the ACLs with those specified in the SDDL string
(not valid with /E, /G, /R, /P, or /D).
/E Edit ACL instead of replacing it.
/C Continue on access denied errors.
/G user:perm Grant specified user access rights.
Perm can be: R Read
W Write
C Change (write)
F Full control
/R user Revoke specified user's access rights (only valid with /E).
/P user:perm Replace specified user's access rights.
Perm can be: N None
R Read
W Write
C Change (write)
F Full control
/D user Deny specified user access.
Wildcards can be used to specify more than one file in a command.
You can specify more than one user in a command.
However if that user info is removed, the batch works as expected.
Its a bit strange
You can specify more than one user in a command.
Abbreviations:
CI - Container Inherit.
The ACE will be inherited by directories.
OI - Object Inherit.
The ACE will be inherited by files.
IO - Inherit Only.
The ACE does not apply to the current file/directory.
ID - Inherited.
The ACE was inherited from the parent directory's ACL.
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
[/R user [...]] [/P user:perm [...]] [/D user [...]]
filename Displays ACLs.
/T Changes ACLs of specified files in
the current directory and all subdirectories.
/L Work on the Symbolic Link itself versus the target
/M Changes ACLs of volumes mounted to a directory
/S Displays the SDDL string for the DACL.
/S:SDDL Replaces the ACLs with those specified in the SDDL string
(not valid with /E, /G, /R, /P, or /D).
/E Edit ACL instead of replacing it.
/C Continue on access denied errors.
/G user:perm Grant specified user access rights.
Perm can be: R Read
W Write
C Change (write)
F Full control
/R user Revoke specified user's access rights (only valid with /E).
/P user:perm Replace specified user's access rights.
Perm can be: N None
R Read
W Write
C Change (write)
F Full control
/D user Deny specified user access.
Wildcards can be used to specify more than one file in a command.
You can specify more than one user in a command.
Re: Help creating batch file to change permissions of folder
Have you tried it without using the grant switch multiple times?
Code: Select all
@Echo Off
For /f "Delims=" %%A In (
'Dir/b/s/ad "C:\Users\Administrator\Desktop\Tunez\flac"') Do (
Echo y|Cacls "%%A" /c /g Administrator:f "John Smith":f
Echo y|Cacls "%%A\*.*" /c /g Administrator:f "John Smith":f)
Pause
Re: Help creating batch file to change permissions of folder
Thankyou so very much!
That WORKED!
I really appreciate all your help Compo & foxidrive
What command can I also add to make the FLAC folders hidden and RO?
That WORKED!
I really appreciate all your help Compo & foxidrive
What command can I also add to make the FLAC folders hidden and RO?