Collegare un disco dati a una macchina virtuale Windows con PowerShellAttach a data disk to a Windows VM using PowerShell

Questo articolo illustra come collegare dischi nuovi o esistenti a una macchina virtuale Windows tramite PowerShell.This article shows you how to attach both new and existing disks to a Windows virtual machine using PowerShell.

Prima di procedere, rivedere i suggerimenti seguenti:Before you do this, review these tips:

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 due modi per avviare Cloud Shell:There are two 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
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 3.6 o successiva.If you choose to install and use the PowerShell locally, this tutorial requires the Azure PowerShell module version 3.6 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 Login-AzureRmAccount per creare una connessione con Azure.If you are running PowerShell locally, you also need to run Login-AzureRmAccount to create a connection with Azure.

Aggiungere un disco dati vuoto a una macchina virtualeAdd an empty data disk to a virtual machine

Questo esempio illustra come aggiungere un disco dati vuoto a una macchina virtuale esistente.This example shows how to add an empty data disk to an existing virtual machine.

Uso di Managed DisksUsing managed disks

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US' 
$storageType = 'PremiumLRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName 
$vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzureRmVM -VM $vm -ResourceGroupName $rgName

Uso di Managed Disks in una zona di disponibilitàUsing managed disks in an Availability Zone

Per creare un disco in una zona di disponibilità, usare New AzureRmDiskConfig con il parametro -Zone.To create a disk in an Availability Zone, use New-AzureRmDiskConfig with the -Zone parameter. L'esempio seguente crea un disco nella zona 1.The following example creates a disk in zone 1.

Nota

Zone di disponibilità di Azure è in versione di anteprima e pronto per gli scenari di sviluppo e test.Azure Availability Zones is in preview and is ready for your development and test scenarios. Il supporto è disponibile per alcune risorse, aree e famiglie di dimensioni di Azure.Support is available for select Azure resources, regions, and size families. Per altre informazioni su come iniziare e con quali risorse, aree e famiglie di dimensioni di Azure è possibile provare Zone di disponibilità, vedere Panoramica di Zone di disponibilità.For more information on how to get started, and which Azure resources, regions, and size families you can try with Availability Zones, see Overview of Availability Zones. È possibile fornire commenti e suggerimenti nel sito Web di Azure.You can provide feedback on the Azure website. Per assistenza, contattare StackOverflow o aprire un ticket di supporto di Azure.For support, contact StackOverflow or open an Azure support ticket.

$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US 2' 
$storageType = 'PremiumLRS'
$dataDiskName = $vmName + '_datadisk1'

$diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName 
$vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1

Update-AzureRmVM -VM $vm -ResourceGroupName $rgName

Inizializzare il discoInitialize the disk

Dopo aver aggiunto un disco vuoto, è necessario inizializzarlo.After you add an empty disk, you need to initialize it. Per inizializzare il disco, è possibile accedere alla macchina virtuale e usare la gestione del disco.To initialize the disk, you can log in to a VM and use disk management. Se è stata abilitata l'installazione di WinRM e di un certificato durante la creazione della macchina virtuale, è possibile usare PowerShell remoto per inizializzare il disco.If you enabled WinRM and a certificate on the VM when you created it, you can use remote PowerShell to initialize the disk. È anche possibile usare un'estensione di script personalizzata:You can also use a custom script extension:

    $location = "location-name"
    $scriptName = "script-name"
    $fileName = "script-file-name"
    Set-AzureRmVMCustomScriptExtension -ResourceGroupName $rgName -Location $locName -VMName $vmName -Name $scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -FileName $fileName -ContainerName "scripts"

Il file di script può contenere codice analogo al seguente per inizializzare i dischi:The script file can contain something like this code to initialize the disks:

    $disks = Get-Disk | Where partitionstyle -eq 'raw' | sort number

    $letters = 70..89 | ForEach-Object { [char]$_ }
    $count = 0
    $labels = "data1","data2"

    foreach ($disk in $disks) {
        $driveLetter = $letters[$count].ToString()
        $disk | 
        Initialize-Disk -PartitionStyle MBR -PassThru |
        New-Partition -UseMaximumSize -DriveLetter $driveLetter |
        Format-Volume -FileSystem NTFS -NewFileSystemLabel $labels[$count] -Confirm:$false -Force
    $count++
    }

Collegare un disco dati esistente a una macchina virtualeAttach an existing data disk to a VM

È possibile collegare un disco gestito esistente a una macchina virtuale come disco dati.You can attach an existing managed disk to a VM as a data disk.

$rgName = "myResourceGroup"
$vmName = "myVM"
$location = "East US" 
$dataDiskName = "myDisk"
$disk = Get-AzureRmDisk -ResourceGroupName $rgName -DiskName $dataDiskName 

$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName 

$vm = Add-AzureRmVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id

Update-AzureRmVM -VM $vm -ResourceGroupName $rgName

Passaggi successiviNext steps

Creare uno snapshot.Create a snapshot.