Esercitazione: Creare e gestire macchine virtuali Windows con Azure PowerShellTutorial: Create and Manage Windows VMs with Azure PowerShell

Le macchine virtuali di Azure offrono un ambiente di elaborazione completamente configurabile e flessibile.Azure virtual machines provide a fully configurable and flexible computing environment. Questa esercitazione illustra gli elementi di base della distribuzione di una macchina virtuale di Azure, ad esempio la selezione delle dimensioni di una VM, la selezione dell'immagine di una VM e la distribuzione di una VM.This tutorial covers basic Azure virtual machine deployment items such as selecting a VM size, selecting a VM image, and deploying a VM. Si apprenderà come:You learn how to:

  • Creare e connettersi a una macchina virtualeCreate and connect to a VM
  • Selezionare e usare le immagini di una macchina virtualeSelect and use VM images
  • Visualizzare e usare macchine virtuali di dimensioni specificheView and use specific VM sizes
  • Ridimensionare una VMResize a VM
  • Visualizzare e comprendere lo stato di una macchina virtualeView and understand VM state

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.It has common Azure tools preinstalled and configured to use with your account. È sufficiente fare clic su Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Esistono alcuni modi per avviare Cloud Shell:There are a few ways to launch the Cloud Shell:

Fare clic su Prova nell'angolo superiore destro di un blocco di codice.Click Try It in the upper right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/powershell
Fare clic sul pulsante Cloud Shell nel menu in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper right of the Azure portal. Cloud Shell nel portaleCloud Shell in the portal

Se si sceglie di installare e usare PowerShell in locale, per questa esercitazione è necessario il modulo Azure PowerShell versione 5.7.0 o successiva.If you choose to install and use the PowerShell locally, this tutorial requires the Azure PowerShell module version 5.7.0 or later. Eseguire Get-Module -ListAvailable AzureRM per trovare la versione.Run Get-Module -ListAvailable AzureRM to find the version. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Se si esegue PowerShell in locale, è anche necessario eseguire Connect-AzureRmAccount per creare una connessione con Azure.If you are running PowerShell locally, you also need to run Connect-AzureRmAccount to create a connection with Azure.

Creare un gruppo di risorseCreate resource group

Creare un gruppo di risorse con comando New-AzureRmResourceGroup.Create a resource group with the New-AzureRmResourceGroup command.

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.An Azure resource group is a logical container into which Azure resources are deployed and managed. Il gruppo di risorse deve essere creato prima della macchina virtuale.A resource group must be created before a virtual machine. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroupVM nell'area EastUS:In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

New-AzureRmResourceGroup -ResourceGroupName "myResourceGroupVM" -Location "EastUS"

Il gruppo di risorse viene specificato quando si crea o si modifica una VM, come viene illustrato in questa esercitazione.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Crea macchina virtualeCreate virtual machine

Per la creazione di una macchina virtuale sono disponibili diverse opzioni, ad esempio l'immagine del sistema operativo, configurazione di rete e credenziali amministrative.When creating a virtual machine, several options are available such as operating system image, network configuration, and administrative credentials. In questo esempio viene creata una macchina virtuale con un nome myVM che esegue la versione predefinita più recente di Windows Server 2016 Datacenter.In this example, a virtual machine is created with a name of myVM running the default latest version of Windows Server 2016 Datacenter.

Impostare il nome utente e la password necessari per l'account amministratore della macchina virtuale con Get-Credential:Set the username and password needed for the administrator account on the virtual machine with Get-Credential:

$cred = Get-Credential

Creare la macchina virtuale con New-AzureRmVM.Create the virtual machine with New-AzureRmVM.

New-AzureRmVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

Connettersi alla macchina virtualeConnect to VM

Dopo aver completato la distribuzione, creare una connessione desktop remoto con la macchina virtuale.After the deployment has completed, create a remote desktop connection with the virtual machine.

Eseguire i comandi seguenti per restituire l'indirizzo IP pubblico della macchina virtuale.Run the following commands to return the public IP address of the virtual machine. Annotare questo indirizzo IP, in modo da potersi connettere ad esso con il browser per testare la connettività Web in un passaggio futuro.Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

Get-AzureRmPublicIpAddress -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

Usare il comando seguente nel computer locale per creare una sessione desktop remoto con la macchina virtuale.Use the following command, on your local machine, to create a remote desktop session with the virtual machine. Sostituire l'indirizzo IP con l'indirizzo publicIPAddress della macchina virtuale.Replace the IP address with the publicIPAddress of your virtual machine. Quando richiesto, immettere le credenziali utilizzate durante la creazione della macchina virtuale.When prompted, enter the credentials used when creating the virtual machine.

mstsc /v:<publicIpAddress>

Nella finestra Sicurezza di Windows selezionare Altre opzioni e quindi Usa un altro account.In the Windows Security window, select More choices and then Use a different account. Digitare il nome utente e la password creati per la macchina virtuale e quindi fare clic su OK.Type the username and password you created for the virtual machine and then click OK.

Informazioni sulle immagini delle VMUnderstand VM images

Azure Marketplace include diverse immagini di macchine virtuali che possono essere usate per creare nuove VM.The Azure marketplace includes many virtual machine images that can be used to create a new virtual machine. Nei passaggi precedenti è stata creata una macchina virtuale usando l'immagine Windows Server 2016 Datacenter.In the previous steps, a virtual machine was created using the Windows Server 2016 Datacenter image. In questo passaggio viene usato il modulo PowerShell per cercare nel marketplace altre immagini di Windows che possono essere usate come base per nuove macchine virtuali.In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. Questo processo consiste nell'individuazione del server di pubblicazione, dell'offerta, dello SKU e, facoltativamente, di un numero di versione per identificare l'immagine.This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Usare il comando Get-AzureRmVMImagePublisher per restituire un elenco di server di pubblicazione di immagini:Use the Get-AzureRmVMImagePublisher command to return a list of image publishers:

Get-AzureRmVMImagePublisher -Location "EastUS"

Usare Get-AzureRmVMImageOffer per restituire un elenco di offerte delle immagini.Use the Get-AzureRmVMImageOffer to return a list of image offers. Con questo comando, l'elenco restituito viene filtrato nel server di pubblicazione specificato:With this command, the returned list is filtered on the specified publisher:

Get-AzureRmVMImageOffer -Location "EastUS" -PublisherName "MicrosoftWindowsServer"
Offer             PublisherName          Location
-----             -------------          -------- 
Windows-HUB       MicrosoftWindowsServer EastUS 
WindowsServer     MicrosoftWindowsServer EastUS   
WindowsServer-HUB MicrosoftWindowsServer EastUS   

Il comando Get-AzureRmVMImageSku verrà quindi filtrato in base al nome del server di pubblicazione e dell'offerta per restituire un elenco di nomi di immagini.The Get-AzureRmVMImageSku command will then filter on the publisher and offer name to return a list of image names.

Get-AzureRmVMImageSku -Location "EastUS" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer"
Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

È possibile usare queste informazioni per distribuire una macchina virtuale con un'immagine specifica.This information can be used to deploy a VM with a specific image. Questo esempio distribuisce una macchina virtuale tramite la versione più recente di Windows Server 2016 con immagine del contenitore.This example deploys a virtual machine using the latest version of a Windows Server 2016 with Containers image.

New-AzureRmVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

Il parametro -AsJob crea la VM come attività in background, in modo che i prompt di PowerShell vengano restituiti all'utente.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. È possibile visualizzare i dettagli dei processi in background con il cmdlet Get-Job.You can view details of background jobs with the Get-Job cmdlet.

Informazioni sulle dimensioni delle VMUnderstand VM sizes

La dimensioni di una macchina virtuale determinano la quantità di risorse di calcolo, ad esempio CPU, GPU e memoria, disponibili per la macchina virtuale.A virtual machine size determines the amount of compute resources such as CPU, GPU, and memory that are made available to the virtual machine. Le macchine virtuali devono essere create con dimensioni adeguate per il carico di lavoro previsto.Virtual machines need to be created with a size appropriate for the expect workload. Se aumenta il carico di lavoro, è possibile ridimensionare una macchina virtuale esistente.If workload increases, an existing virtual machine can be resized.

Dimensioni delle VMVM Sizes

La tabella seguente classifica le dimensioni a seconda dei casi d'uso.The following table categorizes sizes into use cases.

typeType Dimensioni comuniCommon sizes DESCRIZIONEDescription
Utilizzo genericoGeneral purpose Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Rapporto equilibrato tra CPU e memoria.Balanced CPU-to-memory. Soluzione ideale per sviluppo/test e soluzioni di dati e applicazioni medio-piccole.Ideal for dev / test and small to medium applications and data solutions.
Ottimizzate per il calcoloCompute optimized Fs, FFs, F Rapporto elevato tra CPU e memoria.High CPU-to-memory. Soluzione idonea per applicazioni con livelli medi di traffico, dispositivi di rete e processi batch.Good for medium traffic applications, network appliances, and batch processes.
Ottimizzate per la memoriaMemory optimized Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, DEsv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Rapporto elevato tra memoria e core.High memory-to-core. Soluzione ideale per database relazionali, cache medio-grandi e analisi in memoria.Great for relational databases, medium to large caches, and in-memory analytics.
Ottimizzate per l'archiviazioneStorage optimized LsLs I/O e velocità effettiva del disco elevati.High disk throughput and IO. Ideale per Big Data, database SQL e NoSQL.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NCNV, NC VM specializzate ottimizzate per livelli intensivi di rendering della grafica e modifica di video.Specialized VMs targeted for heavy graphic rendering and video editing.
Prestazioni elevateHigh performance H, A8-11H, A8-11 Le VM con CPU più potenti, con interfacce di rete ad alta velocità effettiva opzionali (RDMA).Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Trovare le dimensioni delle macchine virtuali disponibiliFind available VM sizes

Per visualizzare un elenco delle dimensioni delle VM disponibili in una determinata area, usare il comando Get-AzureRmVMSize.To see a list of VM sizes available in a particular region, use the Get-AzureRmVMSize command.

Get-AzureRmVMSize -Location "EastUS"

Ridimensionare una VMResize a VM

Dopo la distribuzione di una VM, è possibile ridimensionarla per aumentare o ridurre l'allocazione delle risorse.After a VM has been deployed, it can be resized to increase or decrease resource allocation.

Prima di ridimensionare una macchina virtuale, verificare che le dimensioni desiderate siano disponibili nel cluster della VM corrente.Before resizing a VM, check if the desired size is available on the current VM cluster. Il comando Get-AzureRmVMSize restituisce un elenco di dimensioni.The Get-AzureRmVMSize command returns a list of sizes.

Get-AzureRmVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

Se le dimensioni desiderate sono disponibili, la VM può essere ridimensionata mentre è accesa, ma durante l'operazione viene riavviata.If the desired size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

$vm = Get-AzureRmVM -ResourceGroupName "myResourceGroupVM"  -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_D4"
Update-AzureRmVM -VM $vm -ResourceGroupName "myResourceGroupVM"

Se nel cluster corrente non sono disponibili le dimensioni desiderate, è necessario deallocare la VM prima di poter eseguire l'operazione di ridimensionamento.If the desired size is not on the current cluster, the VM needs to be deallocated before the resize operation can occur. Si noti che, quando la macchina virtuale viene riaccesa, vengono rimossi tutti i dati sul disco temporaneo, mentre l'indirizzo IP pubblico cambia a meno che non venga usato un indirizzo IP statico.Note, when the VM is powered back on, any data on the temp disk are removed, and the public IP address change unless a static IP address is being used.

Stop-AzureRmVM -ResourceGroupName "myResourceGroupVM" -Name "myVM" -Force
$vm = Get-AzureRmVM -ResourceGroupName "myResourceGroupVM"  -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_F4s"
Update-AzureRmVM -VM $vm -ResourceGroupName "myResourceGroupVM"
Start-AzureRmVM -ResourceGroupName "myResourceGroupVM"  -Name $vm.name

Stati di alimentazione di una macchina virtualeVM power states

Una macchina virtuale di Azure può avere uno dei diversi stati di alimentazione.An Azure VM can have one of many power states. Questo stato rappresenta lo stato corrente della VM dal punto di vista dell'hypervisor.This state represents the current state of the VM from the standpoint of the hypervisor.

Stati di alimentazionePower states

Stato di alimentazionePower State DESCRIZIONEDescription
Avvio in corsoStarting Indica che è in corso l'avvio della macchina virtuale.Indicates the virtual machine is being started.
In esecuzioneRunning Indica che la macchina virtuale è in esecuzione.Indicates that the virtual machine is running.
StoppingStopping Indica che è in corso l'arresto della macchina virtuale.Indicates that the virtual machine is being stopped.
ArrestatoStopped Indica che la macchina virtuale è stata arrestata.Indicates that the virtual machine is stopped. Si noti che alle macchine virtuali con stato arrestato continuano a essere addebitati i costi di calcolo.Note that virtual machines in the stopped state still incur compute charges.
DeallocazioneDeallocating Indica che è in corso la deallocazione della macchina virtuale.Indicates that the virtual machine is being deallocated.
DeallocatoDeallocated Indica che la macchina virtuale è stata rimossa completamente dall'hypervisor, ma è ancora disponibile nel piano di controllo.Indicates that the virtual machine is completely removed from the hypervisor but still available in the control plane. Alle macchine virtuali con stato deallocato non vengono addebitati i costi di calcolo.Virtual machines in the Deallocated state do not incur compute charges.
- Indica che lo stato di alimentazione della macchina virtuale è sconosciuto.Indicates that the power state of the virtual machine is unknown.

Trovare lo stato di alimentazioneFind power state

Per recuperare lo stato di una determinata VM, usare il comando Get-AzureRmVM.To retrieve the state of a particular VM, use the Get-AzureRmVM command. Assicurarsi di specificare un nome valido per una macchina virtuale e un gruppo di risorse.Be sure to specify a valid name for a virtual machine and resource group.

Get-AzureRmVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

Output:Output:

Status
------
PowerState/running

Attività di gestioneManagement tasks

Durante il ciclo di vita di una macchina virtuale si eseguono attività di gestione come l'avvio, l'arresto o l'eliminazione della macchina virtuale.During the lifecycle of a virtual machine, you may want to run management tasks such as starting, stopping, or deleting a virtual machine. È consigliabile creare script per automatizzare le attività ripetitive o complesse.Additionally, you may want to create scripts to automate repetitive or complex tasks. Tramite Azure PowerShell è possibile eseguire molte attività di gestione comuni dalla riga di comando o con script.Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

Arrestare la macchina virtualeStop virtual machine

Arrestare e deallocare una macchina virtuale con Stop-AzureRmVM:Stop and deallocate a virtual machine with Stop-AzureRmVM:

Stop-AzureRmVM -ResourceGroupName "myResourceGroupVM" -Name "myVM" -Force

Se si vuole mantenere la macchina virtuale in uno stato di provisioning, usare il parametro -StayProvisioned.If you want to keep the virtual machine in a provisioned state, use the -StayProvisioned parameter.

Avviare la macchina virtualeStart virtual machine

Start-AzureRmVM -ResourceGroupName "myResourceGroupVM" -Name "myVM"

Eliminare un gruppo di risorseDelete resource group

Se si elimina un gruppo di risorse, vengono eliminate anche tutte le risorse in esso contenute.Deleting a resource group also deletes all resources contained within.

Remove-AzureRmResourceGroup -Name "myResourceGroupVM" -Force

Passaggi successiviNext steps

In questa esercitazione sono illustrate la creazione e la gestione di VM di base, ad esempio:In this tutorial, you learned about basic VM creation and management such as how to:

  • Creare e connettersi a una macchina virtualeCreate and connect to a VM
  • Selezionare e usare le immagini di una macchina virtualeSelect and use VM images
  • Visualizzare e usare macchine virtuali di dimensioni specificheView and use specific VM sizes
  • Ridimensionare una VMResize a VM
  • Visualizzare e comprendere lo stato di una macchina virtualeView and understand VM state

Passare all'esercitazione successiva per informazioni sui dischi di macchine virtuali.Advance to the next tutorial to learn about VM disks.