User State Migration Tool (USMT) during OSD Task Sequence SCCM 2012 SP1
I’ve been using ConfigMgr for many years now and I’ve used OSD in every version I’ve been involved with, however, for some reason, I’ve never used USMT before. In most cases this is simply because I didn’t need to use it as my only need was for bare metal deployments but, our environment is changing and I need to deploy and rebuild machines worldwide without losing any users data, so USMT seemed to fit this requirement perfectly.
I started looking into how this worked and it seemed to be fairly simple. My test task was to capture the user profile data, wipe the machine, rebuild it with Windows 7 Enterprise x64, install the drivers, restore the user profile data and then add the machine to the domain.
So, all sounds simple enough, but how do you go about doing this? Below is a detailed guide that will hopefully help you to get your USMT working.
First of all you need to install the State Migration Point (SMP) on your ConfigMgr server. To do this, log into your ConfigMgr Console and browse to Administration > Site Configuration > Servers and Site System Roles.
You can then select the server that you want to add the SMP onto. Once you have highlighted your required server, right click and click Add Site System Roles. You will see a Wizard pop up, unless you are using Internet mode, you can click next on the first page with the default values:
You can then select the State Migration Point role from the selection of roles for your server and click next:
You will then come to the page where you need to configure your SMP location. First of all, click on the yellow button:
You then have the option to set your SMP storage location on your server. You can also set the maximum clients and minimum free storage here.
Once you have entered your required settings, click OK and you should get a page like the one below. Here, you can see that you can also set your deletion settings.
Once you are happy with your choices, click next.
You then need to add the SMP to a boundary group. You should already have a boundary group setup, so just click Add, select your required boundary group and click ok:
You will then reach the summary page, at which point you can complete the wizard and move onto the next part.
For this guide, I’m assuming that you have created your USMT package and distributed it. If you haven’t, or you have no idea what a USMT package is, post a comment and I’ll put together a quick guide on how to create one.
To make all this work, the final part of the jigsaw is to create a task sequence for you to deploy to your clients. I’m assuming you all know what a task sequence is and how to set them up and how they work, so this next part will just show you where to put the task sequence parts for USMT.
There is something critical to understand here, in the task sequence, DO NOT partition your hard drive. This will remove the data links and you will lose you captured data and no one wants that to happen!
The task sequence I have created is below:
This is very basic but does the job for this guide purposes, but what does it mean? Well, the first thing you need to do is to capture the data before you do anything. To do this, you have to Request the State Store, the Capture the User Profile then once you have done that, Release the State Store so the task sequence can carry on. In each of these tasks there are various settings that you can setup for you own environment.
You then need to Restart into WinPE, from there you can carry on you task sequence (note that there is no partitioning or formatting of disks!).
You may also notice that I automatically set my computer name, for a guide on how to do that, click the link below:
Once you have deployed Windows, installed your drivers and setup your ConfigMgr client, you can then restore your user data. The restore follows the same path as the capture, Request the State Store, Restore the data, then Release the State Store. Again, there are settings within these tasks that you can configure.
Once you are happy with your task sequence, you can then deploy it to a collection, then machines in the collection will capture the data, rebuild themselves, then restore all the data back where it came from.
If you have any questions about USMT at all, just post a comment and I’ll try and help where I can.