A quick look at: Workstation Migration Assistant
During my company’s Windows 2000 > XP migration, I spent a long time developing a tool to automate the backup/restore of user data, so that our deployment team could literally click a button and have everything done for them (it could’ve been an entirely zero-touch system, but we just didn’t have the time to test 100% and so didn’t have the trust factor). This tool was built around using WinZip to literally zip up the data and dump it on a server, and it’s worked quite well for the past few years. That is, until data growth got out of control. Although WinZip no longer has a 4GB filesize limit, I don’t believe it. We’ve had too many problems as of late, and so I think we’ve realised it was time to replace the tool with something a bit more “enterprisey” :)
Luckily for us, I had already started work on a personal “coding project” back in November 2006, a wrapper for Microsoft’s User State Migration Tool, which would provide the logic and mechanisms for the actual capture / restore process. The only problem with USMT is that it has no interface. It’s entirely command-line, and unless you know it well, a bit of a pain to use. I’ve been playing with USMT 3.0 since it was in beta and this was my only real gripe. So I set about creating a .NET-based wrapper for it to simplify data capture/restore.
Unfortunately, due to personal circumstances, I didn’t have a lot of time to develop past an early alpha and stopped all work on it sometime in Febuary 2007. The recent problems with our own internal migration tool led me to pick this up again, with the bonus that I can now spend a bit of time during work hours to get this finished. My goal however, is to keep it as generic as possible and be highly customisable. Any changes from a generic model that are needed for my employer will be exposed through settings or customisable scripts, so anyone else that wants to use it will be able to change these things too. Here’s some of the nice features:
- Migrate via a pre-defined network storage location, external USB drive, or user-specified location. USB drive detection is automatic, and you can decide whether drives below a certain size are ignored (ie, memory sticks).
- Optional Hard Disk Health Check will run a CHKDSK prior to capture and fix errors if any are found
- Optional Encryption using a pre-defined company encryption key, or per-user customised encryption (for highly sensitive data that can’t be stored on a server without being encrypted)
- Use different configurations for a multi-OS, XP > XP and Vista > Vista migrations (useful when on XP to force the /TargetXP switch, and if you’re Vista migration can exclude XP-only obsoleted files)
- Automatically run pre and post capture/restore scripts (very useful to further configure machine settings)
- Migrate domain only accounts, or domain and local
- Automatically exclude certain domain or local accounts from the migration
- Automatically send log files to an e-mail address via SMTP after the migration
- On-screen status during every stage of the migration, including ETA
- Optional Hard Disk Health Check will run a CHKDSK prior to capture and fix errors if any are found
- Optional Encryption using a pre-defined company encryption key, or per-user customised encryption (for highly sensitive data that can’t be stored on a server without being encrypted)
- Option to limit migrations to a certain size, i.e. if over 20GB of data to backup, then fail and inform user. This is also overridable
- Very configurable through configuration file
- Command-line automation
- Super-pretty UI :)
And here’s a screeny:

This app is still very much work-in-progress but I should hope I can release it as a freeware tool sometime soon (with my company’s blessing). Anyway, will keep you informed of progress :) And if you have any good suggestions, please let me know.
Dan


Thanks!
For example, I’m doing some script-work around this so that each migration gets reported into a central SQL database. This will be used for stats tracking, and also to notify our technicians when migrations are complete so they can take relevant action.
Anyway, if anyone has suggestions, or wants to help test this, please let me know.
Cheers, Dan
What compression does this use?
my company has a similar tool to your original one where data is added to a 7z archive and copied to a file server.
To capture 33GB of data over a 100MB LAN connection, took me one hour thirty mins, and compressed to 22GB. This is also all encrypted so it’s mighty secure :)
Do you think I could check out the workstation migration assistant? I’m approaching a big migration from 2k to XP and SCCM is proving difficult to use variables with USMT.
Good work by the way….
Steve
I’ve set up a DFS path throughout our org to hold the user data, but we really don’t have the server space to make it work. For most of out techs we’ll provide them a portable USB drive to use for backup/restore purposes.
Hopefully your company will authorize the release of your nifty wrapper as I can see if being very handy for a number of admins in the world who want to be able to quickly and easily backup/restore user data without writing batch scripts, etc. With properly written instructions, the average HelpDesk person could conceptually walk a user through using something like this over the phone.
Good luck!
Stefan
Cheers, Dan
Matt
Are you going to or not?
(Maby set a date just to make it happen ;-)
Regards
Thomas
Is there something missing in the config options I am doing wrong .
thanks
Dan
I haven’t mucked about with MDT properly yet but it’s something I’m going to look into soon. Once I do, I’ll try to figure out a good mechanism of integrating WMA directly with ZTIUserState.WSF.
Dan
Btw, Error 12, from what I recall, is because you’re running ScanState or LoadState without being a Local Administrator.
Cheers, Dan
Richard – Microsoft UK
Thanks,
Dave
I ran the MIGAssistant tool and when I went to recover the user profile I recevied the error that:
WMA_ScanState.XML could not be found
Is there a way to rebuild this file after an apparent successful USMT operation? It looks like all the files are there except for the xml file. There was no error on completion and the interface said 100% complete.
Thanks. I’m burining the midnight oil tonight trying to recover equipment that died.
John Roberts
(Elgog Partynipple)