¿Cómo incluir "Información del plan" cuando se crea ARM VM a partir de una imagen capturada con Powershell?

Tengo una ARM VM creada a partir de un Marketplace: bitnami LAMP (Ubuntu) He capturado con éxito una imagen. Durante la captura he guardado la plantilla json.

Utilizando una plantilla basada en eso, puedo crear con éxito nuevas máquinas virtuales a través de la instalación de implementación de plantillas del portal de forma interactiva. (entonces la imagen capturada está bien). Tenga en cuenta: esa plantilla jsonincluir información del plan, ver abajo

Sin embargo, mi objetivo original es crear nuevas máquinas virtuales ARM basadas en la imagen capturadausando Powershell

Sin embargo, todo parece funcionar en el último comando New-AzureRmVM devuelve y el error indica:

La creación de una máquina virtual a partir de la imagen de Marketplace requiere información del Plan en la solicitud.

Obviamente falta esta información, pero no puedo encontrar cómo agregarla.

Esto es lo que he intentado:

He examinado la variable $ vm (cuál es el parámetro del comando New-AzureRmVM) y su propiedad Plan está vacía. (como se esperaba)He buscado comandos Add-AzureRmVm ... apropiados sin éxitoIntenté establecer manualmente la propiedad Plan y sus subpropiedades entodo caso combinaciones: error de todas las thows. (como $ vm.Plan.Publisher = "bitnami")

En realidad, la plantilla json de la captura original contiene esa información del plan:

  },
  "name": "[parameters('vmName')]",
  "type": "Microsoft.Compute/virtualMachines",
  "location": "westeurope",
  "plan": {
    "name": "5-6",
    "publisher": "bitnami",
    "product": "lampstack"
  } 

Nuevamente, la imagen capturada (el .vhd) que este script intenta usar está confirmada OK, porque con la misma imagen capturada puedo crear nuevas máquinas virtuales ARM a través de la instalación de implementación de plantillas del portal.

Creo que la fuente no es demasiado importante en este caso (no hay ningún error, solo faltan cosas, pero esa cosa faltante se indica claramente en la pregunta) pero adjunto la fuente de todos modos ...Lectura opcional.

# Existing resource parameters
$subscriptionName =  'Visual Studio Premium with MSDN'
$rgName = "rg-wp"
$location = "westeurope"
$stName = 'mystorage' 
$sourceImageUri = 'https://mystorage.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/template-osDisk.be7b0cf4-a28b-47f9-89c7-43887f1570ab.vhd' 

# Creation settings:
$vmSize = 'Standard_DS2'
$vmSuffix = 'wp-11'

#Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName $subscriptionName

# Get the storage account
#$storageAccount = Get-AzureRmStorageAccount | ? StorageAccountName -EQ $stName
$storageAccount = Get-AzureRmStorageAccount -AccountName $stName -ResourceGroupName $rgName 

# Enable verbose output and stop on error
$VerbosePreference = 'Continue'
#$ErrorActionPreference = 'Stop'

$adminUsername = 'myusername'
$adminPassword = 'mypassword'

$vmName = '{0}-vm' -f $vmSuffix
$nicName = '{0}-nic' -f $vmSuffix
$ipName = '{0}-pip' -f $vmSuffix
$domName = '{0}-mzpx' -f $vmSuffix
$vnetName = '{0}-vn' -f $vmSuffix
$nsgName= '{0}-nsg' -f $vmSuffix


# Networking:
Write-Verbose 'Creating Virtual Network'  
$vnetDef = New-AzureRmVirtualNetwork -ResourceGroupName $rgName -Location $location -Name $vnetName -AddressPrefix '10.0.0.0/16'
Write-Verbose 'Adding subnet to Virtual Network'  
$vnet = $vnetDef | Add-AzureRmVirtualNetworkSubnetConfig -Name 'Subnet-1' -AddressPrefix '10.0.0.0/24' | Set-AzureRmVirtualNetwork

Write-Verbose 'Creating Public IP'  
$pip = New-AzureRmPublicIpAddress -ResourceGroupName $rgName -Location $location -Name $ipName -DomainNameLabel $domName -AllocationMethod Dynamic
Write-Verbose 'Creating NIC'  
$nsg = New-AzureRmNetworkSecurityGroup -Name $nsgName -ResourceGroupName $rgName -Location $location
Write-Verbose 'Network Security Group'  
$nic = New-AzureRmNetworkInterface -ResourceGroupName $rgName -Location $location -Name $nicName -PublicIpAddressId $pip.Id -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id

# Configuring VM
Write-Verbose 'Creating VM Config'  
$vm = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize 

# Specify local administrator account, and then add the NIC
$cred = New-Object PSCredential $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force) # you could use Get-Credential instead to get prompted
$vm = Set-AzureRmVMOperatingSystem -VM $vm -Linux -ComputerName $vmName -Credential $cred 
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id

# Specify the OS disk
$diskName = '{0}-osdisk' -f $vmSuffix
$osDiskUri = '{0}vhds/{1}{2}.vhd' -f $storageAccount.PrimaryEndpoints.Blob.ToString(), $vmName.ToLower(), $diskName
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage -SourceImageUri $sourceImageUri -Linux

Write-Verbose 'Creating VM...'  

$result = New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vm

Respuestas a la pregunta(3)

Su respuesta a la pregunta