I want to share a little story which once again proved to me how easier IT is when you learn a little Powershell.
I recently had an outage on my Hyper-V server (Windows 10 server build 9841 btw) which hold my lab environment at home. The server lost connection with an SSD drive (E:\) containing almost 15 VMs, but this was luckily fixed my reattaching the SATA-cable to the drive.
However, when the server booted and my E:\ drive had returned, all the VMs on the drive was missing. Both in the Hyper-V management console and in powershell when I ran “Get-VM”. The files and VHDs was intact so it was only a matter of importing them to Hyper-V.
So here I had two choices:
- Import the VMs one by one in a 5-click wizard
- Import the VMs with Powershell
After fiddling around with sending the configuration files for each VM into a foreach loop, and still not making it work I tried something simpler. All I needed was a 1-liner which listed the config files and piped them into the import-vm cmdlet and the following line imported all the VMs on my E: drive into Hyper-V and I could start the VMs with no need to change any kind of configuration.
Get-ChildItem E:\Hyper-V -Recurse *.vmcx | Import-VM
Once again Powershell proves to be an amazing tool.