KB ID 0001201
Problem
When attempting a File Server Migration why isn’t this better publicised? Did you know Microsoft have a set of Migration tools, and one of them is for file servers? Now traditionally I’d use RoboCopy or XCopy to migrate files and folders, and for ‘User Profiles’ I would normally back them up, and restore them to the new server. This is because the file permissions on ‘correctly deployed’ user profiles mean you can’t open them.
How about a tool, that migrates all the files, folders and profiles while maintaining all the NTFS permissions, AND Share permissions!
Windows File Server Migration Tools
Source Server Pre-requisites
- Server 2003: .Net 2.0 (With SP1), and PowerShell 2.0, and 25MB free drive space.
- Server 2008: PowerShell and 25Mb free drive space.
- Server 2008 R2 and Newer: 25Mb free drive space.
- All: UDP port 7000 needs to be open, from source to the destination server.
File Server Migration Server 2008 to Server 2019
File Server Migration from Server 2003!
- Source Server: Windows Server 2003 Standard x64 (x86 supported as well)
- Destination Server: Windows 2012 R2 Data Center 2012
Source Server: Here you can see my user profiles, I’ll do the migration with them, as usually they are the most ‘challenging’.
You need to create a shared folder on the Source Server, I’ve just granted everyone full control, (this is just for the migration tools).
Destination Server: Open a PowerShell windows and install the tools with the following command;
[box]
Install-WindowsFeature Migration –ComputerName {computer-name}
[/box]
Open an administrative command window > Now you need to deploy the migrations tools to the share on the destination server, to do that use the following command;
[box]
cd C:\Windows\System32\ServerMigrationTools
SmigDeploy.exe /package /architecture amd64 /os WS03 /path \\{Destination-Server}\{folder-name}
[/box]
Note: For x86 (32 bit) source servers use x86 instead of amd64. WS03 (Windows Server 2003), WS08 (Windows Server 2008), WS08R2 (Windows Server 2008 R2), and WS12 (Windows Server 2012).
Source Server: Open the folder you created earlier and within it you will find another folder that has the tools in. Open an administrative command window and change to this directory > then execute the following command;
[box]
.\smigdeploy
[/box]
Another PowerShell window will open, leave it open, and return to the destination server.
Destination Server: Here I’ve created a folder that I’m going to migrate into.
Destination Server: Open a PowerShell window and issue the following two commands;
[box]
add-pssnapin microsoft.windows.servermanager.migration
Receive-SmigServerData
[/box]
You will be asked to provide a password, (use what you want, but remember it, you will need it in a minute).
You now have a five minute window to get the migration running, or you will need to re-issie the last command again.
Source Server: Return to your open PowerShell Window, and issue the following command;
[box]
Send-SmigServerData -ComputerName {destination-computer-name} -SourcePath {path-to-source-folder} -DestinationPath {path-to-destination-folder} -include all -recurse
[/box]
Supply the password, then go and put your feet up.
Destination Server: You can watch progress here.
Profiles migrated! And permissions intact.
Don’t forget to change the path to the user profile, on the user(s) user object(s) in Active Directory.
If you have a lot you can do them in bulk by multi-selecting the users.
I had a question: Are user profiles just everything under appdata? And this is the same thing as folder redirection correct?
No, the profile is essentially all the files and folders a user needs to maintain their desktop experience from one computer to the next. Folder redirection can be used to direct a folder away from a user profile, but the two solutions are not the same thing 🙂
Pete
Hi,
Have you tried to use the storage migration tool along with windows admin center? If not have you tried these same commands on server 2019?
Thanks.
Not with 2019 yet, I update these as I get the jobs 🙂
Thanks but the tools don’t work on SBS 2011 which is basically 2008R2 but when you run the smigdeploy script it errors out saying it can’t run on this operating system.
Know of any way to trick it? I have a few of these servers I need to migrate in client base and it would be nice to do cleanly as you’ve described.
Hmm…
States: “File access rights are maintained during the migration; the same set of users is able to access files on the destination server after they have been migrated. Because files are sent by using an encrypted connection, a password must be provided to decrypt migrated files on both the source and destination servers. Transporting encrypted files (EFS) and junction points is not supported.” Which would seem to suggest this won’t work for profiles. Does it move them or just copy them?
It just copies them, why would you think it would not work for profiles, it says it wont work for EFS and junction points?
P
It works, but isn’t it possible to copy only some profiles instead of all of them?
It’s a SERVER migration tool, if you only what to move a few, back them up, and restore them?
P
Thanks for posting this… A bit easier to understand than MS’s documentation on the subject. Got me through my first server migration, many more to come. Appreciate you taking the time to write this when you did.
After it copied to the destination server, if the AD user login to new server it automatically takes the user profile migrated or we need to import user registry also ?
No – but anything that pointed to the old server needs repointing to the new one, profile path, mapped drives etc.
Triying to use that procedure on 2012 R2 to 2019. There’s no way to made smigdeploy.exe working on 2012 R2. It tells that the framework is not correct. The framework is correct (2.0\3.0 installed) and 4.8 installed on 2012 R2. Done deploy with right command from 2019 to 2012 but no way to work. On the internet only 2 thread about that on MS Technet, not solved. It’s all the day i update frameworks try updates etc. Have someone had the same problem?
I tried to do a migration from a server 2008R2 to a server 2012R2. It kept failing with “Could not find the file ‘C:\users\\AppData\Local\Temp\12\’. I found nothing in google searches on this. As a shot in the dark I decided to update the PowerShell on 2008R2 to 3.0 by installing the Windows Management Framework 3.0. I did not see this as a requirement anywhere for the server migration tools to work on server 2008R2 but I tried it anyway. After the install of the Windows Management Framework 3.0, the tool started working! Hopefully this little bit of information helps someone else out there
Thanks David!
P
This worked perfectly in a lab Hyper-V environment I had setup to migrate files/shares from Server 2012R2 to Server 2022.
We now have a real world scenario that I was trying to show another tech migrating from Server 2012R2 to Server 2022. When running the smigdeploy command on the source server (2012R2) it would keep throwing .NET Framework errors even though .Net 3.5 is enabled on both servers in the features. Nothing we tried worked so we’re going old school and robocopying and having to manually create each share/permission/etc…