Moving user data

We have a 2003 server that has all our users home drives. I need to move the data to a 2012r2 server. The existing folder structure includes a dollar sign in the folder name. The goals are
1)move the data
2)remove the $ sign from the folder name
3)retain current share permissions on the new server.

I am trying to wrap my head around the best way to do this. I have some good familiarity with PS and can do simple moves with copy-item and move-item. I am also familiar with robocopy.

What would be a better approach moving the Data with Robocopy or PS??

Any thoughts or suggestions would be appreciated.

I would use Robocopy. You’re almost certainly going to want to be using its wait and retry switches and its logging functionality for this type of migration. The /COPYALL switch will allow you to retain security and timestamps and attributes…

Where is the $? Is it a) \oldserver\home$\ or b) \oldserver\home$?

If it’s a) then robocopy \oldserver\home$\ \newserver\home /e /copyall will rename on the fly.

If it’s b) it’s a little trickier. I’d be inclined to do something like:

$folders = (Get-ChildItem \\oldserver\home\ -directory).name

foreach ($folder in $folders) {

    $newfolder = $folder.replace('$','')
    robocopy "\\oldserver\home\$folder" "\\newserver\home\$newfolder" /e /copyall

By the way, are you sure you want to remove the $? It’s used to hide the folder(s) - this is generally a good thing for home folders.