We all know that the support for Windows XP is being dropped by Microsoft on the 8th of April 2014, more information can be found here. In this post I’ll go through the necessary configuration, requirements and steps to successfully migrate from Windows XP Professional to Windows 8.1 Enterprise. Our approach will be that we’re not gonna reuse the old hardware that is running Windows XP Professional. Instead we’ll be concentrating on installing Windows 8.1 Enterprise on new hardware and migrate user data from Windows XP Professional.

This approach is also referred to as a Replace scenario, out with the old hardware and in with the new. On a high level overview, we’ll be performing the following:

  • Configure our ConfigMgr 2012 R2 Primary Site server to support this OSD scenario
  • Migrate user data from the old Windows XP Professional machine to a State Migration Point
  • Install a new Windows 8 Enterprise machine and during that installing restore the user data from Windows XP Professional

Overview

  • Environment requirements
  • Capable data that can be migrated
  • Configure the State Migration Point
  • Create a Windows 8.1 Enterprise reference image
  • Import the Windows 8.1 Enterprise reference image
  • Prepare the USMT packages
  • Create a migration task sequence for Windows XP Professional
  • Create a Windows 8.1 Enterprise installation task sequence
  • Update CustomSettings.ini
  • Create collections used for migration
  • Deploy the task sequences
  • Create a Computer Association
  • Run the migration task sequence
  • Run the installation task sequence

In this blog post I’ll cover almost all grounds on how to successfully migrate from Windows XP Professional to Windows 8.1 Enterprise. But there are a few areas which I’ll not be cover, and they are:

  • Drivers
  • Software Updates
  • Applications / Packages (USMT and MDT specific packages will be covered)

Environment requirements

In order to use ConfigMgr 2012 R2 for a successful migration, we need the following in place:

  • A functioning ConfigMgr 2012 R2 stand-alone Primary Site server (a Primary Site server in an hierarchy will of course also work)
  • Microsoft Deployment Toolkit 2013 installed and integrated with the Primary Site server
  • MDT Toolkit Package created on the Primary Site server
  • State Migration Point Site System role (either locally on the Primary Site server or on a remote Site System server)
  • A Windows 8.1 Enterprise Operating System Image created with MDT 2013
  • Default boot images for ConfigMgr 2012 R2 (WinPE 5.0)
  • An USMT version 5.0 package and an USMT version 6.3 package
  • Either a PXE enabled Distribution Point or Boot Media
  • A migration task sequence used to migrate user data from Windows XP Professional to the State Migration Point
  • An installation task sequence used to install Windows 8.1 Enterprise and collect the user data
  • All the Windows XP professional systems that will be migrated needs to have the ConfigMgr 2012 client installed

Capable data that can be migrated

User data gathered from Windows XP Professional with USMT 5.0,  can be restored by using USMT 6.3. The default configuration will only restore files and folders, but not any settings such as the desktop background or regional settings. I’ve not yet been able to find any great documentation on this subject, so if you’re aware of any, please let me know.

Configure the State Migration Point

In this post I’ll assume that you don’t have any State Migration Points available, so the focus here will be how to install it on the Primary Site server.

1. Go to the Administration node in the ConfigMgr console.
2. Expand Site Configuration and click on Servers and Site System Roles.
3. Right-click on the Primary Site server (in my case CM01.contoso.com), and select Add Site System Roles.
4. On the General page, click Next (unless your environment requires some dedicated Site System Installation account).
5. On the Proxy page, click Next.
6. In the Available Roles selection on the System Role Selection page, select State Migration Point and click Next.

81_1

7. On the State migration point page, click on the yellow star.
8. In the Storage Folder Settings window, enter a location to where the State Migration Point data should be stored. In my environment I’ve chosen to store the data in D:\SMPStore. Choose a maximum number of clients that your environment supports. It’s recommended to have more than a single State Migration Point if you’re going to migrate several thousands of computers, so keep this in mind when you set the maximum number of clients. Change the minimum free space to an acceptable number, I’ve set it to 1 GB. Click OK.

81_2

9. Check the Deletion Policy settings. I’d recommend to keep the user data for at least a couple of days if you should run into any problems with installing the new computer with Windows 8.1 Enterprise. I’ve choosen 7 days. Click Next when ready.

81_3

10. On the Boundary Groups page, select the Boundary Group that you’d want to associate with this State Migration Point. Clients locate a State Migration Point the same way the locate a Distribution Point, by Boundary Groups. If there are several State Migration Points within the same boundary, the client will choose the one with most available disk space. Choose wisely when you add the Boundary Groups here, otherwise your clients will not be able to access the State Migration Point. Click Next when ready.

81_4

11. On the Summary page, click Next.
12. On the Completion page, click Close.

If we now open up Windows Explorer and browse to where location where the State Migration Point files is located, we can see that the folder name we choose was created and inside that a folder called SMPSTORED_xxxxx$ was also created. The previous folder name will vary on each setup.

We now have the State Migration Point in place, lets continue.

Create a Windows 8.1 Enterprise reference image

I’ve created a separate post on this topic a while back that you’d have to go through first before you can continue with this post. You’ll find the post on how to create a Windows 8.1 Enterprise reference image here:

Here is an optional post that I recommend:

Import the Windows 8.1 Enterprise reference image

When you have created the reference image, we need to import it into ConfigMgr 2012 R2. First off we need to copy the WIM file to the Content Library. I’ve created the following folder structure in my Content Library for storing reference images:

\\CM01\ContentLibrary$\OSD\ReferenceImages

1. Copy the reference image to your Content Library.

58_1

2. Open the ConfigMgr console and go to Software Library -> Operating Systems.
3. Right click on Operating System Images and choose Add Operating System Image.

58_2

4. Enter the path to the WIM file you copied to the Content Library. Click Next.

58_3

5. Enter the following in the specified fields and click Next afterwards:

Name: Windows 8.1 Enterprise x64
Version: 1.0
Comment: Windows 8.1 Enterprise x64 reference image created with MDT 2013

58_4

6. On the Summary page, click Next.
7. On the Completion page, click Close.
8. Right-click on the newly imported Operating System Image and select Distribute Content.
9. Complete the Distribution Content wizard. It’s important that you distribute the Operating System Image to Distribution Points (or even Distribution Point Groups) so that the new systems are able to download the content during OSD.

That covers the reference image creation and importing it into ConfigMgr, let’s continue.

Prepare the USMT packages

ConfigMgr 2012 R2 requires Windows ADK 8.1 that includes User State Migration Tool (USMT) version  6.3. This version is not supported to run on Windows XP Professional, therefor we need to create a supported USMT package for migrating files and settings from Windows XP Professional.

USMT 5.0

To get your hands on the USMT version 5.0 you’d need to download and install Windows ADK 8.0 (available here). I’d suggest that you install this on a dedicated workstation or server, and it’s important that no other versions of the ADK is currently installed.

1. On the dedicated workstation or server, run the adksetup.exe and choose the default installation path. Click Next.
2. Choose whether you’d like to join the CEIP program or not and click Next.
3. Accept the License Agreement and click Accept.
4. Select only the User State Migration Tool (USMT) feature and click Install.

81_5

5. Once the installation has completed, click Close.
6. Browse to the following location:

C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool

7. Copy both the x86 and amd64 folders to a location in your Content Library. In my lab environment my Content Library is located on my D: drive of the Primary Site server and shared as \\CM01\ContentLibrary$. I’d recommend that you create a folder structure in the Content Library if you haven’t already. In this case I’ll copy the two x86 and amd64 folders to \\CM01\ContentLibrary$\OSD\Packages\USMT5.0.

81_6

8. Open the ConfigMgr console, go to Software Library and expand Application Management. Right-click on Packages and choose Create Package.
9. On the Package page, enter the following information:

Name: USMT 5.0
Description: Used to support Windows XP Professional migrations scenarios
Manufacturer: Microsoft
Language: <blank>
Version: 5.0

Put a check mark in This package contains source files and click on the Browse button. In the Source folder text field, enter the UNC path to where you stored the copied USMT 5.0 files. In my case this will be \\CM01\ContentLibrary$\OSD\Packages\USMT5.0. Click on OK and then on Next when ready.

81_7

10. On the Program Type page, select Do not create a program and click Next.

81_8

11. On the Summary page, click Next.
12. On the Completion page, click Close.
13. Right-click on the newly created USMT 5.0 package and select Distribute Content.
14. On the General page, click Next.
15. On the Content Destination page, select to distribute the content to either Distribution Points or Distribution Point Groups. In my lab environment I’ve only got a single Distribution Point Group, so I’ll go with that. Keep in mind that it’s important that you distribute the package correct so that clients will be able to access the content when used in a task sequence at a later stage. Click Next when ready.

81_9

16. On the Summary page, click Next.
17. on the Completion page, click Close.

We have not successfully created the USMT 5.0 package that we’ll use to gather the user data from the Windows XP Professional systems.

USMT 6.3

The USMT version 6.3 is created by default upon either an upgrade or installation of ConfigMgr 2012 R2. So in this case there’s not really much that we have to do in order to make use of that package, except for knowing where it’s located in the console and to distribute it.

1. Open the ConfigMgr console, go to Software Library and expand Application Management.
2. Click on Packages.
3. By default the User State Migration Tool for Windows 8.1 package is located in the root of Packages.

81_10

4. This package would have to be distributed as well. Follow the same instructions as for the USMT 5.0 package on how to distribute a package.

Now that we have both USMT packages, lets continue.

Create a migration task sequence for Windows XP Professional

This task sequence will be used to scan for user data on the Windows XP Professional systems. It will be deployed to a collection of Windows XP Professional systems so that it’s only available for the applicable systems.

Creating the task sequence

1. Open the ConfigMgr console, go to Software Library, expand Operating Systems.
2. Right-click on Task Sequences and select Create Task Sequence.
3. On the Create New Task Sequence page, select Create a new custom task sequence and click Next.

81_11

4.  On the Task Sequence Information page, enter the following:

Task sequence name: Scan for User Data – Windows XP
Description: This task sequence is used to scan for user data that will be stored on the State Migration Point

Do not select any boot image. Click Next when ready.

81_12

5. On the Summary page, click Next.
6. On the Completion page, click Close.

Adding steps to the task sequence

Since we created a custom task sequence, there will be no steps added to it by default. Since we’re only gonna scan for user data and then upload the data to the State Migration Point, this is exactly what we want.

1. Right-click on the newly created task sequence called Scan for User Data – Windows XP and select Edit.
2. Click on AddUser State and choose Request State Store.
3. Click on AddUser State and choose Capture User State.
4. Click on AddUser State and choose Release State Store.

81_13

We’ve now added the necessary steps to the task sequence, let’s continue by configuring them.

Configuring the steps added to the task sequence

1.  Select the Request State Store step. In the Properties tab, go through the configuration and decide if you need to make any changes, I recommend to leave the defaults.
2. Select the Capture User State step. In the Properties tab, click on Browse and select the USMT 5.0 package that we created earlier. Remember, this is the package that is supported to run on Windows XP Professional, USMT 6.3 is not supported. Select Customize how user profiles are captured and click on Files. In the File name field, enter MigDocs.xml and click on Add. Again in the File name field, enter MigUser.xml and click Add. Click on OK.

81_14

81_15

Leave the rest of the configuration as default. If you experience file copying issues when you try to execute this task sequence, try to change to Capture by using Volume Copy Shadow Service (VSS).
3. Select the Release State Store step. In the Properties tab, notice that there’s nothing to configure here.
4. Click on Apply and then OK.

That’s all we have to do with the migration task sequence for Windows XP Professional. Let’s continue.

Create a Windows 8.1 Enterprise installation task sequence

This task sequence will install the captured Windows 8.1 Enterprise reference image and restore the user data. Here we’ll be creating a MDT task sequence, so it’s important that you have installed and integrated MDT 2013 with your Primary Site server. MDT 2013 can be installed locally on the Primary Site server, which is recommended.

1. Open the ConfigMgr console and go to the Software Library, expand Operating Systems. Right-click on Task Sequences and select Create MDT Task Sequence.
2. On the Choose Template page, select Client Task Sequence. Click Next.
3. On the General page, enter the following:

Task sequence name: Windows 8.1 Enterprise x64 – Install
Task sequence comments: This task sequence is used to install Windows 8.1 Enterprise x64 and to restore user data for associated systems

Click Next.

4. On the Details page, choose to Join a domain and enter the domain FQDN. Click Set to specify valid credentials to perform the domain join. Under Windows Settings, specify a User name and Organization name, leave the Product key field empty. Click Next.

81_16

5. Select This task sequence will never be used to capture an image on the Capture Settings page, click Next.
6. Make sure that Specify an existing boot image package is selected on the Boot Image page and click Browse. Select the Boot image (x64) 6.3.9600.16384 en-US and click OK. Click Next.
7. Select Create a new Microsoft Deployment Toolkit Files package and specify an UNC path to an empty folder in your Content Library. In my lab environment I’ve created a folder in:

\\CM01\ContentLibrary$\OSD\MDT\Toolkit

81_17

Click Next when ready.

8. On the MDT Details page, enter the following:

Name: MDT Toolkit
Version: 2013
Language: <empty>
Manufacturer: Microsoft
Comments: <empty>

81_18

Click Next when ready.

9. On the OS Image page, click Browse next to Specify an existing OS image. Select the Windows 8.1 Enterprise x64 image and click OK. Click Next.
10. Select Perform a “Zero Touch Installation” OS deployment, with no user interaction on the Deployment method page and click Next.
11. On the Client Package page, click Browse next to Specify an existing ConfigMgr client package. Select Microsoft Corporation Configuration Manager Client Package and click OK. Click Next.
12. On the USMT Package page, click Browse next to Specify an existing USMT package. Select Microsoft Corporation User State Migration Tool for Windows 8 6.3.9600.16384 och click OK. Click Next.
13. Select Create a new settings package on the Settings Package page. Specify an UNC path to an empty folder in your Content Library. In my lab environment I’ve created a folder in:

\\CM01\ContentLibrary$\OSD\MDT\Settings

81_19

Click Next when ready.

14. On the Settings Details page, enter the following:

Name: MDT Settings
Version: 2013
Language: <empty>
Manufacturer: Microsoft
Comments: <empty>

81_20

Click Next when ready.

15. Click Next on the Sysprep Package page.
16. On the Summary page, click Next.
17. On the Confirmation page, click Finish.

Distribute created content

Now that we’ve created the task sequence that will be used to deploy Windows 8.1 Enterprise, we’ll  have to distribute the content created during the wizard. As you may have noticed, we created twp packages:

  • MDT Settings
  • MDT Toolkit

1. Go to the Software Library node and expand Application Management. Click on Packages and you should see the two packages that we created.

81_21

2. Right-click on each of the packages and choose Distribute Content. Complete the Distribute Content Wizard by selecting to either distribute the packages to a Distribution Point or a Distribution Point Group.

Now that you’ve distributed both of the new packages, let’s continue.

Edit the task sequence

As Johan Arwidmark has written in this post, the Client Task Sequence in MDT 2012 Update 1 is broken. Now you may think that we’re using MDT 2013, but it seems that they’ve not fixed the issue in the latest version. So we have to follow Johan’s fix to solve the problem.

1. Go to the Software Library node, expand Operating Systems and select Task Sequences.
2. Right-click on the Windows 8.1 Enterprise x64 – Install task sequence and select Edit.
3. Scroll down to the State Restore group and locate Set Status 5 right before Connect to State Store.
4. Select Set Status 5 and click AddUser State and choose Request State Store.
5. In the Properties tab of the Request State Store, select Restore state from another computer.

81_22

6. Click on the Options tab. Click on Add Contidion and choose Task Sequence Variable. Enter the following:

Variable: USMTLOCAL
Condition: not equals
Value: True

81_23

Click OK.

Put a check mark in the Continue on error box.

81_24

6. Select the Restore User State step, click on AddUser StateRelease State Store.
7. Add the same condition for the Release State Store step as you added for the Request State Store step.
8. Select the Restore User State step again. In the Properties tab select Customize how user profiles are restored and click Files. We now need to specify the same files that we used in the Scan User Data – Windows XP task sequence. In the File name field, enter MigDocs.xml and click Add. Again in the File name field enter MigUser.xml and click Add. Click OK.

81_25

9. Locate the Install group and select the step called Set Variable for Drive Letter. Change this from False to True.
10. Click Apply and then OK to save the task sequence.

Optional configuration

Since I’m running this in a lab environment on virtual machines, I’ll disable the BitLocker functionality in the task sequence. In a real world scenario, you should evaluate to keep it turned on or turn it off. Depending on your BitLocker strategy, extra configuration my be required.

Update CustomSettings.ini

In order for our CustomSettings.ini available in the MDT Settings package, we need to modify it a bit to work with our scenario. The configuration below is the one that we’ll be using. You’ll probably notice that I’ve included the DefaultGateway001 under Priority and then created a section for a gateway in my lab environment (the [192.168.3.200]). I’ve added this to show you how easy it is to control language settings in the CustomSettings.ini. If we would deploy our Windows 8.1 Enterprise task sequence to a computer on the 192.168.3.0/24 network where the default gateway is 192.168.3.200, our language settings would be set for Swedish as well as the time zone.

You should of course change this or remove the parts that you don’t want. What’s important to keep though is the whole [Default] section. In my lab environment, the CustomSettings.ini is found in this location:

\\CM01\ContentLibrary$\OSD\MDT\Settings

[Settings]
Priority=Default,DefaultGateway001
Properties=MyCustomProperty

[192.168.3.200]
UILanguage=sv-SE
UserLocale=sv-SE
KeyboardLocale=sv-SE
TimeZoneName=W. Europe Standard Time

[Default]
OSInstall=Y
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES

ScanStateArgs=/v:5 /o /c
LoadStateArgs=/v:5 /c /lac /lae

DeploymentType=NEWCOMPUTER
SLShare=\\CM01\Logs$

As a side note, if you have any local accounts on the Windows XP Professional computer, these will created as local accounts on the Windows 8.1 Enterprise computer as well since we’ve defined the /lac and /lae parameters on the LoadStateArgs variable.

Since we’ve now updated the CustomSettings.ini, we’d need to update the MDT Settings package.

1. Go to the Software Library node, expand Application Management and click on Packages.
2. Right-click on the MDT Settings package and click Update Distribution Points.
3. Click OK in the window that appears.

81_46

Create collections used for migration

In order to control the deployment of the two task sequences that we’ve created so far, it’d be wise to create two collections as well . Keep in mind that in your environment, you may need to create more collections depending on how you want to target the deployment to your clients. But for this scenario where we only have a small group of Windows XP Professional clients that needs to be migrated, two collections will be enough.

We’ll create the following two collections:

  • All Windows XP Professional Systems
  • OSD – Windows 8.1 Enterprise – Install

All Windows XP Professional Systems

The purpose of this collection is to collect all systems running Windows XP Professional, so that we can deploy the Scan for User Data – Windows XP task sequence to those systems.

1. Go to the Assets and Compliance node, right-click on Device Collections and select Create Device Collection.
2. On the General page in the Name field, enter All Windows XP Professional Systems. Click Browse next to Limiting collection and select All Systems. Click OK. Click Next when ready.

81_26

3. On the Membership Rules page, click Add Rule and select Query Rule.
4. The Query Rule Properties window now opens. In the Name field, enter All Windows XP Professional Systems.
5. Click on Edit Query Statement and then click on the Criteria tab.
6. Click on the yellow star. Click on the Select button and in the Attribute class drop down menu, select Operating System. In the Attribute drop down menu, select Caption. Click OK.

81_27

7. In the Criterion Properties window, choose is like from the Operator drop down menu. In the Value field, enter Microsoft Windows XP Professional. Click OK when ready.

81_28

8. In the Query Statement Properties window, click OK. Back in the Query Rule Properties window, click OK. Click Next in the Create Device Collection window. If you’d like to update the collection membership on a more frequent basis than the default 7 days, click on Schedule and configure what’s best in your environment.

81_29

9. On the Summary page, click Next.
10. On the Completion page, click Close.

OSD – Windows 8.1 Enterprise – Install

This collection will be used to import computer information about the new hardware that we’ll install Windows 8.1 Enterprise on, so this collection should not contain any members.

1. Go to the Assets and Compliance node, right-click on Device Collections and select Create Device Collection.
2. On the General page in the Name field, enter OSD – Windows 8.1 Enterprise – Install. Click Browse next to Limiting collection and select All Systems. Click OK. Click Next when ready.

81_30

3. On the Membership Rules page, click Next. Click OK in the window that appears.
4. On the Summary page, click Next.
5. On the Completion page, click Close.

We should now have two new collections in the root of Device Collections:

81_31

Deploy the task sequences

Now we need to make the task sequences available for all the Windows XP Professional clients, and as well for the Windows 8.1 Enterprise clients that are to be installed on the new hardware.

Scan for User Data – Windows XP

1. Go to the Software Library node, expand Operating Systems and select Task Sequences.
2. Right-click on Scan for User Data – Windows XP and select Deploy.
3. On the General page, click on Browse next to the Collection field. Select the All Windows XP Professional Systems and click OK. Click Next when ready.

81_32

4. On the Deployment Settings page, leave the defaults and click Next.
5. Leave the defaults on the Scheduling page and click Next.
6. Leave the defaults on the User Experience page and click Next.
7. Leave the defaults on the Alerts page and click Next.
8. Leave the defaults on the Distribution Points page and click Next.
9. On the Summary page, click Next.
10. On the Completion page, click Close.

Windows 8.1 Enterprise x64 – Install

1. Go to the Software Library node, expand Operating Systems and select Task Sequences.
2. Right-click on Windows 8.1 Enterprise x64 – Install and select Deploy.
3. On the General page, click on Browse next to the Collection field. Select the OSD – Windows 8.1 Enterprise – Install and click OK. Click on OK in the window that appears, the collection is supposed to not contain any members at this point. Click Next when ready.

81_33

4. On the Deployment Settings page, under Make available to the following select Only media and PXE. Click Next.
5. Leave the defaults on the Scheduling page and click Next.
6. Leave the defaults on the User Experience page and click Next.
7. Leave the defaults on the Alerts page and click Next.
8. Leave the defaults on the Distribution Points page and click Next.
9. On the Summary page, click Next.
10. On the Completion page, click Close.

Create a Computer Association

A computer association in ConfigMgr is used when migrating user data. In our scenario where we’re replacing the hardware and migrating user data from Windows XP Professional to Windows 8.1 Enterprise, we need to create a Computer Association between the two systems that we’ll migrate the data between. In my lab environment I have a virtual machine running Windows XP Professional called WINXP01. I also have another virtual machine that is called CL02, which is intended to for Windows 8.1 Enterprise. We’d need to create an association between these two computers if we’d want to migrate user data between them.

But first, we’d need to import the CL02 computer into ConfigMgr. This can be done in various ways, and I like to do this with PowerShell. You can download this script from here. I’ve placed it in C:\Scripts on the Primary Site server.

Import computer information

1. Open an elevated PowerShell console and browse to C:\Scripts.
2. Run the following command:

.\Import-CMComputerObject.ps1 -SiteServer CM01 -SiteCode PS1 -ComputerName CL02 -MACAddress 00:15:5D:00:03:2B -CollectionName "OSD - Windows 8.1 Enterprise - Install"

Keep in mind to change the values so that it would work in your environment.

81_34

Create the association

1. Go to the Assets and Compliance node, right-click on User State Migration and select Create Computer Association.
2. In the Source computer field, enter the name of the Windows XP Professional computer (in my lab environment that would be WINXP01).
3. In the Destination computer field, enter the name of the Windows 8.1 Enterprise computer that we just recently imported (CL02 in my lab environment).

81_35

4. Click on the User Accounts tab. In the Migration behavior drop down menu, select an option that suits your migration needs. In this scenario we’ll migrate only specific domain user accounts, so we’ll select Capture and restore specified user accounts. Click on the yellow star and search for the user account(s) that we want to migrate. Keep in mind though, that if you select to capture and restore all user accounts including local ones, it would take up more disk space on the State Migration Point, so be cautious. In additional to that, you’d need to know that since we’re using the /lac and /lae parameters for the USMT LoadStateArgs, any local accounts on the Windows XP Professional computer will be created on the Windows 8.1 Enterprise computer as well. Click OK when ready.

81_36

Now that the Computer Association is in place, let’s go ahead and continue.

Run the migration task sequence

We’ll now be executing the Scan for User Data – Windows XP task sequence on the Windows XP Professional client.

1. Log on to your Windows XP Professional computer. It doesn’t matter which user that logs on.
2. Go to StartAll ProgramsMicrosoft System Center 2012 R2Configuration Manager and open Software Center.
3. Make sure that Scan for User Data – Windows XP is selected and click Install.

81_37

4. Click Install Operating System.

81_38 

5. The task sequence will not begin collection information about that should be copied to the State Migration Point, and when done start to upload it the data.

81_39

6. Once the task sequence has completed, the user data migration is done.

81_40

If you take a look under User State Migration in the ConfigMgr console, you’ll see that the Migration Status for the computer association has changed from Not started to In progress.

81_41

We can now go ahead and start our Windows 8.1 Enterprise client.

Run the installation task sequence

1. Start the Windows 8.1 Enterprise computer and make sure that it PXE boots. Press F12 when asked.
2. Once that WinPE has loaded and depending on your PXE configuration on the Distribution Point, either provide a password if needed or click Next.
3. When asked to select a task sequence to run, select Windows 8.1 Enterprise x64 – Install and click Next.

81_42

4. After a while in the task sequence, you’ll see that it will apply the reference image:

81_43

5. Once the whole task sequence has completed and nothing returned an error, log on as one of the migrated users from the Windows XP Professional system. Here I’ve logged on with a domain user called nickolaja:

81_44

6. This picture shows you how nickolaja user desktop looked like on the Windows XP Professional system:

81_45

That’s all! We’ve now successfully migrated from Windows XP Professional to Windows 8.1 Enterprise by using the replace scenario (new hardware).

(352)

Nickolaj Andersen

Principal Consultant and Enterprise Mobility MVP since 2016. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows devices and deployments including automation. Currently working for TrueSec as a Principal Consultant. Awarded as PowerShell Hero in 2015 by the community for his script and tools contributions. Creator of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService to name a few. Frequent speaker at conferences and user groups.

comments
  • Håkan
    Posted at 08:33 February 23, 2014
    Håkan
    Reply
    Author

    Thanks. Keep up the good work.

    Håkan

    • Nickolaj
      Posted at 08:43 February 23, 2014
      Nickolaj
      Reply
      Author

      Hi Håkan,

      Thank you for the kind words, I’ll do my best! 🙂

      Regards,
      Nickolaj

  • Syed
    Posted at 08:30 February 25, 2014
    Syed
    Reply
    Author

    Have you tried in Hyper V or VM workstation ?

    • Nickolaj
      Posted at 10:18 February 25, 2014
      Nickolaj
      Reply
      Author

      Hi Syed,

      I’ve only tried this in Hyper-V. I don’t have a license for VMWare Workstation unfortunately. I guess that you’d have to deal with drivers on the VMWare platform, but don’t take my word for that.

      Regards,
      Nickolaj

  • RBogdan
    Posted at 07:36 March 25, 2014
    RBogdan
    Reply
    Author

    Hello Nickolaj, awesome tutorial, thank you.

    In the case of an “in place” migration, do I need to change something in the Task Sequence or is the same ?

    Cheers.

    • Nickolaj
      Posted at 08:21 March 25, 2014
      Nickolaj
      Reply
      Author

      Hi RBogdan,

      Thank you for the kind words!

      Are you referring to doing a In-place Refresh of the systems? By that I mean do you aim to keep the current hardware and install Windows 8.x on that? If so, I’d recommend that you have a single task sequence instead and that you use it ‘offline’ (doing all USMT related tasks in WinPE). This would allow for greater success since the users really can’t interfere with the process. Look into using USMT with hardlinking, that you probably be your best option unless you want to transfer all the data to a State Migration Point.

      Regards,
      Nickolaj

  • Matt Burcke
    Posted at 01:05 April 11, 2014
    Matt Burcke
    Reply
    Author

    I just wanted to pass along the fact that your guide is above and beyond the best one (and the only one that worked for me) that captures user state on an XP workstation and loads that data into a W7 image. Excellent job! My only hiccup is that the drive letter after imaging came over as D: so I have some tweaking to do in the task sequence. Also note for others, I couldn’t do this without the MDT package installed onto the SCCM server and you need to integrate MDT into SCCM. Check the program that gets installed that does this. Needs to be done separately before starting this…

    • Nickolaj
      Posted at 05:35 April 11, 2014
      Nickolaj
      Reply
      Author

      Hi Matt,

      I’m overwhelmed by your words, thank you.

      Regarding the D: issue, open the task sequence and go to the ‘Install’ section. Look for a step called ‘Set Variable for Drive Letter’ and change the value from ‘False’ to ‘True’. I missed this part in the guide and would have to add it.

      Regards,
      Nickolaj

  • Matt Burcke
    Posted at 20:13 April 11, 2014
    Matt Burcke
    Reply
    Author

    Again, thanks. Changing that value worked great.

    • Nickolaj
      Posted at 20:18 April 11, 2014
      Nickolaj
      Reply
      Author

      Great to hear! I’ve added that information to the post now as well.

      Regards,
      Nickolaj

  • Frank
    Posted at 11:12 April 12, 2014
    Frank
    Reply
    Author

    A really great guide! Thanks for sharing.

    • Nickolaj
      Posted at 01:21 April 13, 2014
      Nickolaj
      Reply
      Author

      Hi Frank,

      Thank you very much! I hope you could put this into good use 🙂

      Regards,
      Nickolaj

  • Rasheedah
    Posted at 02:33 April 14, 2014
    Rasheedah
    Reply
    Author

    This was great thanks for taking the time to post this. One question, is there a way to add multiple computer associations at once?

    • Nickolaj
      Posted at 13:06 April 22, 2014
      Nickolaj
      Reply
      Author

      Hi Rasheedah,

      Thank you 🙂

      Yes, that would be possible. If you’d like such a script, contact me by sending an email and I’ll look into it. You’ll find my email address on the About page.

      Regards,
      Nickolaj

  • Jan
    Posted at 18:10 April 30, 2014
    Jan
    Reply
    Author

    I still running Windows 95. its working fine…he he

  • Karl-Heinz Voregger
    Posted at 21:40 April 30, 2014
    Karl-Heinz Voregger
    Reply
    Author

    Any idea how to migrate from Windows XP to Windows 7???

    //Karl-Heinz

  • Frank.B
    Posted at 20:07 August 9, 2014
    Frank.B
    Reply
    Author

    Wow very informative, thanks…

    Question,

    Doing an in-place upgrade, how long would the process take? Obviously it would depend on the amount of user data… but what might be some averages, so that I can better plan this in a business environment.

    My requirement will be for approximately 2500 machines, XP to 7.

    Thanks in advance,

    Frank.B

  • Nasir YILMAZ
    Posted at 19:47 October 23, 2014
    Nasir YILMAZ
    Reply
    Author

    Im having PXE boot aborted. booting to next device errors
    do you have any idea ?

    Thanks

    DHCP message:
    Operation: BootReply (2)
    Hardware Address type: 1
    Hardware Address Length: 6
    Hop Count: 0
    Transaction ID: 9C53D672
    Seconds Since Boot: 65535
    Client IP Address: 192.168.001.112
    Your IP Address: 000.000.000.000
    Server IP Address: 192.168.001.090
    Relay Agent IP Address: 000.000.000.000
    Hardware Address: 00:21:70:d6:53:9c:
    BootFileName: smsboot\x86\wdsnbp.com
    Magic Cookie: 63538263
    Options:
    Type = 53 DHCP Message Type: 5=DHCPAck
    Type = 54 Server idenitifier: 192.168.001.090
    Type = 97 UUID: 0044454c4c31001034805ac4c04f574631
    Type = 60 ClassIdentifier: PXEClient Type = 250 02010105040000000203020014040200ba062c436f6e66696775726174696f6e204d616e61676572206973206c6f6f6b696e6720666f7220706f6c6963792e0b0101

  • keywan
    Posted at 20:29 November 25, 2014
    keywan
    Reply
    Author

    Hi,

    Have you any Idea how I can upgrading Windows 7 x64 Ultimate to Windows 8.1 x64?

    BR,

    Keywan

  • keywan
    Posted at 20:32 November 25, 2014
    keywan
    Reply
    Author

    Hi again me,
    I have to tell you that I following your guide for upgrading Windows 7 to Windows 8.1, but I always get the error message 0x80070057

    Regards

  • James
    Posted at 14:32 April 10, 2015
    James
    Reply
    Author

    Excellent document, most likely one of the best I’ve seen. I do have a question around an inplace Win7 to Win7 refresh. The story, the client wishes not to save any data, so USMT is not a requirement (not added to TS). The client does not want to haave to remove the computername from AD/CM everytime they wish to image the system. What is the best mechanism to support such a request?

    Thank you and keep the great work.

    • Nickolaj
      Posted at 20:54 April 20, 2015
      Nickolaj
      Reply
      Author

      Hi James,

      The DDR (Data Discovery Record) of the computer does not have to be removed from CM when you re-image a system, you just need to clear PXE deployments, if there are any recently executed deployments for OSD. As for Active Directory, you should not need to remove that either, if you have a domain join account with the proper permissions:

      http://blog.coretech.dk/mip/creating-a-joindomain-account-for-use-with-sccm-osd/

      Regards,
      Nickolaj

  • Amir
    Posted at 09:57 August 20, 2015
    Amir
    Reply
    Author

    Simply Excellent Article and keep up the good work…

  • Leave a Reply