I made so many I made a powershell script to create them. They each get a unique MAC address for a variety of reasons, but that MAC is static. It is limited to 65535 unique mac's though....
Note that I am using the vhdx file Avaya distributes. Adjust the RAM/CPU's to your preference. Note that I only put 1 NIC, you can add a powershell command to add a NIC. You want generation 8 so that your VM is compatible with a 2016 Hyper-V installation. I have exported this afterwards and given to the customer for import. If you are OCD you can set $pbxN to '01' or '001' and then the names all align for sorting purposes. (PBX01, PBX02, ... PBX10, PBX11).
$pbxN = 999
$pbxCustomer = "Customer Name"
$pbxVMName = "PBX$pbxN ($pbxCustomer)"
$pbxPath = "D:\IPO\PBX$pbxN"
$origVhdx = "D:\Templates\11.0\ipo_r11.vhdx"
$netSwitch = "Main Switch"
$drvPath = "$pbxPath"
$drvImg = "$drvPath\pbx$pbxN.vhdx"
$procCount = 4
$vlan = 42
$mac = '{0:X4}' -f $pbxN
$lanmac = "02155D00" + $mac
New-Item -path "$pbxPath" -type Directory
if (-not (test-path $drvImg)) {
copy "$origVhdx" "$drvImg"
New-VM -Name "$pbxVMName" -MemoryStartupBytes 4500MB -BootDevice VHD -VHDPath "$drvImg" -Path "$pbxPath" -Version 8.0 -Generation 1 -Switch "$netSwitch"
Set-VM -Name "$pbxVMName" -ProcessorCount $procCount –AutomaticStartAction Start
Set-VMNetworkAdapterVlan -VMName "$pbxVMName" -Access -VlanId $vlan
Set-VMNetworkAdapter -VMName "$pbxVMName" -DhcpGuard On -RouterGuard On -StaticMacAddress "$lanmac"
Rename-VMNetworkAdapter -VMName "$pbxVMName" -NewName "LAN"
} else {
Write-Host "Already Exists"
}