How USMT Migrated Data During Windows XP Upgrades
During enterprise rollouts of Windows XP, Microsoft’s User State Migration Tool (USMT) served as a scriptable, command-line utility designed to transfer desktop environments, application settings, and personal data from legacy systems. Designed for IT administrators performing large-scale deployments, USMT automated the capture of state data from operating systems such as Windows 95, 98, NT 4.0, and 2000, and subsequently injected that data into fresh Windows XP installations without requiring manual user intervention.
The Two-Phase Migration Process: ScanState and LoadState
The USMT process during the Windows XP era (primarily USMT versions
1.2 and 2.6) relied on two primary command-line executables:
ScanState.exe and LoadState.exe.
- ScanState (Capture Phase): Administrators ran
ScanState.exeon the source machine. The utility read the local file system and the Windows Registry to identify relevant files, folder structures, and configuration keys. It packaged this data into an intermediate migration store, which was typically hosted on a temporary network share or a secondary local partition. - LoadState (Restore Phase): Once the target machine
was imaged with a clean copy of Windows XP and joined to the network,
administrators executed
LoadState.exe. This tool extracted the saved data from the migration store, translated legacy configurations to fit the Windows XP architecture, recreated user profiles, and wrote settings back into the appropriate registry hives and user directories.
Rule-Based Selection via INF Files
Unlike modern versions of USMT that utilize XML scripts, the versions
used for Windows XP upgrades relied on setup information
(.inf) files to dictate what was collected and where it was
placed. Administrators customized migration rules by modifying or
supplying specific INF files to the command-line tools:
- Miguser.inf: Controlled the capture of user
documents, pictures, music, and specific file extensions (such as
.doc,.xls, and.txt). It allowed wildcards to sweep entire drives for user-generated content regardless of storage location. - Migapp.inf: Handled application-specific settings. It identified configuration entries for supported software—such as Microsoft Office, Internet Explorer, and Outlook Express—and extracted preferences, bookmarks, signatures, and address books.
- Migsys.inf: Managed core operating system settings, including desktop wallpapers, screen savers, regional formats, accessibility features, network drive mappings, and mouse/keyboard settings.
User Account and Profile Mapping
A major challenge during Windows XP upgrades was moving users from standalone workgroups or legacy domains to Windows 2000/2003 Active Directory environments. USMT resolved this by supporting profile redirection and account remapping flags directly within the command line.
Command-line parameters such as /mu (map user) and
/md (map domain) enabled administrators to assign existing
local accounts or old domain profiles to new Active Directory accounts.
When LoadState.exe rebuilt the user profile under Windows
XP’s C:\Documents and Settings\<Username> directory
structure, it applied appropriate NTFS Access Control Lists (ACLs),
ensuring security permissions transitioned correctly to the new account
credentials.