User State Migration Tool
The User State Migration Tool (USMT) is a Microsoft command line utility program intended to allow advanced users, comfortable with Scripting languages, to transfer files and settings between PCs. This task is also performed by Windows Easy Transfer, recommended for general users. USMT supports the high-volume, automated deployment of files and settings from Microsoft Windows versions 2000, XP, Vista and Windows 7 and is useful in migrating user settings and files during OS upgrades. 32-bit to 64-bit migrations are supported, but 64-bit to 32-bit are not.
Because USMT has high complexity and a command line interface, there have been several attempts to provide access to its useful functionality by creating GUI wrappers for it.
USMT 3.0.1 and 2.6.2 are available publicly. USMT 3.0.2 is a limited private release on Microsoft Connect for select affected customers. USMT 4 is included in the Windows Automated Installation Kit. USMT 5 and later versions are included in the Windows Assessment and Deployment Kit (ADK).
Source and destination OSes
|USMT version||Source operating system||Destination operating system|
|USMT 2||Windows 98, Windows NT 4.0, Windows 2000 Professional, Windows XP, Windows XP Professional x64||Windows 2000 Professional, Windows XP|
|USMT 3||Windows 2000 Professional, Windows XP, Windows XP Professional x64, Windows Vista (All 32-bit and 64-bit editions)||Windows XP, Windows Vista (All 32-bit and 64-bit editions)|
|USMT 4||Windows XP SP3, Windows XP Professional x64, Windows Vista SP1, Windows 7 (All 32-bit and 64-bit editions)||Windows Vista, Windows 7 (All 32-bit and 64-bit editions)|
|USMT 5||Windows XP, Windows XP Professional x64, Windows Vista, Windows 7, Windows 8 (All 32-bit and 64-bit editions)||Windows Vista, Windows 7, Windows 8 (All 32-bit and 64-bit Editions)|
|USMT 6.1||Windows XP, Windows XP Professional x64, Windows Vista, Windows 7, Windows 8, Windows 8.1 (All 32-bit and 64-bit editions)||Windows Vista, Windows 7, Windows 8, Windows 8.1 (All 32-bit and 64-bit Editions)|
|USMT 10||Windows XP, Windows XP Professional x64, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, (All 32-bit and 64-bit editions)||Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 (All 32-bit and 64-bit Editions)|
What USMT transfers
- Selected User Accounts
- Files and folders
- E-mail messages, settings, and contacts
- Photos, music, and videos
- Windows settings
- Program data files and settings
- Internet settings
USMT was designed to move settings and data from one Windows-based computer to another. It is a command-line tool designed for system administrators and is an alternative to other GUI tools (e.g. Files and Settings Transfer Wizard and Windows Easy Transfer). USMT is designed to perform mass migrations and allows customizations designed for corporate environments.
With Windows 8, many settings and data are now being synchronized in cloud services via a Microsoft Account and Skydrive.
Practical use of USMT
USMT consists of two separate programs. Scanstate.exe scans the source PC for the data and settings and stores it in a .MIG file. Loadstate migrates the data and settings from the .MIG file onto the target PC.
What to transfer is specified as commandline switches in the configuration XML files migapp.xml, migsys.xml, miguser.xml and other optional Config.xml files. Which Users (and their data) to transfer is controlled by other switches.
An example of a "load data on to PC" command could look like this (in one line – newlines and indents added here for readability):
loadstate "Y:\temp\Migrationstorage\WS_toolshop1" /i:"Y:\temp\Migrationstorage\WS_toolshop1\migapp.xml" "Y:\temp\Migrationstorage\WS_toolshop1\migsys.xml" /i:"Y:\temp\Migrationstorage\WS_toolshop1\miguser.xml" /ue:*\* /ui:gutte /ui:Lotta /lac /lae /progress:"C:\Documents and Settings\Administrator\Local Settings\Temp\USMTprog.log" /l:"C:\Documents and Settings\Administrator\Local Settings\Temp\USMTscan.log".. /c
The "Scanstate" command is similar in complexity. Both commands require strict adherence to syntax.
GUI wrappers for USMT
Because of the complexity of USMT command-line input, there are third-party GUI front-ends available on the Internet, e.g.
- Workstation Migration Assistant (open-source with source code posted on GitHub)
- USMT XML Builder (focus on editing USMT XML template files)
Both of these examples are out of date but there are up to commercial GUI's for USMT.
- USMT Reference Microsoft Technet 
- USMT Technet article regarding USMT 
- "Migrating to Vista Using User State Migration Tool 3.0" ZDnet
- "Windows Vista Resource Kit Safari books
- "Move your files, photos, and music for free
- Microsoft Technet detailed documentation.
- Review of USMT versus a commercial tool.
- Discusses this tool as part of a VMware study.