Virtualisation is a great technique for creating demo labs. I took my laptop with a bunch of VMs of Windows 8/Server 8 to the PowerShell Deep Dive. Normally I run my “server” laptop and my development laptop on a switch or connected via a cross over cable. The VM nics are bound to the “server” laptops real ethernet NIC.
This don’t work when you ( a ) forget the cross over cable and ( b ) have the battery collapse on the dev box. I needed to swap the VMs to run off the internal private Hyper-V network. Swapping the nics between virtual switches is easy but its a pain when you need to do a number of them.
Time for a couple of functions
function set-loopbackswitch { Get-VM | foreach { $nic = Get-VMNIC -VM $_ | where{$_.SwitchName -eq "Local Area Connection - Virtual Network"} Set-VMNICSwitch -NIC $nic -Virtualswitch "LoopBack" } } function set-realswitch { Get-VM | foreach { $nic = Get-VMNIC -VM $_ | where{$_.SwitchName -eq "LoopBack"} Set-VMNICSwitch -NIC $nic -Virtualswitch "Local Area Connection - Virtual Network" } }
These get the virtual machines and get the nics corresponding to the appropriate switch. It then swaps the the nic to the other switch. Created as 2 functions as its quicker to write.
The functions are based on James O’Neill’s Hyper-V library – if you haven’t got it it is on codeplex