It's that time in the hardware refresh cycle again where you have to replace laptops on mass, well at least it is for me.

Our main challenge was migrating users Firefox bookmarks and also the desire to capture Outlook signatures and auto-complete information without capturing all Office applications information (we wanted to start as fresh as possible).

I've never really dug in depth into the USMT and K2000 before now and I've found it in needed of a little massaging.

USMT Problem

The USMT definition XML file for applications (MigApp.xml) included with USMT 5.0 does provide support for many non Microsoft productions including Firefox, Chrome and Adobe Acrobat amongst other. The only problem is Microsoft hasn't had the inclination to keep it up-to-date.

Thanks to some clues from fellow ITNinja Jegolf, I found that the MigApp.xml is hard coded to look for Mozilla Firefox 3 (hello cira 2008).

USMT FIX: (assuming WAIK 8)

Edit the MigApp.xml files in both the C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\User State Migration Tool\amd64   and   C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\User State Migration Tool\x86 folders.

The line to modify:

DEFAULT:  <condition>MigXmlHelper.DoesObjectExist("Registry","%HklmWowSoftware%\Mozilla\Mozilla Firefox 3.*\bin [PathToExe]")</condition>

MODIFIED: <condition>MigXmlHelper.DoesObjectExist("Registry","%HklmWowSoftware%\Mozilla\Mozilla Firefox *.*\bin [PathToExe]")</condition>


After making these modifications, re-upload the USMT tool into the K2000.

Now if you choose the User Data tick box under Documents To Be Scanned in the K2000 USMT Scan Template, any version of Firefox will correctly be migrated.


Firefox specific migration (and other) without migrating ALL User Data

In the K2000 USMT Scan Template, if you tick User Data then it migrates anything in the MigApp.xml template which is anything from Firefox to all Office components to Acrobat etc etc.

This is not particularly helpful if you want to be more granular about what you take to ensure you don't pass on redundant or out of date settings.

To customize the USMT Scan Template created in the K2000 is not as easy as it could be.

  • Create a KACE USMT Scan Template and customize it with any visible settings but DO NOT tick User Data
  • Export this USMT Scan Template from the Package Management area of the K2000
  • Browse to the <K2000>\restore Samba share and find the exported package
  • Extract the package with 7-Zip
  • Open the extracted file with notepad and copy the USMT XML component out to a new file.

        This begins with <Configuration> and ends with </Configuration>

  • Save this file with XML file extension
  • In the K2000, open your USMT Scan Template and under the Content Configuration tick Specify config file.
  • Browse and select the XML file you created and then Save the USMT Scan Template.

When you reopen this USMT Scan Template, the K2000 shows it in the Template GUI format but as this GUI is not aware of the Applications section of the config file it won't be displayed. It does exist and modifying and saving the USMT Scan Template will not overwrite it (an export of the USMT Scan Template proves this).


So, what have we learned:

a) Microsoft didn't bother fixing this Firefox version number hard coding in the MmigApp.xml file. This is possibly a problem for Chrome and other applications mentioned in it.

b) KACE USMT Scan Template GUI is not aware of Applications section of config file.

c) KACE USMT Scan Templates are ALL or nothing for applications. Granularity of applications already built into USMT (anything listed in MigApp.xml) would be better.

d) the 'Specify config file' option in the KACE USMT Scan Templates is ambiguous as to the required format of the config file. I only got this working when I exported a template from the KACE (thank KACE support as I wasn't aware you could extract the packages) and copied the XML.
The ability to directly save an example config or the current config out for modification would make it simple to add customisation.