I have not blogged about creating a New-VM – frankly it is super simple. Just type New-VM with no parameters and you have a VM.
If you do this you have a New Virtual Machine and all Hyper-V VMs have a Network Adapter by default.
This kind of dictates the Verb that we use. Since there is one we won’t Add, we need to change properties. So we Get and then Set. Or if you are feeling brash just Set.
The traditional way (the way I learned in .Net programming class) to make a change without causing extra harm is to Get, change your setting, and Set.
Wait, hold the phone. That does not apply here. There is a Verb we don’t see much. Connect.
Using Get-VMNetworkAdapter -VMName New* I get the vNIC of the VM. And I need to capture that to an object.
$vmNic = Get-VMNetworkAdapter -VMName New*
In my last article I created a VMSwitch named “VMs”. This is what I need to attach the VM to. I cannot just modify the $vmNic.SwitchName, this is a ReadOnly property.
Connect-VMNetworkAdapter -VMNetworkAdapter $vmNic -SwitchName VMs
And, it is pretty flexible. I fed in the VM vNIC object using –VMNetworkAdapter. But I could also have used the –VMName (if it only has one vNIC) or pass in the VMSwitch object using –VMSwitch instead of –SwitchName
Also, New-VM also allows you to define a -SwitchName at creation time. But that is not as universally applicable.