Skapa en virtuell dator från en ögonblicksbild med PowerShellCreate a virtual machine from a snapshot with PowerShell

Det här skriptet skapar en virtuell dator från en ögonblicksbild av en OS-disk.This script creates a virtual machine from a snapshot of an OS disk.

Om du inte har en Azure-prenumeration kan du skapa ettkostnadsfritt konto innan du börjar.If you don't have an Azure subscription, create a free account before you begin.

Anteckning

Den här artikeln har uppdaterats till att använda den nya Azure PowerShell Az-modulen.This article has been updated to use the new Azure PowerShell Az module. Du kan fortfarande använda modulen AzureRM som kommer att fortsätta att ta emot felkorrigeringar fram till december 2020 eller längre.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Mer information om den nya Az-modulen och AzureRM-kompatibilitet finns i Introduktion till den nya Azure PowerShell Az-modulen.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Instruktioner för installation av Az-modulen finns i Installera Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

ExempelskriptSample script

#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId'

#Provide the name of your resource group
$resourceGroupName ='yourResourceGroupName'

#Provide the name of the snapshot that will be used to create OS disk
$snapshotName = 'yourSnapshotName'

#Provide the name of the OS disk that will be created using the snapshot
$osDiskName = 'yourOSDiskName'

#Provide the name of an existing virtual network where virtual machine will be created
$virtualNetworkName = 'yourVNETName'

#Provide the name of the virtual machine
$virtualMachineName = 'yourVMName'

#Provide the size of the virtual machine
#e.g. Standard_DS3
#Get all the vm sizes in a region using below script:
#e.g. Get-AzVMSize -Location westus
$virtualMachineSize = 'Standard_DS3'

#Set the context to the subscription Id where Managed Disk will be created
Select-AzSubscription -SubscriptionId $SubscriptionId

$snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName

$diskConfig = New-AzDiskConfig -Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy

$disk = New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $osDiskName

#Initialize virtual machine configuration
$VirtualMachine = New-AzVMConfig -VMName $virtualMachineName -VMSize $virtualMachineSize

#Use the Managed Disk Resource Id to attach it to the virtual machine. Please change the OS type to linux if OS disk has linux OS
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $disk.Id -CreateOption Attach -Windows

#Create a public IP for the VM
$publicIp = New-AzPublicIpAddress -Name ($VirtualMachineName.ToLower()+'_ip') -ResourceGroupName $resourceGroupName -Location $snapshot.Location -AllocationMethod Dynamic

#Get the virtual network where virtual machine will be hosted
$vnet = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName

# Create NIC in the first subnet of the virtual network
$nic = New-AzNetworkInterface -Name ($VirtualMachineName.ToLower()+'_nic') -ResourceGroupName $resourceGroupName -Location $snapshot.Location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIp.Id

$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nic.Id

#Create the virtual machine with Managed Disk
New-AzVM -VM $VirtualMachine -ResourceGroupName $resourceGroupName -Location $snapshot.Location

Rensa distributionClean up deployment

Kör följande kommando för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser.Run the following command to remove the resource group, VM, and all related resources.

Remove-AzResourceGroup -Name myResourceGroup

Förklaring av skriptScript explanation

Det här skriptet använder följande kommandon för att hämta egenskaper för en ögonblicksbild, för att skapa en hanterad disk från en ögonblicksbild och för att skapa en virtuell dator.This script uses the following commands to get snapshot properties, create a managed disk from snapshot and create a VM. Varje post i tabellen länkar till kommandospecifik dokumentation.Each item in the table links to command specific documentation.

KommandoCommand AnteckningarNotes
Get-AzSnapshotGet-AzSnapshot Hämtar en ögonblicksbild med namnet på ögonblicksbilden.Gets a snapshot using snapshot name.
New-AzDiskConfigNew-AzDiskConfig Skapar en diskkonfiguration.Creates a disk configuration. Den här konfigurationen används vid diskgenereringen.This configuration is used with the disk creation process.
New-AzDiskNew-AzDisk Skapar en hanterad disk.Creates a managed disk.
New-AzVMConfigNew-AzVMConfig Skapar en virtuell datorkonfiguration.Creates a VM configuration. Den här konfigurationen omfattar information som virtuellt datornamn, operativsystem och administrativa autentiseringsuppgifter.This configuration includes information such as VM name, operating system, and administrative credentials. Konfigurationen används vid skapande av virtuell dator.The configuration is used during VM creation.
Set-AzVMOSDiskSet-AzVMOSDisk Kopplar den hanterade disken som operativsystemsdisken till den virtuella datornAttaches the managed disk as OS disk to the virtual machine
New-AzPublicIpAddressNew-AzPublicIpAddress Skapar en offentlig IP-adress.Creates a public IP address.
New-AzNetworkInterfaceNew-AzNetworkInterface Skapar ett nätverksgränssnitt.Creates a network interface.
New-AzVMNew-AzVM Skapar en virtuell dator.Creates a virtual machine.
Remove-AzResourceGroupRemove-AzResourceGroup Tar bort en resursgrupp och alla resurser som ingår i gruppen.Removes a resource group and all resources contained within.

Nästa stegNext steps

Mer information om Azure PowerShell-modulen finns i Azure PowerShell-dokumentationen.For more information on the Azure PowerShell module, see Azure PowerShell documentation.

Ytterligare PowerShell-skriptexempel för virtuella datorer finns i dokumentationen för virtuella Azure Windows-datorer.Additional virtual machine PowerShell script samples can be found in the Azure Windows VM documentation.