Copy file permissions from one directory to another

Solution 1:

I think this will do the work:

robocopy source destination /E /COPY:SOU /xo /xn /xc /xx /LOG+:F:\Sec.log.

"SOU" copies: S=Security info (NTFS ACLs), O=Ownership info, U=aUditing info

If this does not work you can use this command to back up NTFS permissions:

icacls d:\data /save ntfspermissions.txt /t /c

The /T switch allows it to get subfolder permissions too. The /C switch allows it to continue even if errors are encountered (although errors will still be displayed).

And then use this command to restore the permissions:

icacls d:\ /restore ntfsperms.txt

Note that in the command to save the permissions, I specified the target folder D:\Data, but when I restored them, I specified just D:\ as the target. You might think specifying D:\ as the target in the restore command may somehow mess up the permissions on other folders at that level, but as you can see from the ntfspermissions.txt output file, it only has information about the Data folder and subfolders, so that is all it will change.

Solution 2:

Using PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'