Freigeben über


Beispielskript zum Hochladen einer VHD in Azure und Erstellen eines neuen virtuellen Computers

Dieses Skript verwendet eine lokale VHD-Datei von einer generalisierten VM und lädt sie in Azure hoch, erstellt ein Image für verwaltete Datenträger und verwendet die zum Erstellen einer neuen VM.

Für dieses Beispiel ist mindestens Azure PowerShell Az 1.0 erforderlich. Führen Sie Get-Module -ListAvailable Az aus, um die installierten Versionen zu ermitteln. Wenn Sie die Installation ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu.

Führen Sie zum Anmelden bei Azure Connect-AzAccount aus.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Beispielskript

# 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


Bereinigung der Bereitstellung

Führen Sie den folgenden Befehl aus, um die Ressourcengruppe, den virtuellen Computer und alle zugehörigen Ressourcen zu entfernen.

Remove-AzResourceGroup -Name $resourceGroup

Erklärung des Skripts

Dieses Skript verwendet die folgenden Befehle zum Erstellen der Bereitstellung. Jedes Element in der Tabelle ist mit der befehlsspezifischen Dokumentation verknüpft.

Befehl Hinweise
New-AzResourceGroup Erstellt eine Ressourcengruppe, in der alle Ressourcen gespeichert sind.
New-AzStorageAccount Erstellt ein Speicherkonto.
Add-AzVhd Lädt eine virtuelle Festplatte von einem lokalen virtuellen Computer in ein Blob in ein Cloudspeicherkonto in Azure hoch.
New-AzImageConfig Erstellt ein konfigurierbares Bildobjekt.
Set-AzImageOsDisk Legt die Eigenschaften des Betriebssystemdatenträgers für ein Imageobjekt fest.
New-AzImage Erstellt ein neues Bild.
New-AzVirtualNetworkSubnetConfig - Konfigurationsbefehl für ein neues virtuelles Netzwerk-Subnetz in Azure Erstellt eine Subnetzkonfiguration. Diese Konfiguration wird mit dem Erstellungsprozess des virtuellen Netzwerks verwendet.
New-AzVirtualNetwork Erstellt ein virtuelles Netzwerk.
New-AzPublicIpAddress Erstellt eine öffentliche IP-Adresse.
New-AzNetworkInterface Erstellt eine Netzwerkschnittstelle.
New-AzNetworkSecurityRuleConfig Erstellt eine Netzwerksicherheitsgruppenregelkonfiguration. Diese Konfiguration dient dazu, eine NSG-Regel zu erstellen, wenn die NSG erstellt wird.
New-AzNetworkSecurityGroup Erstellt eine Netzwerksicherheitsgruppe.
Get-AzVirtualNetwork Ruft ein virtuelles Netzwerk in einer Ressourcengruppe ab.
New-AzVMConfig Erstellt eine VM-Konfiguration. Diese Konfiguration enthält Informationen wie VM-Name, Betriebssystem und Administratoranmeldeinformationen. Die Konfiguration wird während der VM-Erstellung verwendet.
Set-AzVMSourceImage Gibt ein Image für einen virtuellen Computer an.
Set-AzVMOSDisk Legt die Eigenschaften des Betriebssystemdatenträgers auf einem virtuellen Computer fest.
Set-AzVMOperatingSystem Legt die Eigenschaften des Betriebssystemdatenträgers auf einem virtuellen Computer fest.
Add-AzVMNetworkInterface Fügt einer virtuellen Maschine eine Netzwerkschnittstelle hinzu.
New-AzVM Erstellen Sie einen virtuellen Computer.
Remove-AzResourceGroup Entfernt eine Ressourcengruppe und alle darin enthaltenen Ressourcen.

Nächste Schritte

Weitere Informationen zum Azure PowerShell-Modul finden Sie in der Azure PowerShell-Dokumentation.

Weitere PowerShell-Skriptbeispiele für virtuelle Computer finden Sie in der dokumentation Azure Windows VM.