One of the nice little utilities that Microsoft has created for us is the User State Migration Tool.
USMT allows administrators to capture the data from end users machines and store the data on a file share on the network (alternatively it can be stored on a locally attached drive) the data can then be transferred to a different machine, or back to the same machine after refreshing the OS.
While the process is fairly straight forward there are two different commands to run depending on which step of the process you are using.
- ScanState: The first command that you will want to run on the user machine.
- LoadState: The second command that you will want to run on the user machine.
ScanState scans the user machine for a list of defined file extensions, copies them to the specified file location and exits when it finishes.
LoadState will pull all the data you stored using ScanState and then copy it back to the user machine.
Both commands are run from the machine that you want to copy the data from and then copy the data to. The process can be quite lengthy and may be impacted depending on several factors including:
- What file extensions you are telling ScanState to pull
- How much data the user has on the machine
- Network congestion
- Disk Contention
To be able to grab all the specified files it is recommended that you restart the users machine, log in as the local administrator account and run the command prompt with elevated privileges.
When executing the commands there are more powerful options if you run them through Command Line, applying all desired switches to the standard command and any options that might be beneficial to this particular data migration.
ScanState.exe \\<ServerName>\<FolderName> /auto /o /localonly /nocompress /c
LoadState.exe \\<ServerName>\<FolderName> /auto /nocompress /c /lac: /lae
One thing to keep in mind while attempting to use USMT is that it will move Data only, not applications: I have seen numerous users who misunderstand the functionality of USMT. While it can copy any file you specify, including any *.EXE files, it will not install your favorite version of custom software.
For application installation and deployment, please refer to my earlier article on
Using Microsoft Deployment Toolkit for deployment purposes:
Some of the items that USMT transfers include:
- Specified User Accounts
- Files and folders
- Photos, music, and videos
- Windows settings
- Program data files and settings
- Internet settings
Something to keep in mind before running USMT, by default it will grab all picture files and audio/visual files. Most users in an unrestricted domain will keep gigabytes of personal media files on their company owned machine and it does not make sense to spend CPU cycles copying all of these files off and then copying them back to the new deployment. Our company has approached this issue by moving all personal related media files to a thumb drive before proceeding with capturing the user files and then allowing the user to migrate their files back on their own.