We are in the process of decommissioning our old file server in a much-needed upgrade. It goes without saying that this needs to be as seamless as possible, as to affect the end-users as little as possible. We're upgrading from Server 2000 to Server 2008.

I've been working with consultant on this in an effort to make this smooth, however he's a busy man and I've spotted some holes in his work. He's suggested we use Robocopy to copy all the files from the old server to the new one, then the day before we make the new server live to run the command again to copy any files that had changed since the original copy.

We've done the first copy and the first major glitch is that none of the permissions have been carried over. This isn't the end of the world and considering we're copying almost a TB of data I'm sure it would be quicker for me manually re-do the permissions as opposed to re-copying everything over with the correct switch. Rather than depend on my consultant I figured I'd try to take matters into my own hands.

Here's the command he's recommended (executed from the new file server).

Robocopy \\oldserver\Data E:\DATA /MIR /FFT /Z /XA:H /W:5

Is there an easier way to copy all of this data (while maintaining permissions) before we go live?


The version of robocopy that is included with Server 2008 does not include the security attributes when you use the /MIR option. You have one of two options:

  1. Install the version from the Server 2003 Resource Kit (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17657) and command you already have.

  2. Run the command you already have and immediately run the following to copy the security attributes onto the files. Robocopy \\oldserver\Data E:\DATA /COPY:S


The parameter /sec needs to be added to your command-line. This will cause the /mir to copy security attributes. However, you really, really want to do that to a fresh target. Because of how robocopy works, it'll apply security settings to a directory and then proceed to copy in the child contents. This way those children get their inherited rights correctly.

Do /sec after already doing a copy, and you'll end up waiting for the rights-apply to percolate down the tree for each directory (or file) with explicit rights set.

I used the /mir /sec combination frequently to move some rather large directories. It works great.