Caricare un disco rigido virtuale generalizzato in Azure e creare una nuova macchina virtualeUpload a generalized VHD to Azure to create a new VM

In questo argomento viene illustrato il caricamento di un disco non gestito in un account di archiviazione e quindi la creazione di una nuova macchina virtuale tramite il disco caricato.This topic covers uploading a generalized unmanaged disk to a storage account and then creating a new VM using the uploaded disk. Tutte le informazioni sull'account personale sono state rimosse da un'immagine di disco rigido virtuale generalizzato mediante Sysprep.A generalized VHD image has had all of your personal account information removed using Sysprep.

Se si vuole creare una VM da un disco rigido virtuale specializzato in un account di archiviazione, vedere Creare una macchina virtuale da un disco specializzato.If you want to create a VM from a specialized VHD in a storage account, see Create a VM from a specialized VHD.

In questo argomento viene illustrato l'uso degli account di archiviazione, ma si consiglia di passare all'uso di dischi gestiti.This topic covers using storage accounts, but we recommend customers move to using Managed Disks instead. Per una procedura dettagliata completa su come preparare, caricare e creare una nuova macchina virtuale mediante dischi gestiti, vedere Creare una nuova macchina virtuale da un disco rigido virtuale generalizzato e caricato in Azure usando Managed Disks.For a complete walk-through of how to prepare, upload and create a new VM using managed disks, see Create a new VM from a generalized VHD uploaded to Azure using Managed Disks.

Preparare la macchina virtualePrepare the VM

Tutte le informazioni sull'account personale sono state rimosse da un'immagine del disco rigido virtuale generalizzata tramite Sysprep.A generalized VHD has had all of your personal account information removed using Sysprep. Se si vuole usare il disco rigido virtuale come immagine dalla quale creare nuove macchine virtuali, è necessario:If you intend to use the VHD as an image to create new VMs from, you should:

Generalizzare una macchina virtuale Windows mediante SysprepGeneralize a Windows virtual machine using Sysprep

Questa sezione illustra come generalizzare la macchina virtuale di Windows da usare come immagine.This section shows you how to generalize your Windows virtual machine for use as an image. Sysprep rimuove anche tutte le informazioni sull'account personale e prepara la VM da usare come immagine.Sysprep removes all your personal account information, among other things, and prepares the machine to be used as an image. Per altre informazioni su Sysprep, vedere Come usare Sysprep: Introduzione.For details about Sysprep, see How to Use Sysprep: An Introduction.

Assicurarsi che i ruoli server in esecuzione sulla macchina siano supportati da Sysprep.Make sure the server roles running on the machine are supported by Sysprep. Per ulteriori informazioni, vedere Supporto Sysprep per i ruoli serverFor more information, see Sysprep Support for Server Roles

Importante

Se si esegue Sysprep prima di caricare il disco rigido virtuale in Azure per la prima volta, verificare di aver preparato la VM prima di eseguire Sysprep.If you are running Sysprep before uploading your VHD to Azure for the first time, make sure you have prepared your VM before running Sysprep.

  1. Accedere alla macchina virtuale Windows.Sign in to the Windows virtual machine.
  2. Aprire la finestra del prompt dei comandi come amministratore.Open the Command Prompt window as an administrator. Impostare la directory su %windir%\system32\sysprep, quindi eseguire sysprep.exe.Change the directory to %windir%\system32\sysprep, and then run sysprep.exe.
  3. Nella finestra di dialogo Utilità preparazione sistema selezionare Passare alla Configurazione guidata e verificare che la casella di controllo Generalizza sia selezionata.In the System Preparation Tool dialog box, select Enter System Out-of-Box Experience (OOBE), and make sure that the Generalize check box is selected.
  4. In Opzioni di arresto del sistema selezionare Arresta il sistema.In Shutdown Options, select Shutdown.
  5. Fare clic su OK.Click OK.

    Avvio di Sysprep

  6. Al termine, Sysprep arresta la macchina virtuale.When Sysprep completes, it shuts down the virtual machine.

Importante

Non riavviare la macchina virtuale fino a quando non viene completato il caricamento del disco rigido virtuale in Azure o la creazione dell'immagine dalla macchina virtuale.Do not restart the VM until you are done uploading the VHD to Azure or creating an image from the VM. Se la macchina virtuale viene riavviata accidentalmente, eseguire Sysprep per generalizzarla nuovamente.If the VM accidentally gets restarted, run Sysprep to generalize it again.

Caricare il disco rigido virtualeUpload the VHD

Caricare il disco rigido virtuale in un account di archiviazione di Azure.Upload the VHD to an Azure storage account.

Accedere ad AzureLog in to Azure

Se PowerShell versione 1.4 o successiva non è già stato installato, vedere Come installare e configurare Azure PowerShell.If you don't already have PowerShell version 1.4 or above installed, read How to install and configure Azure PowerShell.

  1. Aprire Azure PowerShell e accedere al proprio account di Azure.Open Azure PowerShell and sign in to your Azure account. Verrà visualizzata una finestra popup in cui immettere le credenziali dell'account Azure.A pop-up window opens for you to enter your Azure account credentials.

    Login-AzureRmAccount
    
  2. Ottenere l'ID di sottoscrizione per le sottoscrizioni disponibili.Get the subscription IDs for your available subscriptions.

    Get-AzureRmSubscription
    
  3. Impostare la sottoscrizione corretta utilizzandone l'ID.Set the correct subscription using the subscription ID. Sostituire <subscriptionID> con l'ID della sottoscrizione corretta.Replace <subscriptionID> with the ID of the correct subscription.

    Select-AzureRmSubscription -SubscriptionId "<subscriptionID>"
    

Ottenere l'account di archiviazioneGet the storage account

Per archiviare l'immagine della VM caricata, è necessario un account di archiviazione di Azure.You need a storage account in Azure to store the uploaded VM image. È possibile usare un account di archiviazione esistente o crearne uno nuovo.You can either use an existing storage account or create a new one.

Per mostrare gli account di archiviazione disponibili, digitare:To show the available storage accounts, type:

Get-AzureRmStorageAccount

Se si vuole usare un account di archiviazione esistente, passare alla sezione Caricare l'immagine della VM .If you want to use an existing storage account, proceed to the Upload the VM image section.

Per creare un account di archiviazione, seguire questa procedura:If you need to create a storage account, follow these steps:

  1. È necessario il nome del gruppo di risorse in cui deve essere creato l'account di archiviazione.You need the name of the resource group where the storage account should be created. Per trovare tutti i gruppi di risorse inclusi nella sottoscrizione digitare:To find out all the resource groups that are in your subscription, type:

    Get-AzureRmResourceGroup
    

    Per creare un gruppo di risorse denominato MyResourceGroup nell'area Stati Uniti occidentali, digitare:To create a resource group named myResourceGroup in the West US region, type:

    New-AzureRmResourceGroup -Name myResourceGroup -Location "West US"
    
  2. Creare un account di archiviazione denominato mystorageaccount in questo gruppo di risorse con il cmdlet New-AzureRmStorageAccount.Create a storage account named mystorageaccount in this resource group by using the New-AzureRmStorageAccount cmdlet:

    New-AzureRmStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" `
        -SkuName "Standard_LRS" -Kind "Storage"
    

Avviare il caricamentoStart the upload

Usare il cmdlet Add-AzureRmVhd per caricare l'immagine in un contenitore nell'account di archiviazione.Use the Add-AzureRmVhd cmdlet to upload the image to a container in your storage account. In questo esempio, il file myVHD.vhd viene caricato da "C:\Users\Public\Documents\Virtual hard disks\" a un account di archiviazione denominato mystorageaccount nel gruppo di risorse myResourceGroup.This example uploads the file myVHD.vhd from "C:\Users\Public\Documents\Virtual hard disks\" to a storage account named mystorageaccount in the myResourceGroup resource group. Il file viene inserito nel contenitore denominato mycontainer e il nuovo nome del file sarà myUploadedVHD.vhd.The file will be placed into the container named mycontainer and the new file name will be myUploadedVHD.vhd.

$rgName = "myResourceGroup"
$urlOfUploadedImageVhd = "https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd"
Add-AzureRmVhd -ResourceGroupName $rgName -Destination $urlOfUploadedImageVhd `
    -LocalFilePath "C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

Se l'operazione riesce, si ottiene una risposta simile alla seguente:If successful, you get a response that looks similar to this:

MD5 hash is being calculated for the file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:03:35
Creating new page blob of size 53687091712...
Elapsed time for upload: 01:12:49

LocalFilePath           DestinationUri
-------------           --------------
C:\Users\Public\Doc...  https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd

L'esecuzione del comando potrebbe richiedere del tempo, a seconda della connessione di rete e delle dimensioni del file VHD.Depending on your network connection and the size of your VHD file, this command may take a while to complete.

Creare una nuova VMCreate a new VM

È ora possibile usare il disco rigido virtuale caricato per creare una nuova macchina virtuale.You can now use the uploaded VHD to create a new VM.

Impostare l'URI del disco rigido virtualeSet the URI of the VHD

L'URI del disco rigido virtuale da usare è nel formato seguente: https://mystorageaccount.blob.core.windows.net/mycontainer/MyVhdName.vhd.The URI for the VHD to use is in the format: https://mystorageaccount.blob.core.windows.net/mycontainer/MyVhdName.vhd. In questo esempio il disco rigido virtuale denominato myVHD si trova nell'account di archiviazione mystorageaccount del contenitore mycontainer.In this example the VHD named myVHD is in the storage account mystorageaccount in the container mycontainer.

$imageURI = "https://mystorageaccount.blob.core.windows.net/mycontainer/myVhd.vhd"

Crea rete virtualeCreate a virtual network

Creare la rete virtuale e la subnet della rete virtuale stessa.Create the vNet and subnet of the virtual network.

  1. Creare la subnet.Create the subnet. Nell'esempio seguente viene creata una subnet denominata mySubnet nel gruppo di risorse myResourceGroup con il prefisso di indirizzo 10.0.0.0/24.The following sample creates a subnet named mySubnet in the resource group myResourceGroup with the address prefix of 10.0.0.0/24.

    $rgName = "myResourceGroup"
    $subnetName = "mySubnet"
    $singleSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
    
  2. Creare la rete virtuale.Create the virtual network. Nell'esempio seguente viene creata una rete virtuale denominata myVnet nell'ubicazione West US con il prefisso di indirizzo 10.0.0.0/16.The following sample creates a virtual network named myVnet in the West US location with the address prefix of 10.0.0.0/16.

    $location = "West US"
    $vnetName = "myVnet"
    $vnet = New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
        -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
    

Creare un indirizzo IP pubblico e un'interfaccia di reteCreate a public IP address and network interface

Per abilitare la comunicazione con la macchina virtuale nella rete virtuale, sono necessari un indirizzo IP pubblico e un'interfaccia di rete.To enable communication with the virtual machine in the virtual network, you need a public IP address and a network interface.

  1. Creare un indirizzo IP pubblico.Create a public IP address. In questo esempio viene creato un indirizzo IP pubblico denominato myPip.This example creates a public IP address named myPip.

    $ipName = "myPip"
    $pip = New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
        -AllocationMethod Dynamic
    
  2. Creare la scheda NIC.Create the NIC. In questo esempio viene creata una scheda NIC denominata myNic.This example creates a NIC named myNic.

    $nicName = "myNic"
    $nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location `
        -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
    

Creare il gruppo di sicurezza di rete e una regola RDPCreate the network security group and an RDP rule

Per essere in grado di accedere alla VM tramite RDP, è necessario disporre di una regola di sicurezza che consenta l'accesso RDP sulla porta 3389.To be able to log in to your VM using RDP, you need to have a security rule that allows RDP access on port 3389.

In questo esempio viene creato un gruppo di sicurezza di rete denominato myNsg contenente una regola denominata myRdpRule che consente il traffico RDP sulla porta 3389.This example creates an NSG named myNsg that contains a rule called myRdpRule that allows RDP traffic over port 3389. Per altre informazioni sui gruppi di sicurezza di rete, vedere Apertura di porte a una VM tramite PowerShell.For more information about NSGs, see Opening ports to a VM in Azure using PowerShell.

$nsgName = "myNsg"

$rdpRule = New-AzureRmNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
    -SourceAddressPrefix Internet -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389

$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
    -Name $nsgName -SecurityRules $rdpRule

Creare una variabile per la rete virtualeCreate a variable for the virtual network

Creare una variabile per la rete virtuale realizzata.Create a variable for the completed virtual network.

$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName $rgName -Name $vnetName

Creare la VMCreate the VM

Lo script di PowerShell seguente illustra come impostare le configurazioni della macchina virtuale e usare l'immagine della VM caricata come origine per la nuova installazione.The following PowerShell script shows how to set up the virtual machine configurations and use the uploaded VM image as the source for the new installation.

# Enter a new user name and password to use as the local administrator account 
    # for remotely accessing the VM.
    $cred = Get-Credential

    # Name of the storage account where the VHD is located. This example sets the 
    # storage account name as "myStorageAccount"
    $storageAccName = "myStorageAccount"

    # Name of the virtual machine. This example sets the VM name as "myVM".
    $vmName = "myVM"

    # Size of the virtual machine. This example creates "Standard_D2_v2" sized VM. 
    # See the VM sizes documentation for more information: 
    # https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/
    $vmSize = "Standard_D2_v2"

    # Computer name for the VM. This examples sets the computer name as "myComputer".
    $computerName = "myComputer"

    # Name of the disk that holds the OS. This example sets the 
    # OS disk name as "myOsDisk"
    $osDiskName = "myOsDisk"

    # Assign a SKU name. This example sets the SKU name as "Standard_LRS"
    # Valid values for -SkuName are: Standard_LRS - locally redundant storage, Standard_ZRS - zone redundant
    # storage, Standard_GRS - geo redundant storage, Standard_RAGRS - read access geo redundant storage,
    # Premium_LRS - premium locally redundant storage. 
    $skuName = "Standard_LRS"

    # Get the storage account where the uploaded image is stored
    $storageAcc = Get-AzureRmStorageAccount -ResourceGroupName $rgName -AccountName $storageAccName

    # Set the VM name and size
    $vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize

    #Set the Windows operating system configuration and add the NIC
    $vm = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $computerName `
        -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
    $vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id

    # Create the OS disk URI
    $osDiskUri = '{0}vhds/{1}-{2}.vhd' `
        -f $storageAcc.PrimaryEndpoints.Blob.ToString(), $vmName.ToLower(), $osDiskName

    # Configure the OS disk to be created from the existing VHD image (-CreateOption fromImage).
    $vm = Set-AzureRmVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri `
        -CreateOption fromImage -SourceImageUri $imageURI -Windows

    # Create the new VM
    New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vm

Verificare che la VM sia stata creataVerify that the VM was created

Al termine, la VM appena creata dovrebbe essere visualizzata nel portale di Azure in Browse (Sfoglia) > Macchine virtuali. In alternativa, è possibile usare i comandi PowerShell seguenti:When complete, you should see the newly created VM in the Azure portal under Browse > Virtual machines, or by using the following PowerShell commands:

    $vmList = Get-AzureRmVM -ResourceGroupName $rgName
    $vmList.Name

Passaggi successiviNext steps

Per gestire la nuova macchina virtuale con Azure PowerShell, vedere Gestire macchine virtuali di Azure con Azure Resource Manager e PowerShell.To manage your new virtual machine with Azure PowerShell, see Manage virtual machines using Azure Resource Manager and PowerShell.