Fixing Network Adapter settings on Checkpoints
Here is an interesting question from the Hyper-V forums:
In essence – the situation is that the user has:
- Created a virtual machine
- Connected it to a virtual switch
- Taken a checkpoint
- Deleted and recreated the virtual switch
Now, whenever they apply the old checkpoint – they get a configuration error message. They can fix up the virtual machine settings each time – but this is annoying. However, checkpoints are read-only and there is nothing you can do – right? Actually, wrong.
Changing the settings on a checkpoint is potentially dangerous – so we disable this through the Hyper-V Management UI. However, you can reach into the heart of Hyper-V and tinker with checkpoint settings if you know what you are doing.
This problem can be fixed with a little bit of PowerShell know-how.
What we want to do is to get any checkpoints that have network adapters connected to the old virtual switch – and reconnect them to the new virtual switch. The first task is to get all network adapters associated with checkpoints. Ordinarily – Get-VMNetworkAdapter will only return network adapters associated with virtual machines.
To get network adapters associated with virtual machine checkpoints – we have to run Get-VMCheckpoint * | Get-VMNetworkAdapter. And to fix up the issue reported – we need to run something like this:
Get-VMCheckpoint * | Get-VMNetworkAdapter | ? SwitchName -eq "Old Missing Virtual Switch" | Connect-VMNetworkAdapter -SwitchName "New Virtual Switch"
With the logical substitutions for the virtual switch names – of course.