Come trovare immagini di VM Windows in Azure Marketplace con Azure PowerShellHow to find Windows VM images in the Azure Marketplace with Azure PowerShell

Questo articolo descrive come usare Azure PowerShell per trovare immagini di VM in Microsoft Azure Marketplace.This article describes how to use Azure PowerShell to find VM images in the Azure Marketplace. Usare queste informazioni per specificare un'immagine del Marketplace quando si crea una macchina virtuale a livello di codice mediante PowerShell, modelli di Resource Manager o altri strumenti.Use this information to specify a Marketplace image when you create a VM programmatically with PowerShell, Resource Manager templates, or other tools.

Sfogliare poi le immagini e le offerte disponibili usando la vetrina di Azure Marketplace, il portale di Azure o l'interfaccia della riga di comando di Azure.Also browse available images and offers using the Azure Marketplace storefront, the Azure portal, or the Azure CLI.

Verificare di aver prima installato e configurato il modulo di Azure PowerShell più recente.Make sure that you installed and configured the latest Azure PowerShell module.

TerminologiaTerminology

Un'immagine del Marketplace in Azure presenta gli attributi seguenti:A Marketplace image in Azure has the following attributes:

  • Server di pubblicazione: un'organizzazione che ha creato l'immagine.Publisher - The organization that created the image. Esempi: Canonical, MicrosoftWindowsServerExamples: Canonical, MicrosoftWindowsServer
  • Offerta: nome di un gruppo di immagini correlate create da un server di pubblicazione.Offer - Name of a group of related images created by a publisher. Esempi: Ubuntu Server, WindowsServerExamples: Ubuntu Server, WindowsServer
  • SKU: un'istanza di un'offerta, ad esempio una versione principale di una distribuzione.SKU - An instance of an offer, such as a major release of a distribution. Esempi: 16.04-LTS, 2016-DatacenterExamples: 16.04-LTS, 2016-Datacenter
  • Versione: il numero di versione di un'immagine SKU.Version - The version number of an image SKU.

Per identificare un'immagine del Marketplace quando si distribuisce una macchina virtuale a livello di codice, specificare questi valori singolarmente come parametri; in alternativa, alcuni strumenti accettano l'URN dell'immagine.To identify a Marketplace image when you deploy a VM programmatically, supply these values individually as parameters, or some tools accept the image URN. L'URN combina tali valori, separati dal carattere due punti (:): Server di pubblicazione:Offerta:SKU:Versione.The URN combines these values, separated by the colon (:) character: Publisher:Offer:Sku:Version. In un URN è possibile sostituire il numero di versione con "latest", che seleziona la versione più recente dell'immagine.In a URN, you can replace the version number with "latest", which selects the latest version of the image.

Se il server di pubblicazione di immagini fornisce condizioni di licenza e di acquisto aggiuntive, è necessario accettare tali condizioni e abilitare la distribuzione a livello di codice.If the image publisher provides additional license and purchase terms, you must accept those terms and enable programmatic deployment. È inoltre necessario fornire i parametri del piano di acquisto quando si distribuisce una macchina virtuale a livello di codice.You also need to supply purchase plan parameters when deploying a VM programmatically. Vedere Distribuire un'immagine con le condizioni del Marketplace.See Deploy an image with Marketplace terms.

Tabella delle immagini Windows usate comunementeTable of commonly used Windows images

EditorePublisher OffertaOffer SkuSku
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2016-Datacenter2016-Datacenter
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2016-Datacenter-Server-Core2016-Datacenter-Server-Core
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2016-Datacenter-with-Containers2016-Datacenter-with-Containers
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2016-Nano-Server2016-Nano-Server
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2012-R2-Datacenter2012-R2-Datacenter
MicrosoftWindowsServerMicrosoftWindowsServer WindowsServerWindowsServer 2008 R2-SP12008-R2-SP1
MicrosoftDynamicsNAVMicrosoftDynamicsNAV DynamicsNAVDynamicsNAV 20172017
MicrosoftSharePointMicrosoftSharePoint MicrosoftSharePointServerMicrosoftSharePointServer 20162016
MicrosoftSQLServerMicrosoftSQLServer SQL2014SP2-WS2012R2SQL2014SP2-WS2012R2 EnterpriseEnterprise
MicrosoftWindowsServerHPCPackMicrosoftWindowsServerHPCPack WindowsServerHPCPackWindowsServerHPCPack 2012R22012R2
MicrosoftWindowsServerEssentialsMicrosoftWindowsServerEssentials WindowsServerEssentialsWindowsServerEssentials WindowsServerEssentialsWindowsServerEssentials

Un altro modo per trovare un'immagine in una posizione consiste nell'eseguire in sequenza di cmdlet Get AzureRMVMImagePublisher, Get AzureRMVMImageOffer e Get AzureRMVMImageSku.Another way to find an image in a location is to run the Get-AzureRMVMImagePublisher, Get-AzureRMVMImageOffer, and Get-AzureRMVMImageSku cmdlets in sequence. Con questi comandi si determinano questi valori:With these commands, you determine these values:

  1. Elencando gli editori di immagini.List the image publishers.
  2. Elencando le offerte di un determinato editore.For a given publisher, list their offers.
  3. Elencando le SKU di una determinata offerta.For a given offer, list their SKUs.

Quindi, per uno SKU selezionato, eseguire Get-AzureRMVMImage per ottenere un elenco delle versioni da distribuire.Then, for a selected SKU, run Get-AzureRMVMImage to list the versions to deploy.

In primo luogo, elencare gli editori con i seguenti comandi:First, list the publishers with the following commands:

$locName="<Azure location, such as West US>"
Get-AzureRMVMImagePublisher -Location $locName | Select PublisherName

Specificare il nome dell'editore prescelto ed eseguire i seguenti comandi:Fill in your chosen publisher name and run the following commands:

$pubName="<publisher>"
Get-AzureRMVMImageOffer -Location $locName -Publisher $pubName | Select Offer

Specificare il nome dell'offerta prescelta ed eseguire i seguenti comandi:Fill in your chosen offer name and run the following commands:

$offerName="<offer>"
Get-AzureRMVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus

Specificare il nome dello SKU scelto ed eseguire i comandi seguenti:Fill in your chosen SKU name and run the following commands:

$skuName="<SKU>"
Get-AzureRMVMImage -Location $locName -Publisher $pubName -Offer $offerName -Sku $skuName | Select Version

Dall'output del comando Get-AzureRMVMImage è possibile selezionare un'immagine di versione per distribuire una nuova macchina virtuale.From the output of the Get-AzureRMVMImage command, you can select a version image to deploy a new virtual machine.

I comandi seguenti mostrano un esempio completo:The following commands show a full example:

$locName="West US"
Get-AzureRMVMImagePublisher -Location $locName | Select PublisherName

Output:Output:

PublisherName
-------------
a10networks
aiscaler-cache-control-ddos-and-url-rewriting-
alertlogic
AlertLogic.Extension
Barracuda.Azure.ConnectivityAgent
barracudanetworks
basho
boxless
bssw
Canonical
...

Per l'editore MicrosoftWindowsServer:For the MicrosoftWindowsServer publisher:

$pubName="MicrosoftWindowsServer"
Get-AzureRMVMImageOffer -Location $locName -Publisher $pubName | Select Offer

Output:Output:

Offer
-----
Windows-HUB
WindowsServer
WindowsServerSemiAnnual

Per l'offerta WindowsServer:For the WindowsServer offer:

$offerName="WindowsServer"
Get-AzureRMVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus

Output:Output:

Skus
----
2008-R2-SP1
2008-R2-SP1-smalldisk
2012-Datacenter
2012-Datacenter-smalldisk
2012-R2-Datacenter
2012-R2-Datacenter-smalldisk
2016-Datacenter
2016-Datacenter-Server-Core
2016-Datacenter-Server-Core-smalldisk
2016-Datacenter-smalldisk
2016-Datacenter-with-Containers
2016-Datacenter-with-RDSH
2016-Nano-Server

Quindi, per lo SKU 2016-Datacenter:Then, for the 2016-Datacenter SKU:

$skuName="2016-Datacenter"
Get-AzureRMVMImage -Location $locName -Publisher $pubName -Offer $offerName -Sku $skuName | Select Version

Ora è possibile combinare l'editore, l'offerta, lo SKU e la versione selezionati in un URN (valori separati da :).Now you can combine the selected publisher, offer, SKU, and version into a URN (values separated by :). Passare questo URN con il parametro --image quando si crea una macchina virtuale con il cmdlet New-AzureRmVM.Pass this URN with the --image parameter when you create a VM with the New-AzureRmVM cmdlet. Facoltativamente, è possibile sostituire il numero di versione nell'URN con "latest",Remember that you can optionally replace the version number in the URN with "latest". che rappresenta sempre la versione più recente dell'immagine.This version is always the latest version of the image. È anche possibile usare l'URN con il cmdlet di PowerShell Set AzureRMVMSourceImage.You can also use the URN with the Set-AzureRMVMSourceImage PowerShell cmdlet.

Se si distribuisce una macchina virtuale con un modello di Resource Manager, impostare singolarmente i parametri dell'immagine nelle proprietà imageReference.If you deploy a VM with a Resource Manager template, you set the image parameters individually in the imageReference properties. Vedere le informazioni di riferimento sul modello.See the template reference.

Distribuire un'immagine con le condizioni del MarketplaceDeploy an image with Marketplace terms

Alcune immagini di macchine virtuali in Azure Marketplace hanno condizioni di licenza e di acquisto aggiuntive che è necessario accettare prima di procedere alla distribuzione a livello di codice.Certain VM images in the Azure Marketplace have additional license and purchase terms that you must accept before you can deploy them programmatically.

Per distribuire una macchina virtuale da tale immagine, è necessario accettarne le condizioni e abilitare la distribuzione a livello di codice.To deploy a VM from such an image, you need to accept the image's terms and enable programmatic deployment. Questa operazione deve essere eseguita una sola volta nell'ambito della sottoscrizione.You only need to do this one time in your subscription. Quindi, ogni volta che si distribuisce una macchina virtuale a livello di codice dall'immagine, è anche necessario specificare i parametri del piano di acquisto.Then, each time you deploy a VM programmatically from the image, you also need to specify purchase plan parameters.

Le sezioni seguenti mostrano come:The following sections show how to:

  • Scoprire se un'immagine del Marketplace ha condizioni di licenza aggiuntiveFind out if a Marketplace image has additional license terms
  • Accettare le condizioni a livello di codiceAccept the terms programmatically
  • Specificare i parametri del piano di acquisto quando si distribuisce una macchina virtuale a livello di codiceProvide purchase plan parameters when you deploy a VM programmatically

Visualizzare le proprietà del pianoView plan properties

Per visualizzare informazioni sul piano di acquisto di un'immagine, eseguire il cmdlet Get-AzureRMVMImage.To view an image's purchase plan information, run the Get-AzureRMVMImage cmdlet. Se la proprietà PurchasePlan nell'output non è null, l'immagine presenta condizioni che è necessario accettare prima della distribuzione a livello di codice.If the PurchasePlan property in the output is not null, the image has terms you need to accept before programmatic deployment.

Ad esempio, l'immagine Windows Server 2016 Datacenter non ha condizioni aggiuntive, perché l'informazione PurchasePlan è null:For example, the Windows Server 2016 Datacenter image doesn't have additional terms, because the PurchasePlan information is null:

$version = "2016.127.20170406"
Get-AzureRMVMImage -Location $locName -Publisher $pubName -Offer $offerName -Skus $skuName -Version $version

Output:Output:

Id               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2016-Datacenter/
                   Versions/2016.127.20170406
Location         : westus
PublisherName    : MicrosoftWindowsServer
Offer            : WindowsServer
Skus             : 2016-Datacenter
Version          : 2016.127.20170406
FilterExpression :
Name             : 2016.127.20170406
OSDiskImage      : {
                     "operatingSystem": "Windows"
                   }
PurchasePlan     : null
DataDiskImages   : []

Eseguendo un comando analogo per l'immagine Macchina virtuale di data science - Windows 2016 vengono visualizzate le proprietà PurchasePlan seguenti: name, product e publisher.Running a similar command for the Data Science Virtual Machine - Windows 2016 image shows the following PurchasePlan properties: name, product, and publisher. (Alcune immagini hanno anche una proprietà promotion code.) Per distribuire questa immagine, vedere le sezioni seguenti per accettare le condizioni e abilitare la distribuzione a livello di codice.(Some images also have a promotion code property.) To deploy this image, see the following sections to accept the terms and enable programmatic deployment.

Get-AzureRMVMImage -Location "westus" -Publisher "microsoft-ads" -Offer "windows-data-science-vm" -Skus "windows2016" -Version "0.2.02"

Output:Output:

Id               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-ads/ArtifactTypes/VMIma
                   ge/Offers/windows-data-science-vm/Skus/windows2016/Versions/0.2.02
Location         : westus
PublisherName    : microsoft-ads
Offer            : windows-data-science-vm
Skus             : windows2016
Version          : 0.2.02
FilterExpression :
Name             : 0.2.02
OSDiskImage      : {
                     "operatingSystem": "Windows"
                   }
PurchasePlan     : {
                     "publisher": "microsoft-ads",
                     "name": "windows2016",
                     "product": "windows-data-science-vm"
                   }
DataDiskImages   : []

Accettare le condizioniAccept the terms

Per visualizzare le condizioni di licenza, usare il cmdlet Get-AzureRmMarketplaceterms e passare i parametri del piano di acquisto.To view the license terms, use the Get-AzureRmMarketplaceterms cmdlet and pass in the purchase plan parameters. L'output include un collegamento alle condizioni di licenza per l'immagine del Marketplace e mostra se le condizioni sono già state accettate in precedenza.The output provides a link to the terms for the Marketplace image and shows whether you previously accepted the terms. Ad esempio: For example:

Get-AzureRmMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"

Output:Output:

Publisher         : microsoft-ads
Product           : windows-data-science-vm
Plan              : windows2016
LicenseTextLink   : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DV
                    M%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature         : 2UMWH6PHSAIM4U22HXPXW25AL2NHUJ7Y7GRV27EBL6SUIDURGMYG6IIDO3P47FFIBBDFHZHSQTR7PNK6VIIRYJRQ3WXSE6BTNUNENXA
Accepted          : False
Signdate          : 2/23/2018 7:43:00 PM

Usare il cmdlet Set-AzureRmMarketplaceterms per accettare o rifiutare le condizioni.Use the Set-AzureRmMarketplaceterms cmdlet to accept or reject the terms. È sufficiente accettare le condizioni per l'immagine una sola volta per ogni sottoscrizione.You only need to accept terms once per subscription for the image. Ad esempio: For example:


$agreementTerms=Get-AzureRmMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"

Set-AzureRmMarketplaceTerms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016" -Terms $agreementTerms -Accept

Output:Output:

Publisher         : microsoft-ads
Product           : windows-data-science-vm
Plan              : windows2016
LicenseTextLink   : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DV
                    M%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature         : VNMTRJK3MNJ5SROEG2BYDA2YGECU33GXTD3UFPLPC4BAVKAUL3PDYL3KBKBLG4ZCDJZVNSA7KJWTGMDSYDD6KRLV3LV274DLBJSS4GQ
Accepted          : True
Signdate          : 2/23/2018 7:49:31 PM

Distribuire usando i parametri di piano di acquistoDeploy using purchase plan parameters

Dopo aver accettato le condizioni per l'immagine, è possibile distribuire una macchina virtuale nella sottoscrizione.After accepting the terms for the image, you can deploy a VM in the subscription. Come illustrato nel frammento di codice seguente, usare il cmdlet Set-AzureRmVMPlan per impostare le informazioni sul piano di Azure Marketplace per l'oggetto macchina virtuale.As shown in the following snippet, use the Set-AzureRmVMPlan cmdlet to set the Marketplace plan information for the VM object. Per uno script completo per creare le impostazioni di rete per la macchina virtuale e completare la distribuzione, vedere gli esempi di script di PowerShell.For a complete script to create network settings for the VM and complete the deployment, see the PowerShell script examples.

...
$vmConfig = New-AzureRmVMConfig -VMName "myVM" -VMSize Standard_D1

# Set the Marketplace plan information
$vmConfig = Set-AzureRmVMPlan -VM $vmConfig -Publisher "imagePlanPublisher" -Product "imagePlanProduct" -Name "imagePlanName"

$cred=Get-Credential

$vmConfig = Set-AzureRmVMOperatingSystem -Windows -VM $vmConfig -ComputerName "myVM" -Credential $cred

# Set the Marketplace image
$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName "imagePublisher" -Offer "imageOffer" -Skus "imageSku" -Version "imageVersion"
...

A questo punto, passare la configurazione della macchina virtuale e gli oggetti di configurazione della rete al cmdlet New-AzureRmVM.You then pass the VM configuration along with network configuration objects to the New-AzureRmVM cmdlet.

Passaggi successiviNext steps

Per creare rapidamente una macchina virtuale con New-AzureRmVM usando informazioni di base sull'immagine, vedere Creare una macchina virtuale Windows con PowerShell.To create a virtual machine quickly with New-AzureRmVM by using basic image information, see Create a Windows virtual machine with PowerShell.

Vedere un esempio di script di PowerShell per Creare una macchina virtuale completamente configurata.See a PowerShell script example to Create a fully configured virtual machine.