Exempelskript för att överföra en virtuell hårddisk till Azure och skapa en ny virtuell dator
Det här skriptet tar en lokal VHD-fil från en generaliserad virtuell dator och överför den till Azure, skapar en hanterad diskavbildning och använder den för att skapa en ny virtuell dator.
Det här exemplet kräver Azure PowerShell Az 1.0 eller senare. Kör Get-Module -ListAvailable Az
för att se vilka versioner som är installerade.
Om du behöver installera kan du läsa Installera Azure PowerShell modul.
Kör Connect-AzAccount för att logga in på Azure.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Exempelskript
# Provide values for the variables
$resourceGroup = 'myResourceGroup'
$location = 'EastUS'
$storageaccount = 'mystorageaccount'
$storageType = 'Standard_LRS'
$containername = 'mycontainer'
$localPath = 'C:\Users\Public\Documents\Hyper-V\VHDs\generalized.vhd'
$vmName = 'myVM'
$imageName = 'myImage'
$vhdName = 'myUploadedVhd.vhd'
$diskSizeGB = '128'
$subnetName = 'mySubnet'
$vnetName = 'myVnet'
$ipName = 'myPip'
$nicName = 'myNic'
$nsgName = 'myNsg'
$ruleName = 'myRdpRule'
$computerName = 'myComputerName'
$vmSize = 'Standard_DS1_v2'
# Get the username and password to be used for the administrators account on the VM.
# This is used when connecting to the VM using RDP.
$cred = Get-Credential
# Upload the VHD
New-AzResourceGroup -Name $resourceGroup -Location $location
New-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccount -Location $location `
-SkuName $storageType -Kind "Storage"
$urlOfUploadedImageVhd = ('https://' + $storageaccount + '.blob.core.windows.net/' + $containername + '/' + $vhdName)
Add-AzVhd -ResourceGroupName $resourceGroup -Destination $urlOfUploadedImageVhd `
-LocalFilePath $localPath
# Note: Uploading the VHD may take awhile!
# Create a managed image from the uploaded VHD
$imageConfig = New-AzImageConfig -Location $location
$imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized `
-BlobUri $urlOfUploadedImageVhd
$image = New-AzImage -ImageName $imageName -ResourceGroupName $resourceGroup -Image $imageConfig
# Create the networking resources
$singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroup -Location $location `
-AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
$pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $resourceGroup -Location $location `
-AllocationMethod Dynamic
$rdpRule = New-AzNetworkSecurityRuleConfig -Name $ruleName -Description 'Allow RDP' -Access Allow `
-Protocol Tcp -Direction Inbound -Priority 110 -SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name $nsgName -SecurityRules $rdpRule
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name $vnetName
# Start building the VM configuration
$vm = New-AzVMConfig -VMName $vmName -VMSize $vmSize
# Set the VM image as source image for the new VM
$vm = Set-AzVMSourceImage -VM $vm -Id $image.Id
# Finish the VM configuration and add the NIC.
$vm = Set-AzVMOSDisk -VM $vm -DiskSizeInGB $diskSizeGB -CreateOption FromImage -Caching ReadWrite
$vm = Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $computerName -Credential $cred `
-ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
# Create the VM
New-AzVM -VM $vm -ResourceGroupName $resourceGroup -Location $location
# Verify that the VM was created
$vmList = Get-AzVM -ResourceGroupName $resourceGroup
$vmList.Name
Rensa distribution
Kör följande kommando för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser.
Remove-AzResourceGroup -Name $resourceGroup
Förklaring av skript
Det här skriptet använder följande kommandon för att skapa distributionen. Varje post i tabellen länkar till kommandospecifik dokumentation.
Kommando | Kommentarer |
---|---|
New-AzResourceGroup | Skapar en resursgrupp där alla resurser lagras. |
New-AzStorageAccount | Skapar ett lagringskonto. |
Add-AzVhd | Överför en virtuell hårddisk från en lokal virtuell dator till en blob i ett molnlagringskonto i Azure. |
New-AzImageConfig | Skapar ett konfigurerbart avbildningsobjekt. |
Set-AzImageOsDisk | Anger operativsystemets diskegenskaper i ett avbildningsobjekt. |
New-AzImage | Skapar en ny avbildning. |
New-AzVirtualNetworkSubnetConfig | Skapar en undernätskonfiguration. Den här konfigurationen används med skapandeprocessen för virtuella nätverk. |
New-AzVirtualNetwork | Skapar ett virtuellt nätverk. |
New-AzPublicIpAddress | Skapar en offentlig IP-adress. |
New-AzNetworkInterface | Skapar ett nätverksgränssnitt. |
New-AzNetworkSecurityRuleConfig | Skapar en regelkonfiguration för nätverkssäkerhetsgrupper. Konfigurationen används för att skapa en NSG-regel när NSG:n skapas. |
New-AzNetworkSecurityGroup | skapa en nätverkssäkerhetsgrupp |
Get-AzVirtualNetwork | Hämtar ett virtuellt nätverk i en resursgrupp. |
New-AzVMConfig | Skapar en virtuell datorkonfiguration. Den här konfigurationen omfattar information som virtuellt datornamn, operativsystem och administrativa autentiseringsuppgifter. Konfigurationen används vid skapande av virtuell dator. |
Set-AzVMSourceImage | Anger en avbildning för en virtuell dator. |
Set-AzVMOSDisk | Anger operativsystemets diskegenskaper på en virtuell dator. |
Set-AzVMOperatingSystem | Anger operativsystemets diskegenskaper på en virtuell dator. |
Add-AzVMNetworkInterface | Lägger till ett nätverksgränssnitt i en virtuell dator. |
New-AzVM | Skapa en virtuell dator. |
Remove-AzResourceGroup | Tar bort en resursgrupp och alla resurser som ingår i gruppen. |
Nästa steg
Mer information om Azure PowerShell-modulen finns i Azure PowerShell-dokumentationen.
Ytterligare PowerShell-skriptexempel för virtuella datorer finns i dokumentationen för virtuella Azure Windows-datorer.