Share via


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.

  1. 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.)
  2. 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):
    image
  3. 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"
  4. 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).
  5. 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"
  6. 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…

ZTIUserState.zip

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