Attacher un disque de données à une machine virtuelle Windows dans Azure avec PowerShellAttach a data disk to a Windows VM with PowerShell

Cet article vous explique comment attacher des disques nouveaux et existants à une machine virtuelle Windows à l’aide de PowerShell.This article shows you how to attach both new and existing disks to a Windows virtual machine by using PowerShell.

Commencez par passer en revue ces conseils :First, review these tips:

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Ouvrir Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell est un environnement d’interpréteur de commandes interactif hébergé dans Azure et utilisé dans votre navigateur.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browser. Azure Cloud Shell vous permet d’utiliser les interpréteurs de commandes bash ou PowerShell pour exécuter de nombreux outils afin d’utiliser les services Azure.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell est préinstallé avec les commandes qui vous permettent d’exécuter le contenu de cet article sans avoir à installer quoi que ce soit sur votre environnement local.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Pour exécuter le code contenu dans cet article sur Azure Cloud Shell, ouvrez une session Cloud Shell, utilisez le bouton Copier sur un bloc de code pour copier le code, et collez-le dans la session Cloud Shell avec Ctrl+Maj+V sur Windows et Linux, ou Cmd+Maj+V sur macOS.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. Le texte collé n’est pas exécuté automatiquement : vous devez donc appuyer sur Entrée pour l’exécuter.Pasted text is not automatically executed, so press Enter to run code.

Vous pouvez lancer Azure Cloud Shell avec :You can launch Azure Cloud Shell with:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. Cette opération ne copie pas automatiquement le texte dans Cloud Shell.This doesn't automatically copy text to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Ouvrez Azure Cloud Shell dans votre navigateur.Open Azure Cloud Shell in your browser. <a href="https://shell.azure.com" title="Lancer Azure Cloud Shell
Sélectionnez le bouton Cloud Shell du menu situé en haut à droite du portail Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Bouton Cloud Shell du portail Azure

Ajouter un disque de données vide à une machine virtuelleAdd an empty data disk to a virtual machine

Cet exemple montre comment ajouter un disque de données vide à une machine virtuelle existante.This example shows how to add an empty data disk to an existing virtual machine.

Utilisation de disques managésUsing managed disks

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

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

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

Update-AzVM -VM $vm -ResourceGroupName $rgName

Utilisation de disques managés dans un groupe à haute disponibilitéUsing managed disks in an Availability Zone

Pour créer un disque dans une zone de disponibilité, utilisez New-AzDiskConfig avec le paramètre -Zone.To create a disk in an Availability Zone, use New-AzDiskConfig with the -Zone parameter. L’exemple suivant crée un disque dans la zone 1.The following example creates a disk in zone 1.

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

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName

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

Update-AzVM -VM $vm -ResourceGroupName $rgName

Initialiser le disqueInitialize the disk

Après avoir ajouté un disque vide, vous devez l’initialiser.After you add an empty disk, you'll need to initialize it. Pour initialiser le disque, vous pouvez vous connecter à une machine virtuelle et utiliser la gestion des disques.To initialize the disk, you can sign in to a VM and use disk management. Si vous avez activé WinRM et un certificat sur la machine virtuelle lors de sa création, vous pouvez utiliser PowerShell à distance pour initialiser le disque.If you enabled WinRM and a certificate on the VM when you created it, you can use remote PowerShell to initialize the disk. Vous pouvez également utiliser une extension de script personnalisée :You can also use a custom script extension:

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

Le fichier de script peut contenir du code pour initialiser les disques, par exemple :The script file can contain code to initialize the disks, for example:

    $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++
    }

Ajouter un disque de données existant à une machine virtuelleAttach an existing data disk to a VM

Vous pouvez attacher un disque géré existant à une machine virtuelle en tant que disque de données.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-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName 

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

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

Update-AzVM -VM $vm -ResourceGroupName $rgName

Étapes suivantesNext steps

Créer une capture instantanée.Create a snapshot.