In a previous article here on WindowsNetworking.com titled Migrating to Vista Using Windows Easy Transfer we looked at how you can migrate user accounts, files and program settings from an existing computer running Windows XP to a freshly installed new computer running Windows Vista. Windows Easy Transfer is a lightweight tool however that is really only useful for migrations involving a handful of desktop computers, for example a small business with a network of ten machines or a home user wanting to replace their old XP box with a brand new Vista-ready machine. Enterprises however need a more robust tool for performing migrating user settings, and User State Migration Tool (USMT) is Microsoft”s answer to their needs.
USMT was designed for migrating user settings when upgrading or migrating desktop versions of Windows in a domain environment. USMT 1.0 was originally developed to migrate Windows 95, Windows 98 and Windows NT 4.0 Workstation machines to Windows 2000 Professional. USMT 2.0 through 2.6 extended this to support migrating Windows 2000 Professional and earlier platforms to Windows XP Professional, and also supported XP to XP migrations. USMT 3.0, which is currently in beta at the time of writing this article, is designed to migrate Windows 2000 Professional SP4 and later to Windows XP SP2 and later. In other words, using USMT 3.0 you can migrate:
- Windows 2000 Professional SP4 to Windows XP SP2
- Windows 2000 Professional SP4 to Windows Vista
- Windows XP SP2 to Windows Vista
You can also use USMT 3.0 to migrate from x86 to x64 versions of these platforms and vice versa, and it supports all editions of XP and Vista as well excepting Starter Editions. USMT does not support migrating Windows server operating systems.
USMT 3.0 supports two kinds of approach for migrating your machines: the side-by-side approach and the wipe-and-load approach.
- Side-by-side. This approach involves collecting the user state information from the old computer, moving the information to an intermediate store, and then restoring the information onto a different computer that has Vista already installed on it. You can use this method if your current desktop computers are not powerful enough to support the new Vista operating system.
- Wipe-and-load. This approach involves collecting the user state information from the old computer, moving the information to an intermediate store, upgrading your old computer to Vista, and then restoring the information back onto the old computer. This approach can be used if your existing desktop computers have hardware that can support running Vista.
The two main migration tools included with USMT 3.0 are called ScanState and LoadState.
- ScanState. This tool is used to collect the user and program settings from the source (old) computer and saves them to the intermediate store. This intermediate store is an image file called USMT3.MIG. Note that running ScanState does not change anything on the source computer, so if you afterwards decide not to transfer the user state information to a new machine you can go on using your old machine as before.
- LoadState. This tool is used to restore the user and program settings stored in USMT3.MIG and copy them onto the target (new or upgraded) computer.
In addition, these tools create and use a number of XML files and component manifests that can be customized in various ways to control how the migration process works. For example, you can use ScanState to create a file called Config.xml and then edit this XML file to control exactly what will be migrated from the source machine to the target machine. I’ll look at some of these different customization options in a future article here on WindowsNetworking.com.
Let’s look at the steps involved in a side-by-side migration that transfers all user state information from an old computer running Windows XP SP2 to a new computer running Vista. Note that the procedures outlined below are based on pre-release versions of Vista and USMT 3.0 so the procedure outlined may change a little when the final versions of these products are released.
The steps for performing this migration are as follows:
- Download USMT 3.0 from the Microsoft Download Center and copy it onto the source computer running XP and the target computer running Vista. Note that at the time of writing this article the Download Center only has USMT 2.6 available, but if you are a Volume Licensing or Software Assurance (SA) customer you should already have access to version 3.0 of USMT.
- Install any applications that are currently installed on your XP box onto your Vista box. This is needed because USMT may not be able to migrate settings for certain applications unless those applications are also installed on the target machine.
- Run ScanState on the source computer. ScanState is a command-line tool that has a number of different parameters you can use to specify things like where to save your USMT3.MIG store file, which XML files to use to customize which user and application settings are migrated, verbosity and logging level, which user profiles to copy, encryption, compression, and so on. I’ll examine some of these different parameters in a future article, but for now just be sure to either log on to the source machine as a local administrator or use the runas command to open a command prompt running with administrator credentials. That’s because if you don’t run ScanState as an administrator, only the user profile of the currently logged-on user will be migrated. To run ScanState on the source computer, change your current directory to the folder where USMT is located and type scanstate \\server\share options where share is a shared folder on your network that will be used as a temporary location for the store during the migration and options are any other command-line switches you want to use. Of course, the real power of using ScanState and LoadState is that, as command-line tools, they can be scripted using batch files to automate migrations, but here we’re only looking at their operation at a high level and I’ll leave scripted migrations for a future article.
Note that by default ScanState compresses all user state information into a single migration file called USMT3.MIG, but you can also use the /nocompress switch to leave the state information uncompressed. As Figure 1 shows below, using this switch allows you to actually see what user profiles and application settings are being migrated. In real-world migrations however, it’s more efficient to omit the /nocompress switch to perform your migrations.
Figure 1: Typical user profiles and application data being migrated after running ScanState with the /nocompress option
- Once your user state info has been migrated to the temporary store, you can run LoadState on the target computer to copy the user and program files and settings of your source machine onto your target machine. LoadState is another command-line tool that has a number of different parameters for specifying where the temporary store is located, which XML files to use to control the migration (these XML files would have been created previously using ScanState and customized as desired by the administrator to control how the migration proceeds), which users profiles to restore, logging and verbosity levels, decryption key, and so on.
If you are migrating settings to a Vista computer, you must open a command prompt that runs under administrator credentials. To do this you can type cmd into the Start Search box and when cmd appears on the Start menu, right-click on cmd and select Run As Administrator. When the UAC prompt appears, click Continue (if you are currently logged on as an administrator on the machine) or type a password for an administrator account (if you are currently logged on as a standard user). Once the command prompt window opens, type loadstate \\server\share options where share is the shared folder on your network that was used as the temporary storage location when ScanState was run previously and options are any options required by how you ran ScanState previously. For example, if you used the /encrypt switch when you ran ScanState then you’ll need to include the /decrypt switch when you use LoadState, and so on.
USMT 3.0 is the latest version of Microsoft’s User State Migration Tool and includes new features such as XML configuration files replacing the .inf files of previous versions of this tool, plus new command-line options for LoadState and ScanState and other improvements. USMT 3.0 is still in beta and there are still some bugs when using it to migrate user state information from XP to Vista, but I’ll revisit this powerful tool later when the final release version becomes available and we’ll examine its capabilities in more detail.