There are two methods of cloning an existing guest VM: Templating and Copying. Templating has the issue of the clone retaining the original file name of the source. Therefore, it’s cleaner to follow the copying path to recreate machines.
# Step 1: Copy the .vhdx file to a new destination with a new name
$goldVhdxFile="\\SOMESHERVER\goldImages\CentOS8.vhdx"
$newName='AREA051'
$newPath='\\SOMESHERVER'
$newVhdxFile="$newPath\$newName.vhdx"
New-Item -ItemType File -Path $newVhdxFile -Force # touch before copying contents
Copy-Item $goldVhdxFile -Destination $newVhdxFile
# Step 2: Create New VM using an existing .vhdx file
$memory='8GB'
$switch='ExternalSwitch'
New-VM -Name $newName -MemoryStartupBytes $memory -Generation 2 -Switch $switch -BootDevice VHD -VHDPath $newVhdxFile -Path $newPath
# Step 3: start-up VM
Start-VM -Name $newName
VMConnect.exe $env:computername $newName
# Step 4: change machine settings
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules # clear persistent net rules
sudo nmtui # set hostname, IP address, gateway, and DNS
sudo reboot # restart machine
Categories: