Copy file permissions from one directory to another

Over the weekend I copied our company data from one hard drive to another larger one. I thought permission would have copied across but they haven't.

What is the best (and quickest) way to copy the permission that were originally set onto my new data, without having to copy all the data again? My users are now accessing the data so don't want to recopy the data as changes may be lost.

The data is hosted on windows server 2008 R2


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.


Using PowerShell:

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