Microsoft's User State Migration Tool does have limitations.
- Migrate EFS files and certificates (use "/efs:copyraw" in the Scanstate command).
- Save profile data -- My Documents, My Pictures, etc. in Windows XP and Shared Documents and Shared Favorites in Windows 7 and Vista -- for all local users as well as the "all users" profile.
- Define file types defined in Miguser.xml (can be modified). *
- Migrate access control lists (ACLs) with the files and folders.
- Migrate operating system data such as group membership, Vista taskbar settings (not XP), mouse and keyboard settings, and more. *
- Migrate application settings for certain apps. *
- Migrate data from local USB drives (but not data from USB flash drives).
- Allow scripting and customization of the XML input templates that are provided, including generating Exclude lists.
- Perform offline migration for some settings.
- Migrate computer settings.
- Migrate local users to local users on the new machine.
- Migrate a local user to a domain user (in a domain configuration).
- Migrate a domain user to a new domain.
- Allow user interaction during the migration.
- Migrate applications (though it will migrate application settings for supported apps). *
- Migrate applications to a new version (source and destination must be the same except for Microsoft Office).
- Migrate application settings not modified by the user.
- Migrate operating system settings such as local printers, hardware settings, permissions for shared folders, files and settings between different-language versions of Windows, as well as network printers and some firewall settings from XP.*
* Note: These are a few of the highlights, but for a complete list of settings, restrictions, applications and file types, see the "What does USMT migrate?" section in the USMT User's Guide.