Posts Tagged ‘Refresh’

So a while back I implemented a working Windows XP to Windows 7 refresh using Configuration Manger 2012 R2, some of you may be aware that this was an issue initially as there was a bug with the client being unable to stage the boot image just prior to the initial restart into WinPE. To address this a hotfix was released however the whole process had a lot of caveats to it working and was generally painful to implement.

Good news, nothing has changed with that! So last week I was thinking maybe my existing process can be used to achieve a Windows XP to Windows 10 refresh, surely that’s possible assuming that the original change Microsoft made in the client to support staging a Windows PE 3.1 boot image had been retained in the latest Configuration Manager 2012 R2 SP1 client? Well I’m happy to report that with a few changes this is indeed possible, although totally unsupported my Microsoft!

A note before proceeding. This is not supported by Microsoft and I take no responsibility for any adverse outcomes if you choose to implement this in a production environment 🙂

So with that out of the way how do we go about this?

Well the main problem with trying to do this is the issue of staging the boot image to Windows XP – so make sure that you have a Windows PE 3.1 boot image and that you have a Configuration Manager client on your Windows XP OS that is 5.00.8239.1203 or higher. If you get this wrong, you will see an error in the logs relating to an inability to stage the image as per the below screen grab. The other main issue your likely to run into is a lack of drivers in your Windows PE 3.1 boot image, so spend some time making sure you have all of your hardware models NIC and storage drivers added to the boot image that are required.


A few assumptions are going to be made by me here.

  • You have a working Configuration Manager 2012 R2 SP1 site with Cumulative Update 1 installed + hotfix KB3084586
  • You have installed the Windows ADK 10 and have a working USMT 10 package
  • You have installed MDT 2013 Update 1 and have integrated it with your Configuration Manager instance
  • You have a working USMT 4 package (You can download the Windows AIK to grab the USMT files, usually in c:\Program Files\Windows AIK\Tools\USMT)
  • Your Windows XP machine has a working, active Configuration Manager agent installed at version 5.00.8239.1203 or higher
  • You have a working custom Windows PE 3.1 x86 boot image with your hardware model network and storage drivers injected into it – follow this guide for building your own boot image. You can use DISM to inject drivers in a mounted wim file with this documentation. Remember that you will need to inject the correct driver versions relevant to the PE 3.1 boot image, in most cases this will be the Windows XP equivalent for each of your hardware model types.
  • You have added this Windows PE 3.1 x86 boot image to your Configuration Manager environment and have replicated it to your Distribution Points


  • You have a Windows 10 reference image

The process

  • Create your USMT 4 package and distribute the package to your Distribution Points. As mentioned previously the source files can be obtained from the Windows AIK.


  • Create a new MDT Client Replace Task Sequence specifying your Win PE 3.1 boot image, MDT Files package, Windows 10 OS reference image, Client package, USMT 10 package and your Settings Package. Make sure that you add any driver packages, applications and other settings for your Windows 10 OS such as Start Menu Layout file import steps, etc. Also don’t forget to set a local administrator password, time zone and any other Task Sequence specific settings that need to be addressed.



  • Edit the newly created Task Sequence so that the Capture User State step runs your USMT 4 package. Even though Microsoft have documented that USMT 10 supports capturing files and settings from Windows XP, it fails with an execution error about scanstate.exe not being a valid Win32 Application. Note that you could use USMT 5.0 however I already had a working USMT 4.0 Files package so for this blog I have chosen to leave the version at this level. You can leave the Restore User State step as USMT 10 as it will restore the data from the Capture User State step.


  • Create a new collection for deployment and review your Task Sequence.
  • Check that your Windows XP client is running the correct Configuration Manager client version of 5.00.8239.1203 or higher and add your Windows XP client to the collection.







  • Review your results. Its worth mentioning that the User State Migration Process doesn’t restore the wallpaper settings between Windows XP and Windows 10 and I don’t believe this is possible. However I’m happy to be corrected on this one if anyone does manage to achieve this. It does however migrate the source jpg and I’ve just reset this as the background image.






OK well it’s not completely true to claim it’s a Zero Touch MDT solution however it is a fully automated Lite-Touch solution for upgrading your Windows XP computers to Windows 7 using MDT 2012 Update 1.

Some of you would be aware of the issue that occurred if you upgraded to Systems Centre Configuration Manager 2012 R2 – Basically the bootsect.exe included in the Windows ADK 8.1 isn’t compatible with Windows XP so you can’t stage a 2012 R2 boot file to a computer running a Windows XP Operating System. This basically meant no way to refresh XP systems with that version of Config Manager.

Microsoft has released a hotfix for this issue recently:

However there is an alternative to applying this update. You can still fall back to using MDT 2012 Update 1 and have a fully automated solution for upgrading any Windows XP instances you still have out in the wild using USMT to migrate the user data as part of the refresh process.

Here are the steps I followed so I didn’t have to apply this hotfix. I have small environment, only 1500 seats, so going down this path made more sense than messing with my production Configuration Manager 2012 R2 instance just to get back support for XP.

  1. Build up a fully patched Windows Server 2012 R2 instance (or your preferred supported OS). This can be running on your choice of hypervisor if you prefer.
  2. Install the Windows ADK 8.1  ( and install the Deployment Tools, User State Migration Tool (USMT) and the Windows Preinstallation Environment (Windows PE) options. Note there was a new version released so make sure you re-download if you have an older copy.
  3. Install MDT 2012 Update 1 ( Note that you cannot use MDT 2013 as it doesn’t support Windows XP.
  4. Create your Deployment Share and import your drivers, any applications, packages, OS wim files etc.
  5. Update your boot images with any required drivers.
  6. Update your Unattend.xml if required (I just re-used my Config Manager copy which saves a fair amount of time).
  7. Enable MDT Monitoring and create your Log folder and share.
  8. Test your refresh process before attempting any automation to ensure the upgrade process runs smoothly without any base problems such as missing drivers.
  9. Once you have your refresh Task Sequence working as expected we can look at updating our CustomSettings.ini file to automate the refresh process.
  10. Update your ini file – you can use my ini file settings as a guide.

Properties=MyCustomProperty, SavedJoinDomain


ScanStateArgs=/v:5 /o /c /ue:administrator /ue:%yourdomain%\adm* /uel:45
LoadStateArgs=/v:5 /c /lac

TimeZoneName=Tasmania Standard Time




Test your fully automated MDT Refresh scenario by running litetouch.vbs from the MDT Deployment Share. If working you should see the upgrade to your OS progress without any dialogue box prompts.

There are quite a few ways of actually kicking off the execution of the litetouch.vbs script, however I will leave this mechanism up to you.

Here’s a video of the finished refresh process which shows MDT processing the answers provided by CustomSettings.ini. I have also shown that the USMT hard-linking process is working. The TS then stages the boot image and reboots into WinPE and begins to overlay my Windows 7 corporate wim.