Recursively add permissions to a users home folder with icacls
Having issues with long file paths also when trying to set permissions? Check out this guide on how to find long paths and correct them.
First you’re most likely going to need to take ownership of the data before you will be able to set the perms, my preferred method is to use takeown.
takeown /F ROOT_FOLDER /A /R /D /Y
/F filename Specifies the filename or directory
name pattern. Wildcard "*" can be used
to specify the pattern. Allows
sharename\filename.
/A Gives ownership to the administrators
group instead of the current user.
/R Recurse: instructs tool to operate on
files in specified directory and all
subdirectories.
/D prompt Default answer used when the current user
does not have the "list folder" permission
on a directory. This occurs while operating
recursively (/R) on sub-directories. Valid
values "Y" to take ownership or "N" to skip.
Once you have taken control you can then set the perms with the below.
icacls ROOT_FOLDER /grant DOMAIN\USER:F /t
To address all files even with longer path names use the below
So prefixing my path with the string “\\?\” as below, allows icacls to successfully address longer file paths.
iicacls \\?\ROOT_FOLDER /grant DOMAIN\USER:F /t
When my script runs using this prefix, it now runs correctly, and successfully processes all files without error….SUCCESS!!! NB this also works with UNC paths.
1 thought on “Recursively add permissions to a users home folder with icacls”