For the majority of people, the most important thing stored on a computer isn't its suite of applications. Instead, it's the user's data. Ensuring that all the crucial data stored on employees' old computers is properly migrated to their new computers is, at best, a tricky undertaking. In theory, organizations have strict policies that require users to store important data on file servers. But in reality, users often have their own method for storing data. Some people keep important files in meaningfully organized folder trees, whereas others keep everything in a single folder on their desktop.

Related: Windows XP Migration: Application Compatibility Toolkit

Most people have a preferred system for organizing important data. If their system works for them, you'll want to ensure that they can keep using it even if you're upgrading their operating system. Although in the best of all possible worlds people would follow company policy and store their files in a safe location, you need to plan the data migration under the assumption that this will be the exception rather than the rule.

Related: What Is Bogging Down Your Windows XP Migration Plans?

You could ask users to tidy up their data and transfer everything to an appropriate file share before you begin the migration. However, you're almost guaranteed to run into users who neglect to transfer all their files, as well as users who completely forget to transfer any files—instead assuming that their files will magically follow them as they move between computers.

In fact, this is the key to a successful migration. From the user's perspective, files do need to magically follow them from one computer to another. But you, as the IT professional, need to do all the dirty work in the background to make that magic happen.

Fortunately, Microsoft provides some free tools to assist you in migrating application data and settings from computers running Windows XP (and other more recent Windows client operating systems) to computers running Windows 8.1 or Windows 7. The Microsoft User State Migration Toolkit (USMT) is a set of command-line tools that allow you to extract settings and data from one computer and transfer them to another computer.

At USMT's most simple, you first run the ScanState tool (ScanState.exe) on the source computer to collect the data and settings to be migrated; then you run the LoadState tool (LoadState.exe) to import the migrated data and settings to the destination computer. USMT is part of the Windows Assessment and Deployment Kit (ADK), which you can download for free from Microsoft's website.

USMT can also be integrated with Microsoft System Center Configuration Manager task sequences. This means that you can include data migration steps when performing operating system upgrades. Using Configuration Manager and Windows ADK, it's possible to configure a task sequence that automates a wipe-and-load upgrade of a compatible computer running Windows XP so that it's running Windows 8.1 or Windows 7, while retaining most—if not all—of a user's data and settings.

The most current version is USMT 5.0. Previous versions support different client operating systems. The next version of USMT, which is likely to be released around the Windows 9 RTM timeframe, is unlikely to support Windows XP (which by that time Microsoft will no longer support).

USMT 5.0 supports running the ScanState component on the following operating systems:

  • Windows XP Professional (x86 and x64)
  • Windows Vista (x86) and (x64)
  • Windows 7 (x86) and (x64)
  • Windows 8.1/8 (x86) and (x64)

It's important to note that LoadState is supported only on computers running the following operating systems:

  • Windows Vista (x86) and (x64)
  • Windows 7 (x86) and (x64)
  • Windows 8.1/8 (x86) and (x64)

Although you can migrate data from a client running an x86 version of Windows to a client running an x64 version of Windows (and x86 client to x86 client, or x64 client to x64 client), you can't migrate data from a client running an x64 version of Windows to a client running an x86 version of Windows.

In addition to ScanState.exe and LoadState.exe, USMT includes several other files that you can either automatically generate and use, or specifically customize, to manage how data and settings are captured. These files include the following:

  • Config.xml. You can create this file by running ScanState.exe with the /genconfig option, which checks the source operating system to determine which operating system components can be migrated. You edit this file to specify which operating system components are migrated by USMT.
  • MigApp.xml. You can use MigApp.xml to specify which application settings should be migrated from the source operating system to the destination operating system. For example, use this file to configure migration of .pst files linked to Microsoft Outlook.
  • MigDocs.xml. You can configure MigDocs.xml to specify how ScanState.exe looks for files to be migrated on the source computer. You can run ScanState.exe with the /genmigxml switch to generate a list of files that will be migrated, which you can then edit as necessary so that important files that weren't included will be included when you perform the migration.
  • MigUser.xml. This file is similar to MigDocs.xml, except this file is used to specify which user files to migrate based on file name extension. It captures files in profile folders. By default, files with the following extensions are migrated: .qdf, .qsd, .qel, .qph, .doc*, .dot*, .rtf, .mcw, .wps, .scd, .wri, .wpd, .xl*, .csv, .iqy, .dqy, .oqy, .rqy, .wk*, .wq1, .slk, .dif, .ppt*, .pps*, .pot*, .sh3, .ch3, .pre, .ppa, .txt, .pst, .one*, .vl*, .vsd, .mpp, .or6, .accdb, .mdb, .pub. Files marked with the hidden and system attributes won't be migrated. Files and folders on drives marked as removable won't be migrated. In addition, the ACLs applied to files stored outside a user's profile folder won't be migrated when using MigUser.xml.

In general, you should avoid using both MigDocs.xml and MigUser.xml, because doing so will result in a duplication of captured files. The rule of thumb in choosing between the two is to use MigDocs.xml if your users tend to store files outside their profile folders and to use MigUser.xml if your users are well-behaved and always store important data in profile folder locations.

When using USMT to perform a migration, you can choose to store migrated data in an encrypted format on a shared folder, on removable storage, or even in a special folder on the local disk. In large-scale migrations, you're better off using shared folders for migration simply because doing so reduces the amount of manual effort necessary to transfer data from one computer to another.

Because it's a command-line utility, USMT appears to have a steep learning curve. But in reality, if you look at the different XML files associated with USMT, the contents are fairly straightforward. You can easily use USMT to quickly and effectively migrate data from computers running Windows XP to computers running Windows 8.1 or Windows 7.