This functionality is really useful if you have a large number of machines to upgrade / refresh and you don’t want to manually backup and restore user data and settings. Whilst the functionality is quite straight forward to enable if you already have a working MDT environment, I’ve received a couple of questions about this lately, there are a few properties you’ll need to set.

In CustomSettings.ini, or your MDT databsae if you prefer, you’ll need to set the following.

LoadStateArgs=/lac /v:13
USMTMigFiles1=MigApp.xml
USMTMigFiles2=MigUser.xml
USMTConfigFile=Config.xml
UserDataLocation=AUTO

Also, without a bit more tweaking, MDT won’t backup or restore data and settings if you initiate the task sequence from within WinPE, you’ll need to kick it off from an operating system, and set the property DeploymentType to REFRESH. I usually create a little batch file, and drop it on a share somewhere.

@ECHO off
ECHO:
ECHO *********************************************
ECHO *** Fastrack Technology – OS Deployment ***
ECHO *** Windows 7 Enterprise ***
ECHO *********************************************
ECHO:
ECHO PLEASE DO NOT CLOSE THIS WINDOW
ECHO:
ECHO NOTE: It may take several minutes before the deployment commences
ECHO:
ECHO:

ECHO THIS PROCESS WILL ERASE YOUR HARD DISK AND INSTALL A NEW OPERATING SYSTEM, ARE YOU SURE YOU WISH TO PROCEED?
pause

ECHO Initiating Task Sequence….
cscript ServerShare$ScriptsLitetouch.vbs /DeploymentType:REFRESH

Something like that will do. That is really all there is to it!! MDT will now automatically figure out which version of USMT is available, and whether or not it can use USMT 4.0 hard-link capability (this is a really cool feature, more info here) and then backup and restore data and settings for all users as appropriate. If hard-link is available, this step will normally add no more than a few minutes to your build process.