Migrating from Windows XP to Windows 8.1 using MDT 2013
Most people using MDT at this point have made the migration to Windows 7 and are looking at MDT 2013 to help with getting to Windows 8.1. But there are a number of stragglers who are looking to go directly from Windows XP to Windows 8.1 (and hopefully finishing that by April 2014 when Windows XP support expires).
The challenge with this scenario is that some of the tools released as part of the ADK for Windows 8.1 don’t support Windows XP. That includes the User State Migration Tool (version 6.3) and BOOTSECT.EXE, one of the core deployment tools used to put a new boot sector onto an existing Windows XP device so that it can boot a modern OS.
Fortunately, there are workarounds for these two challenges. In the case of USMT, you can use the previous version from the ADK for Windows 8 to capture the user state and the new version from the ADK for Windows 8.1 to restore it. And for BOOTSECT.EXE, you can just use the older version from the ADK for Windows 8 as it still runs on Windows XP.
So the real question then is “how do you get MDT to use these older versions,” since it only supports the ADK for Windows 8.1 and the tools included in it. That requires a little work. Let’s review the steps.
- Replace ZTIUserState.wsf in your MDT 2013 deployment share “Scripts” folder with the one from the attached zip file. (Don’t try to put this script in any other version of MDT, older or newer. It’s only designed for MDT 2013. Feel free to compare the file with the original version to see the changes that I made.)
- Install the ADK for Windows 8 on a Windows 7 or Windows 8 system. You only need to select two components, Deployment Tools and User State Migration tool (which will make the download much faster):
- Copy the USMT files from the system with the ADK for Windows 8 to the deployment share:
XCOPY "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool\x86" "\\SERVER\DeploymentShare$\Tools\x86\USMTX"
XCOPY "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool\amd64" "\\SERVER\DeploymentShare$\Tools\x64\USMTX" - Make a backup copy of the existing BOOTSECT.EXE executables from the ADK for Windows 8.1 installation folders (C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\<platform>\BCDBOOT\bootsect.exe).
- Copy the BOOTSECT.EXE executables from the ADK for Windows 8 to the computer running MDT 2013, replacing the version from the ADK for Windows 8.1:
COPY "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\x86\BCDBoot\bootsect.exe" "\\Server\C$\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\BCDBoot\bootsect.exe"
COPY "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\amd64\BCDBoot\bootsect.exe" "\\Server\C$\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\BCDBoot\bootsect.exe" - Update the deployment share (which will copy the “older” BOOTSECT.EXE from the ADK folders to the deployment share when it detects that the date/time is different on the file).
A few comments on this setup:
- You might ask why the USMT files are being copied into the USMTX folder. Well, there are two parts to that:
- MDT 2013 puts USMT 6.3 into the USMT 5 folder. This is a carry-over from MDT 2012 Update 1. While MDT was updated to pull the new USMT 6.3 from the ADK, it didn’t change where it put it. Hence, it reused the USMT5 folder for USMT 6.3.
- The ZTIUserState.wsf script uses the last character of the folder name (e.g. “5” from a folder named “USMT5” or “X” from a folder named “USMTX”) in various places. Painfully obvious after I initially tried to use “USMT5.0” as the old version and things didn’t work right. (I’d like to blame someone else for that logic, but it’s quite possible that I wrote it that way…)
- You might also ask why you can’t just copy the BOOTSECT.EXE executable into the deployment share directly. This is because MDT is smart enough to recopy the file from the ADK folder any time it changes in size or timestamp. So if you don’t replace the version in the ADK folder, you’ll find the file gets overwritten with the newer one and breaks things again.
- I’ve only tried this with Lite Touch deployments. The ZTIUserState.wsf script is also used with MDT-created UDI task sequences in ConfigMgr 2012 R2, performing an offline USMT capture. In that scenario, the script uses whatever USMT package was configured in the task sequence; it doesn’t select one dynamically based on the original OS. So you would likely need to do some different work to get this to work. See the ConfigMgr blog at https://blogs.technet.com/b/configmgrteam/archive/2013/09/12/how-to-migrate-user-data-from-win-xp-to-win-8-1-with-system-center-2012-r2-configmgr.aspx for more information on the general approach needed there. (You would have to consciously replace the ZTIUserState.wsf script in the MDT toolkit files package anyway to get it to use this new script. The steps above will only affect the Lite Touch deployments from the deployment share that you update.)
- The attached ZTIUserState.wsf will only work with MDT 2013 – I have no idea if it will work with previous versions of MDT, but then again previous versions don’t support Windows 8.1 anyway so there’s really no need to try. I would also not suggest trying to use this script with any newer versions of MDT either. (Fortunately Windows XP will be unsupported before a new version of MDT would be released anyway.)
- If by chance you are using MDT on an x86 OS instead of an x64 OS, you’ll need to change the “Program Files (x86)” path to just “Program Files” in the above steps.
Remember, if you are still running Windows XP, you’re running out of time – April is right around the corner…
Comments
- Anonymous
January 01, 2003
I need a design change done by a hotfix to Windows 8 and Windows 7 to move from Windows XP. - Anonymous
January 01, 2003
Did USMT change, besides just adding support for 8.1, in MDT 2013? - Anonymous
January 01, 2003
I have no idea what that comment means :-) - Anonymous
January 01, 2003
amazing! Thank you very much! - Anonymous
January 01, 2003
It sounds like it rebooted into Windows PE like it was supposed to, but now the Windows PE session isn't able to see the hard drive (the MININT folder) to figure out where it left off. Is it possible Windows PE doesn't contain a mass storage driver for the hardware you are deploying? When you see the MDT wizard, press F8 and see if you can see the disk volume(s). - Anonymous
January 01, 2003
The KB (http://support.microsoft.com/kb/2910552) fixes an issue that occurs in some ConfigMgr scenarios described in the ConfigMgrTeam blog mentioned above. Not sure on the other issues, without more information from the BDD.LOG. - Anonymous
January 01, 2003
BOOTSECT is the only problematic executable; it runs in Windows XP, while the rest are used from Windows PE. - Anonymous
January 01, 2003
See http://blogs.technet.com/b/configmgrteam/archive/2013/09/12/how-to-migrate-user-data-from-win-xp-to-win-8-1-with-system-center-2012-r2-configmgr.aspx for the ConfigMgr story. You can certainly follow the same basic steps with an MDT-created ConfigMgr task sequence. - Anonymous
January 01, 2003
This post is great, I have bookmarked it and will try a migration from an xp computer in my lab soon.Thanks - Anonymous
January 01, 2003
Michael, by replacing the BOOTSECT.EXE, how will this affect other types of migrations? Sure, it works for a migration of XP to Windows 8.1, but will replacing it affect Windows 7 to Windows 8.1 migrations? - Anonymous
January 01, 2003
BOOTSECT.EXE is only used when staging a Windows PE boot image to computer currently running Windows XP. So it has no impact on any other scenarios (it's not necessary on machines running Vista or later). - Anonymous
January 01, 2003
Hi Michael. Have followed your steps. Was able to passed thru the user state capturing, but when the computer restarts it no longer boots into the OS. Weird that it boots into MDT like when you boot the computer using the bootable media. Hope you could help out. Many thanks. - Anonymous
January 09, 2014
Pingback from Migration Windows XP vers Windows 8.1 avec MDT 2013 | Deploiement Windows - Anonymous
January 09, 2014
Pingback from Migration Windows XP vers Windows 8.1 avec MDT 2013 | Deploiement Windows - Anonymous
January 09, 2014
Pingback from Migration Windows XP vers Windows 8.1 avec MDT 2013 | Deploiement Windows - Anonymous
January 09, 2014
Pingback from Migration Windows XP vers Windows 8.1 avec MDT 2013 | Deploiement Windows - Anonymous
January 10, 2014
Pingback from Microsoft Offers Help on Windows XP to Windows 8.1 Migrations | TechNewzie - Anonymous
January 12, 2014
Do konce podpory operačního systému Windows XP zbývají méně než tři - Anonymous
January 20, 2014
Will these works with Hardlink migration? from XP to 8.1 - Anonymous
January 20, 2014
MDT2013 integrated TS with CM2012 R2 with Hardlink migration ? - Anonymous
January 24, 2014
Very interesting and helpful.Windows 8 Update - Anonymous
February 05, 2014
Hi Michael, there is now an update to address the bootsect.exe issue : http://support.microsoft.com/kb/2910552. - Anonymous
February 06, 2014
when capturing the user state I get an error x86 scanstate not valid in minint - Anonymous
February 06, 2014
hi Michael, and troubleshoot the usmt but after capturing the user gives me the error because it uses winpe 5.0 I can do the same procedure to replace the winpe winpe 5.0 4.0 whole folder? - Anonymous
February 28, 2014
Josh Condie – Below is a repost from a January 9th BLOG posted by Michael Niehaus in our Windows Product - Anonymous
March 15, 2014
À quelques jours de la fin du support de Windows XP, j’espère arriver après la bataille pour une majorité - Anonymous
April 09, 2014
Does USMT support XP in latest ADK Update or is XP support ditched alltogether? - Anonymous
April 23, 2014
Do you need to back-level bcdedit.exe if you are migrating from XP to Windows 7? When PE is prestaged in the Restart in PE step in the task sequence, I know you need to back-level bootsect.exe but what about BCDEdit and bootmgr? - Anonymous
April 26, 2014
Hi Michael,
I am using the same process as per you. USMT taking backup properly but its dosen`t restore the user data to its original Locations. suppose that we have 2-3 (C,D,E) local disk in XP machine , after the Windows 8.1 deployment in C- drive.
Data of D drive also seen in E drive and data of E drive also seen in D drive after restoring the user state.
How can we solve this?
Thanks for such great Blog... - Anonymous
May 14, 2014
You are a deployment guru, thank you very much! - Anonymous
June 15, 2014
Estimado, en este proceso Windows kit 8.1 integra USMT5 y no es compatible con Windows XP que solucion puedes dar acerca de este problema. - Anonymous
June 24, 2014
Pingback from Still Using Windows XP? It's Time to Upgrade Your Operating System | Quickbooks