jump to navigation

Understanding USMT with MDT 2010 November 20, 2009

Posted by tmintner in MDT 2010, USMT, Windows 7.
Tags: , , , ,

The User State Migration Tool (USMT) is an extremely powerful and essential piece of an Operating System Deployment.  With the release of the Windows AIK for Windows 7, USMT 4.0 was made available and includes many great new features such as hard-link migration (for more information on what’s new in USMT 4.0 see this article).  MDT 2010 integrates USMT directly into the task sequence for both Lite Touch Installations and Zero Touch Installations.  There have been several questions since MDT 2010 was released on how USMT works with MDT and how all of the pieces fit together. 


Lite Touch Installation

USMT 4.0

In order to user MDT 2010, you must install the Windows AIK for Windows 7.  The Windows AIK now includes USMT 4.0 as a feature of the AIK so there is no longer a separate download required for USMT.  When you create your Deployment Share inside of the Deployment Workbench, MDT will create a folder at the root of the deployment share called USMT and copy the USMT files into that folder. 


Refresh Scenario

A refresh scenario means that you are deploying an Operating System to a computer that already has an existing Operating System using a task sequence created with the Standard Client Task Sequence.  The process is started from within the current Operating System.  In a Refresh scenario, the disk is not formatted or partitioned so in most cases, the user data can be saved locally on disk saving time and network bandwidth.  During a Lite Touch Installation there are only two steps in the task sequence step that uses USMT.  The first step is called Capture User State and the second step is called Restore User State.  This step will run a script called ztiuserstate.wsf.  The actions that ztiuserstate will be performed are determined by the following factors:

  • The Operating System being deployed
  • The values provided in CustomSettings.ini for UserDataLocation and UDDIR and UDShare
  • The values provided in the Client Deployment Wizard used to start the Task Sequence

If ZTIUserState determines that you are deploying Windows XP it will not be able to use USMT 4.0 and will try to use USMT 3 for the user state migration (more on that later).  If you have specified that UserDataLocation = Network and you have also specified a UDDIR and UDShare in the customsettings.ini then USMT will migrate all of the files to a compressed file at the network location you specify.  Also if you provide a network location in the Client Deployment Wizard, USMT will migrate the user data to a compressed file at the network location you specify.  If UserDataLocation = AUTO and you are not deploying Windows XP, the ztiuserstate script will keep the data local in the MININT folder using hard-link migration.  There is no need to do an estimate because the hard-link migration process only requires 250 MB of space on the disk and if you didn’t have that much the process would fail in the validate step.

Replace Scenario

A Replace scenario is made up of two task sequences.  The first task sequence is based upon the Standard Client Replace template and the second task sequence is based on the Standard Client task sequence template.  The first task sequence is initiated from within the existing Operating System like in a Refresh scenario.  The USMT capture process in a Replace scenario works just like a Refresh scenario with one exception, in a Replace scenario the user data can not be stored locally so you must provide a network location to store the User Data.

The second task sequence is started by booting into the Lite Touch boot image and doing a New Computer deployment.  The Client Deployment Wizard will ask if you want to restore user state and where the user state is stored.  The Restore User State step in the task sequence would then use USMT to restore the user state to the computer being deployed.


USMT 3.01

So if USMT 4 has all these new cool features, why would you ever still want to use USMT 3?  Well USMT 4.0 cannot restore user data onto Windows XP.  Loadstate.exe from USMT 4.0 will not run on Windows XP.  So if you plan on migrating user data to Windows XP you will still need to use USMT 3.01.  To use USMT 3.01 you will need to download it from Microsoft.  The Deployment Workbench has direct links to both the 32 bit and 64 bit versions of USMT 3.01 in the Components section.  After downloading the installation files you will need to place those installations files in the Tools\X86 folder in your Deployment Share for 32 bit installs and Tools\X64 for 64 bit installs.

Refresh Scenario

In a Refresh scenario,the Lite Touch Installation process will be able to determine if the Operating System being deployed is Windows XP.  The same factors mentioned above are applicable for USMT 3.01.  If the Operating System is Windows XP, the ztiuserstate script will install USMT 3.01 on the computer and then do an estimate to determine how much user data is on the computer.  If the amount of user data is less than the amount of disk space needed then ztiuserstate will store the user data on the local disk in the MININT folder.  If there is not enough space then the user data will be stored in the UDSHARE and UDDIR locations.

Replace Scenario

A Replace scenario is a little trickier.  The Lite Touch Installation process won’t be able to automatically determine what Operating System you are going to be deploying because the Operating System is going to be deployed with a separate task sequence potentially even on a different computer.  In a Replace scenario ztiuserstate will use USMT 4.0 by default, however there is one problem with that.  User Data backed up with USMT 4 cannot be restored with USMT 3 and USMT 4 cannot be run on Windows XP!  So if you are replacing a Windows XP computer with another Windows XP computer, how can you make sure that USMT 3.01 is used?  To handle that scenario, MDT has a variable called USMT3.  To force the Replace scenario to use USMT 3 you would enter the following into your customsettings.ini:



Zero Touch Installation (ConfigMgr/SCCM)

The USMT process with ZTI is slightly different than the process with Lite Touch.  The steps in a ZTI task sequence look like the following for capturing User State:


The MDT integrated task sequence uses the built in actions for Request State Store, Capture User State, Release State Store, and Restore User State.  The Ztiuserstate.wsf script is only used in one step: Determine Local or Remote User State. 

With ZTI, the version of USMT that is used is solely dependent on the USMT package that is associated with the Determine Local or Remote User State, Capture User State, and Restore User State steps in the task sequence.  You will need to create a package that contains the files for either USMT 3.01 or USMT 4.0.  Thankfully when you walk through the wizard to create the MDT task sequence in Configuration Manager, the MDT provided wizard will create the USMT 4.0 package for you automatically.  If you want to create a USMT 3.01 package you will need to download and install USMT 3.01 on a client computer and use the installation folder in the Program Files folder as the source directory for your package.

USMT 4.0

The version of USMT that you are using for your USMT package will determine what actions the Determine Local or Remote User State will perform.  If you are using USMT 4.0 then the Determine Local or Remote User State will set the variable needed to do a hard-link migration and also set a variable called USMTLOCAL =TRUE.  The Request State Store and Release State Store steps in the task sequence have a condition on them so that they will only run if USMTLOCAL is not true.  That means if you are using USMT 4, the user state will always be local and the State Migration Point will never be used.  If you would like to use the State Migration Point instead of using hard-link migration then just disable the Determine Local or Remote UserState step in the task sequence

USMT 3.01

If you are using USMT 3.01 then the Determine Local or Remote User State step will perform a USMT Estimate to determine if there is enough space locally on the disk to store the user data.  If there is enough space locally the variable USMTLOCAL is set to TRUE.  Again the Request and Release State Store steps are conditional on this variable so if there is not enough room locally the State Migration Point will be used



Whew..that is a lot of information.  As you can see, MDT tries to cover all of the scenarios with USMT whether you are using USMT 4.0 or still deploying Windows XP and need USMT 3.01.  Enjoy and happy deploying!


-Tim Mintner



1. BearDownBob - August 17, 2011

I am doing a lite touch deployment using MDT without SCCM. My DeploymentType is REFRESH. I cannot get USMT to work. I would prefer copying the user data to a network location, but if I could get the default hardlinks to work, I would be happy. During the deployment, it does not seem to process the CaptureUserState task.

Nathan - November 3, 2011

Is the account you are running from a Local Admin on the box or are you PXE booting the machine then doing the refresh? Try mapping a drive and running litetouch.vbs from the local admin account in windows and running the refresh scenario.

2. Hard Link Migration using USMT « Xtreme Deployment - October 12, 2010

[…] Well, that’s about it. USMT preserves your data right on the disk even as the new operating system is installed. You’ve seen it with your own two eyes, so you know it works. Now take USMT for a spin. You can find out more about USMT in Tim Mintner’s post: Understanding USMT with MDT 2010 […]

3. 70-681 Resources | IT Certifications Exam - September 27, 2010

[…] Migrate user settings and data Migrating User Files and Settings from Windows XP to Windows 7 What Does USMT Migrate? Windows XP to Windows 7 Hard-Link Migration of User Files and Settings Choose a Migration Store Type Determine What to Migrate Understanding USMT with MDT 2010 Xtreme Deployment […]

4. Tom - August 4, 2010


I am having permission issues, refreshing XP machines to Win7.
USMT brings over all of the filres correctly (using hardlinking), but when logging on as the user, (who is shown as owner on the security tab, and is also in the local admin group) cannot delete files. We get the dreaded “You need permission to delete this file.” Futher, if we try to change the ACL’s, we get errors accessing the root drive and cannot update the security descriptors. I don’t know if this is a USMT thing or just a Win 7 thing, but it is killing our deployemnt plans.

Thanks in advance.

5. Ray - March 19, 2010

I had installed the USMT 301 on the server. It’s installed in C:\Program Files\USMT301 Are you saying to copy those files into the Deploymentshare\tools\x86?. I put the downloaded USMT 301 file into that folder and nothing happened when I updated the Deploymentshare and tryed a Replace with the path to the UserStateCapture$ folder. Which files go into the Deploymentshare\tools\x86 folder?

6. Ray - March 19, 2010

In my deploymentshare the USMT files under USMT\x86. But those are the 4.0 files I assume. Do I move them out and put the 3.01 files there?

tmintner - March 19, 2010

You place the USMT 3.01 bits in the Tools\X86 or Tools\X64 directories respectively. Just put the EXE files in there and MDT will extract and install them

7. MDT 2010 and USTMT 4.0 Hard Link Migration « Deploy Windows 7 - February 25, 2010
8. victor - January 27, 2010

hi i have a problem when I do an installation loc litletouch ettings to take default values (time zone) but when it ends and arrange the windows 7 he asks me the time zone, there is a way for me no longer ask

Priority = Default
Properties = MyCustomProperty

OSInstall = Y
SkipAppsOnUpgrade = YES
SkipCapture = YES
SkipProductKey = YES

SkipDeploymentType = YES
DeploymentType = NEWCOMPUTER
SkipComputerName = YES
OSDComputerName = Development-001
SkipDomainMembership = YES
JoinWorkgroup = WORKGROUP
SkipUserData = Yes
UserDataLocation = NONE
SkipLocaleSelection = YES
UILanguage = en-US
UserLocale = en-US
KeyboardLocale = en-US; 080th: 0,000,040th
SkipTimeZone = YES
TimeZone = 30
TimeZoneName = Mexico Standard Time
SkipAdminPassword = YES
AdminPassword = desktopdeploy

9. tmintner - January 21, 2010

Hi Koneti,

The computername wouldn’t be restored as part of the user state. You can choose to name the computer through the customsettings.ini file. Can you post the question on the technet forums for MDT with an example of a computername that you would like to keep from the old computer to the new computer?

10. tmintner - January 20, 2010

Not quite sure what you are asking but you can back up the user state from an existing computer and deploy it to another computer. That is generally what we would call a Replace scenario.

Koneti - January 21, 2010

its bad that putting the question in different way .Yes it is Replace scenario .are there any steps/procedure/is it required to edit the xml or custimisation of xml files ? i am quite sure how to carry out this task through it ?

11. tmintner - November 23, 2009

Hi Gopi!

That would make another really good blog post. We get asked that quite a bit. You can do roughly the same thing as in BDD 2007. You would need to run your own diskpart command in a run command line using a diskpart /s “%scriptroot%\somefile.txt” and disable our built in format and partition disk step.

Gopi - November 24, 2009

Thanks Tmintner!

so as I understand this:

1. Create a txt file in the MDT scripts folder to format only C: drive.
2. In the task sequence, disable Partition and Format disk.
3. Include a new custom task and give the name ofthe txt file as in the command:
diskpart /s “%scriptroot%\somefile.txt

Is that correct?

tmintner - November 24, 2009

Gopi: Yep that would be correct.

12. Deploying Windows XP with MDT 2010 - Maik Koster at myITforum.com - November 21, 2009

[…] Tim Minter just wrote a really great article about Understanding USMT in MDT 2010. Filed under: MDT 2010, USMT, Windows […]

Mina - April 17, 2011

va4W2C Very true! Makes a change to see soemnoe spell it out like that. 🙂

13. Gopi - November 21, 2009

Hi Tim!

I have a query with respect to MDT 2010 LTI deployment-

While deploying Windows 7 through MDT 2010, I need the configuration wherein- Only the existing C: drive of the machine gets formatted and the existing D: drive with data is left without format.

In BDD 2007 we had an option of including a txt file with the configuration.

Could you tell me in MDT 2010, how could we have this done?

Thanks in advance!

14. Understanding USMT with MDT 2010 « Xtreme Deployment - Rod Trent at myITforum.com - November 20, 2009

[…] Understanding USMT with MDT 2010 « Xtreme Deployment Filed under: Microsoft Deployment […]

15. Understanding USMT with MDT 2010 - Chris Nackers Blog - November 20, 2009

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: