MAT 1.5 is available (now with NIC recreation!)

MAT 1.5 is available (now with NIC recreation!)

  • Comments 11
  • Likes


I am happy to announce that MAT 1.5 is now available. Grab your copy now: 


The Migration Automation Toolkit (MAT) 1.5 brings a large number of improvements over the previous MAT and also puts the MAT and the MAT (Powered by Project Shift) at a feature parity. This means that the most asked about enhancement is now finally in MAT: NIC recreation. We recreate up to three nics with all the fixings (IP addresses, all DNS information, the MAC address of the VMware nic, and VLAN tagging). While MAT and MAT (Powered by Project Shift) both recreate this information, they do so in slightly different ways because of the method of conversion is different for each (expect Michael to create a post on that down the road).

I expect that this will be the last major change to the MAT for MVMCv1 as this has all the features I had originally hoped to cover. But that doesn’t mean someone out there might not come up with a feature so awesome we have to update it again. :)

The full list of new features and fixes is below but the main additions are:

  • All MAT commands exposed by CLI (no need to use the menu)
  • Pre-flight checks
  • Tab-complete commands (for quicker typing)
  • Automatic (optional) removal of CD\DVD
  • Automatic (optional) removal of floppies
  • Automatic (optional)recreation of NICs (for up to 3 nics) on Hyper-V including:
    • Static IP addresses
    • DNS information
    • MAC addresses
    • VLAN Tagging
  • Renaming all ps1 files to a standard PowerShell convention


What's New in 1.5


FIXED BUG: Get-Report functions fail if no data is present

FIXED BUG: Add warning for !gotrows

FIXED BUG: Reports - clear first line of erroneous XML from Report

FIXED BUG: Adding $VM.GuestVMFQDN values to temp table produces no data

FIXED BUG: Repair variable format in table

FIXED BUG: Some $XMLPath values throw error

FIXED BUG: Elevation fails with parameters from right-click

FIXED BUG: Fixed/Dynamic disk switch not available

NEW: Create new function for Show-Warnings

NEW: Update Help with Show-Warnings

NEW: Add PreFlight checks

NEW: Check PowerShell version

NEW: Check for SQL connection

NEW: Check for PowerShell 32 bit if recreating NICs

NEW: Create general function to handle preflight errors

NEW: Check for supported versions of VMware

NEW: Verify VM is running before starting

NEW: Jump to next VM if current VM is off

NEW: Use timestamp in reports filename

NEW: Discovery and disconnect CD devices

NEW: Discovery and disconnect floppy drives

NEW: Add variables to make cd/floppy removal optional

NEW: Add network rebuild function as optional

NEW: Add scripts to save NIC info

NEW Add scripts to remove old nic/recreate nic on Hyper-V

NEW Add scripts to recreate NIC info

NEW: Add scripts to recreate VLAN info

NEW: Add option to preserve and recreate MAC

NEW: Add checks to verify power states are set properly

NEW: Add BackUPVMNetwork to ConvertVM-Functions

NEW: Add VM-Wait and Net-Rebuild to ConvertVM-Process

NEW: Check to verify Network exists

NEW: Update Management functions with DisplayName

NEW: Change user exposed VM references to refer to “Display Name” not FQDN

NEW: Add collection cycle to include all data possible

NEW: Add VMList logic for new collection data

NEW: Add logic in update db to support new collection data

NEW: Revise Stored Proc

NEW: New SQL View “VMDETAILS_VIEW” rolling up all VM data

NEW: New data in SQL Temp table

NEW: New field in SQL Versions table

NEW: Add Warning field to catch any non-critical errors

NEW: Add Show-Status with new Warning field

NEW: Add reports with Warning field

NEW: Add Reset function with Warning

NEW: Add database/script version check

NEW: Tag DB with version

NEW: Tag Script with version

NEW: Add logic to verify and fail if not valid

NEW: Version Variable file

NEW: Add Check-version function

NEW: Add logic to skip functions

NEW: Add “dynamicdisk” to Variable.xml

NEW: Add logic to convert script to support /Dynamic

NEW: Add logic to support power on/off regardless of MVMC power states

NEW: Integrate MAt4Shift Options

NEW: Add new DB collection

NEW: Add new Stored Proc

NEW: Rename scripts to mirror MAT4Shift conventions

NEW: Add "tab complete" functions to ConvertVM.ps1

NEW: Add Collect option

NEW: Add Update option

NEW: Add Create-List option

NEW: Add region sections to ConvertVM-Functions

NEW: Add region sections for Convert-VM Logging

NEW: Add region sections for ConvertVM-Process

NEW: Alphabetize functions

NEW: Add function to open Notepad after Create-List



As always keep your comments and improvements coming!


Keep calm and migrate,

Migration Mark

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • I received an error attempting to run the .\ConvertVM.ps1 Collect "Missing C:\Source\MAT-Branch\Variable.xml - Unable to proceed" Any idea how to correct this?

  • Hi Mark  

    Just a small comment but in the documentation it lists this as a requirement.

    1.  All required hardware is configured and already has Microsoft® Windows Server® 2012

    Enterprise installed.

    But there is no such thing as Microsoft® Windows Server® 2012 Enterprise any more just Data Center, Standard, Foundation and Essentials.


  • Hello Migration Mark,

    I attempted to run the ConvertVM.ps1 Collect script and received the following error: ERROR - Your version of VMware 5.1 is not supported with the current version of MVMC/MAT. We have many clients that are running VMware 5.1 that would like to convert their VMs to Hyper-V. Will the MAT PowerShell be changed to support VMware 5.1?

  • @vmontalbano  The MAT is a wrapper for the Microsoft Virtual Machine Toolkit (MVMC). The limitation on versions of VMware are created by the MVMC not by MAT. The MAT simply enforces the rules set forward by MVMC. So for better or worse, your comment should be directed at the MVMC team. I will gladly pass that along to them.

    If you have the ability to stand up a v5.0 instance you can vMotion VMs to that instance and convert from there.

    With respect to your Variable.xml question, you should change the variable on line 25 of ConvertVM from $CurrentPath  to whatever path you are using.

  • I get the following error:

    10/15/2013 11:05:00 - WARNING - Unable to send scripts to MDTest 10/15/2013 11:05:00 AM      Invoke-VMScript                              While performing operation 'Connect to host service 'https://<esxiserver>/sdk' at port 902' the following error occured: 'Insufficient permissions in host operating system'        on Target:MDTest

    Why is it trying to connect to the esxi server instead of just going to vCenter? vCenter is governed by AD credentials and the only accounts on the esxi servers are root.


  • @MikeD I believe the MAT team answered you offline but this is actually a question for VMware. Invoke-VMScript cmdlet is part of PowerCLI and uses a somewhat unconventional security model.