Recreate a VM .. over and over again

For the kind of work I do, I have to create same kind of VM’s very frequently.. sometimes multiple times in a day. So I thought will automate the process and wrote a sample script… hope this helps.

 

Background

I am using Differencing Disks – the master HDD is a Windows 7 Trial , sysprep-ed and marked as Read-Only VHD. Locations are hardcoded. All I am doing is checking if the VM exists, stop and delete everything associated with the VM, then proceed to creating the differencing disk and then the VM. If the VM doesn’t exist, just create the VHD, VM and start the VM.

     

    1: $vm = (Get-VM -ComputerName TheHulk -Name MyWin7Trial).Name 
    2:  
    3: IF ($vm -eq "MyWin7Trial"){
    4: Stop-VM -Name MyWin7Trial -ComputerName TheHulk -Force -TurnOff
    5:  
    6: # delete existing VM
    7: Remove-VM -Name MyWin7Trial -ComputerName TheHulk -Force
    8: # Delete existing Differencing disk
    9: Remove-Item D:\RunningVHD\Win7Trial\* -recurse
   10: "Deleted VM"
   11: }
   12: # Create new VHDX
   13: New-VHD -ParentPath E:\MasterHDD\Win7MasterHDD.vhdx -Path D:\RunningVHD\Win7Trial\MyWinTrial.vhdx  -Differencing
   14: # Create VM
   15: New-VM -VHDPath D:\RunningVHD\Win7Trial\MyWinTrial.vhdx -ComputerName TheHulk -MemoryStartupBytes 4294967296 -Name MyWin7Trial -Path D:\RunningVHD\Win7Trial\
   16: Start-VM -Name MyWin7Trial -ComputerName TheHulk

   

This is a very simple sample… make it as complicated as you need it!

 

Cheers Smile,

Priyo Lahiri