Meet MAT - the Migration Automation Toolkit


Introducing the MAT

MAT, meet the blogosphere. Blogosphere, meet MAT. There, that was easy.

In my earlier posts I’ve talked a lot about migration and automation. In my V2V series I covered lots of ways you might go about automating your conversions using VMM’s V2V. Helpful, right? Well, today, I will do you one better.

I’m offering up a toolkit.

Download a copy now!


So rather than talk about the ways you might automate the MVMC.exe I created a set of PowerShell scripts that will do that for you. Migration Mark has got your back.

So what is the MAT? The Migration Automation Toolkit is a collection of PowerShell scripts that will automate conversions using MVMC and it is back ended by a SQL instance (yes, you can use SQL Express). You can use it to convert several machines at once, on a single server – or scale it out and execute conversions on many servers at the same time.

It is composed of three phases:

  • Collection
  • List Management
  • Conversion


The first step is to run a collection cycle against your VMware environment. There’s a script for that. It will collect all the VMs that are valid candidates for conversion. It will add these to a SQL table automatically and that will become your migration database.

NOTE: VMs must be running AND have VMware tools running in order to be discovered and collected.

List Management

Next you will send the list of VMs from the database to a text file.  The script will prompt you. This text file will control what VMs get converted in a single ‘batch’, which is to say continuous conversion of each VM in the list until it runs out. Generally I’d say the list should have fewer than 30 items (it can have as many as you want but this has seemed like a manageable figure). Delete the names of the VMs you don’t want to convert in this batch. Reorder the list if you want. The order in the list will be respected when the migration starts.

When you are happy with the list, update the database with it. Don’t worry the script will do that for you too. Once the database is updated with the list for the this batch, move to conversion. Each batch will have its own list but as soon as VMs are converted successfully they won’t show up in the list anymore.


Here’s the part where automation shines. Sit back, sip your drink and look busy if anyone walks by. The migration will go do the rest without any help from you. You can watch this in the PowerShell window, you can watch the log files, or you can go watch the game. 

Getting and using the MAT

  1. Verify you have meet all the prerequisites
  2. First download the package from TechNet Galleries --->here<---
  3. Create a folder C:\MAT (this is the default but you can change it)
  4. Copy the contents of the package into C:\MAT
    • Main.ps1
    • Collect.ps1
    • Convert.ps1
    • Logging.ps1
    • Functions.ps1
    • Variable.XML
    • Setup MAT.sql
    • Readme.MAT1.3.txt
  5. Review the readme file.
  6. Run the Setup MAT.sql file in your SQL instance.
  7. Edit the Variable.XML file to reflect your environment.
  8. Start the script C:\main.ps1 in PowerShell.



Here’s what you need to use the MAT:

  1. The Microsoft Virtual Machine Converter (MVMC). Download it here
  2. PowerCLI 5.1 from VMware (used to collect VMs). You can get that here.
  3. SQL Express. Grab yourself a copy – it’s free. You can also use other SQL editions if you have them
  4. A whole heaping mess of VMware VMs you need to convert. (Sold separately)


UPDATE: The MAT acronym has been update as the Migration Automation Toolkit.

Happy Converting!