VMware to Hyper-V Migration with Netapp shift and MAT

I have been doing some seminars and presentations on the subject of migration from VMware. My latest seminars was with my colleague Kristian Nese and we were in Stockholm, Oslo and Trondheim talking about the cloud os, the new features in Hyper-V 2012 R2 and System Center VMM 2012 R2 and also migration and the different tools. After the summer camp at Microsoft I did a blog post about my customisations of the MAT that was running with MVMC and my way to solve the IP addresses and after my blog post there have come an updated version of the MAT that do handle the NIC.

If you plan to do a migration and just happens to be one of the lucky guys that have a Netapp box with Data ONTAP 8.2 in Cluster Mode in your VMware environment you can use the MAT for shift that can be found on the gallery. It utilizes the NetApp Data ONTAP PowerShell toolkit and the features in the Netapp storage that converts the vmdk files to vhdx right in the storage and boy do that save migration time as you do not have to move loads of data for your large VM´s over the network and then convert them at the target. As the Netapp software is so intelligent it does not write over the old data and you can quite easily go back if you find any issues after the migration.

Building Clouds have a blog post and Migration Mark has done a funny movie that can be watched on Youtube that explains the procedure and how fast it is!

Hope to start a project really soon with a Netapp customer :-)

Convert to generation 2 on a VM in Hyper-V 2012 R2 with Powershell

I have done blog posts about why you should create your new VM´s with Windows Server 2012 instead of 2008 R2 or older even if you were not able to create them with the generation 2 at that time as the Windows 2012 R2 was not released back then.

I also did a blog post how to use a third party product to do the migration from generation 1 to 2 with Double Take Move software.

Now I found John Howards script that he has made public that does the migration from generation 1 to 2 :-) He also has a blog series about generation 2 VM´s that is definitely worth the time to check out.

I got an error when running it though and it seems that it does not work so good with the partition on the gen 1 virtual disk..  It appears that when I have created my virtual machine with the Convert-WindowsImage.ps1 script that only creates one partition the row in the script that checks for $partitions.length fails and I could not get it to continue but when I commented that away I got my first conversion on the way :-)

Screen Shot 2013-10-30 at 20.40.59

And here you can se in the PowerShell ISE my alteration  :-)

Screen Shot 2013-10-30 at 22.15.58

Now I am sure that John and his team will work and distribute new versions with correct error checking and I am truly glad that they have released this so I could test it right now anyway :-) !!

Here is my VM in generation 1

Screen Shot 2013-10-30 at 21.50.07

And here is the converted VM,

Screen Shot 2013-10-30 at 22.21.34

And here you can see that during the conversion that I have two disks attached to my server and that the one at the bottom has got some new partitions for the gen 2 UEFI boot process

Screen Shot 2013-10-30 at 22.15.03

Happy converting and making generation 2 VM´s your standard in Hyper-V

SC VMM 2012 SP1 UR4 – fixes the Cluster resource bug

I have on my blog done a post about how the VMM 2012 Sp1 not updated the cluster resource when doing Live Storage migration from one CSV volume to another in a Hyper-V cluster and now in the Update Release 4 of VMM 2012 SP1 they have finally fixed it!

Here you can see the Issue 13 that has been fixed

Screen Shot 2013-10-29 at 23.08.44

Also as in Issue 15 there was stuff left after a canceled or failed migration

Screen Shot 2013-10-29 at 23.09.00

One thing that could have been a wish was that they in this UR would have added the Windows 2012 R2 as an operating system, you can run Windows 2012 R2 as virtual machines in your 2012 Hyper-V but not assign the right OS on the properties on the VMM 2012 Sp1 :-(


In Hyper-V this does not have an impact for the successful boot as in VMware VM´s where you set the best matching OS for the boot process to work flawlessly. In Hyper-V it uses the same BIOS for all your VM´s and this list is something for VMM and the database.

Strange Creation Date on Hyper-V 2012 R2 VM

I have some VM´s on my new Windows 2012 R2 host that have a strange creation date on the properties.

The VM´s have been created on different times and it was a customer that noticed it.

quite fun as there was not computers or even Hyper-V invented in the 17 century or was it? 😉

Here is my lab/demo VMM 2012 R2 virtual machine and as you can see it is created the 1 of january 1601



and here is the other virtual machine, a windows 8 template

Screen Shot 2013-10-29 at 21.59.33


I have not been able to reproduce it now with either PowerShell or via the GUI, If you have seen the same issue please comment the post :-)

Updated download script for evaluation VHD for SysCtr 2012 R2

Now when the evaluation VHD´s have been updated with the release of the System Center R2 that was released last week I have updated my download script so you easily can get all the files at a convenient place with PowerShell and the BITS engine.

Good luck in your evaluation of the System Center 2012 R2 suite :-)


My experience on the newly released VMM 2012 R2 RTM

So as everyone else (at least an ITPRO with some dignity and self respect) I have started to download the System Center 2012 R2 as it was released just some hours ago! The link appeared on my technet subscription page about 1 PM in Swedish time

Screen Shot 2013-10-17 at 13.06.16

I started to Install the VM for my VMM and of course I created it as an Generation 2 VM on my Hyper-V R2 host.. In the preview, VMM could not manage gen2 VM´s but now we will see about that. Before installing VMM I had to download and install Windows 8.1 ADK and an SQL server.

Screen Shot 2013-10-17 at 14.26.04

And then when I had an successful installation I wanted to add at least one Hyper-V server, the funny part here is that I have activated Hyper-V on this Windows 2012 R2 and why it is saying unknown hypervisor beats me :-) . Fortunately I could proceed to add the host

Screen Shot 2013-10-17 at 14.44.26

And then I wanted to check the Gen2 VMM server I had created and see if it was viewable in the VMM console and also the system volume could be expanded when the VM was powered on (in earlier versions of VMM that has sometimes been a nono for example with VM additions )

Screen Shot 2013-10-17 at 14.51.09

Screen Shot 2013-10-17 at 15.04.35

As you can see there is no possibility in the VMM console to shrink the disk so there I have to use the Hyper-V Manager.. ( I have tried to enter a lower value but the gui won’t allow me to do it) So much for one place for all management.. In the following screendump you can see the option to shrink the storage from the Hyper-V manager wizard.

Screen Shot 2013-10-17 at 15.06.42

 And as you remember one of the new fine features in the Hyper-V R2 was the full feature RDP access to the VM through the VMbus, why has that not been implemented in the VMM??

Screen Shot 2013-10-17 at 15.14.40

 This old vmm viewer reminds me of the VMM 2008 with no additional features that I get in the Hyper-V Virtual machine connection..

Screen Shot 2013-10-17 at 15.15.56

I will continue to explore the VMM 2012 R2 and there might be some more blog posts coming and until then, good luck in your deployments :-)

Converting VHD´s to VHDX in SCVMM 2012 SP1 with PowerShell

I have in an earlier post described my little PowerShell function to migrate VM´s from a Windows 2008 R2 cluster to a new Windows 2012 Hyper-V cluster in VMM.

As it is a best practice to convert your VHD´s to VHDX I wanted to do that with SCVMM 2012 Sp1 also. It is a small detail that you need to be aware of when doing it in the VMM console, it does not remove the old VHD file from the datastore and in the GUI it is no checkbox for that either. This is the case for both VMM 2012 SP1 and R2 Preview. And if you start converting several VM´s VHD´s there is a possibility that your datastore will become full quite fast and that is not so good!

Screen Shot 2013-10-04 at 14.39.44

And on the folder where the virtual harddisk resides you can see that the vhd still exists..

Screen Shot 2013-10-04 at 14.57.15

In the PowerShell cmdlet Convert-VirtualDiskDrive there is a parameter -deletesource that removes the VHD once the conversion has completed :-)

So I have made a PowerShell function if you want to convert all your VHD´s on the virtual machine.

Good luck in getting the Hyper-V 2012 environment in the best shape ever before moving to 2012 R2!

PowerShell to the rescue when counting seminar attendees in Outlook

My company is going to host a seminar this thursday on Microsoft Sweden in the subject of Switch To Hyper-V.

Today I got the registrations from the guy receiving them from the company webpage. Every registration that is done results in a mail (yes I know! it is so old fashioned!!) Here is an example mail msg:

Screen Shot 2013-09-30 at 21.08.55

So to collect the info about the attendees and the information I used PowerShell.

on ScriptingGuys page I found their massage of Outlook and I added Attachment and Body objects to it.

Screen Shot 2013-09-30 at 20.55.52

And then as every mail was sent from the admin-guy as an attachment I had to save them to a local directory and from there do the extraction. It would have been easy to do the save for all just in Outlook if not all of  the emails had the same name!!

Screen Shot 2013-09-30 at 17.03.44

To fix that I used PowerShell again

Screen Shot 2013-09-30 at 20.48.52

And here is my script to get the attendees objects out

if you do have the mails in the inbox and not as an attachements you could use $switch.Body instead of saving them and using Get-Item :-)

New PowerShell VM Inventory Script for SCVMM 2012 SP1/R2

about 1 1/2 years ago I made a script for Inventory Reporting in SCVMM 2012 and now I have been working on an update that supports VMM 2012 Sp1 and R2, there have been some changes in the cmdlets so now it was time to refresh it and add some information.

In VMM 2012 R2 the possibility to get the IP address has been added so I utilize that from VMM, if you are using the SP1 version I can get the IP address from the Hyper-V PowerShell module and the cmdlet Get-VMNetworkadapter, that works only on Hyper-V 2012 Hosts and the Integration components have to be updated. The function reports the number of NIC´s and VHD´s but not show all, I have chosen to just add one virtual NIC and three virtual hard disks in this, that can be altered if you want and just add in the hash table.

In this new function I have added a switch parameter that lets you select if you want a html/csv report or just work with the objects that comes out of it when running :-)

To use it you can just use one of several ways with parameters

Screen Shot 2013-09-29 at 22.38.05


And here is the script function

And here is an example of the csv report, and yes it is much info, the CSV can be scrolled quite a bit :-)

Screen Shot 2013-09-29 at 22.27.45

You can select what you want included in the report by just using the function and pipe it to Export-CSV



Migration script for VM´s moving to Hyper-v 2012 from 2008r2 with VMM

As you might have been reading on my blog about the implementation of the SCVMM 2012 SP1 I have been doing at a customer and the challenges with networking and hosts.

Now the turn has come to migrate those VM´s that reside on the old 2008 R2 cluster to the new shiny Hyper-V 2012 cluster. The approach this time has been to use the VMM and migrate them between the clusters.

VMM 2012 SP1 has some shortcomings when it comes to different configured clusters and their networks. With a bit of crafty PowerShelling I solved that.

So the error was that I could not set the network that I wanted in the migration on the target.. In the VMM Console I get a error and could not continue :

Screen Shot 2013-09-26 at 09.47.36

Then I thought that its maybe an issue in the GUI and can be override in the PowerShell console but NOOOO there exist no parameter for setting the virtual switch :-(

Screen Shot 2013-09-26 at 09.44.49

So I wrote a little script function that first get the VLAN information on the network adapters connected on the VM and then disconnects the virtual network adapters for the VM before migration and then the migration succeeds  :-) and after the migration I connect the virtual network adapters to the VM networks on the new logic switch that correlates to the right VLAN from the source.

from a previous bad experience when trying to migrate VM´s between versions of Hyper-V on VMM with snapshots (Checkpoints) I added a check in the function to not allow migration of VM´s that have active snapshots.

Screen Shot 2013-09-26 at 14.28.54

And here is the script (will do some more thorough testing and add some functionallity but it gives you the idea )