Erstellen einer Windows-VM von einem speziellen Datenträger mithilfe von PowerShell

Gilt für: ✔️ Windows VMs

Erstellen Sie eine neue VM, indem Sie einen speziellen verwalteten Datenträger als Betriebssystemdatenträger anfügen. Ein spezieller Datenträger ist eine Kopie einer virtuellen Festplatte (VHD) einer bereits vorhandenen VM, die die Benutzerkonten, Anwendungen und andere Statusdaten Ihrer ursprünglichen VM enthält.

Sie haben mehrere Möglichkeiten:

Sie können außerdem das Azure-Portal verwenden, um eine neue VM aus einer speziellen VHD zu erstellen.

In diesem Artikel wird die Verwendung verwalteter Datenträger gezeigt. Wenn Sie über eine Legacybereitstellung verfügen, die ein Speicherkonto erfordert, finden Sie weitere Informationen unter Erstellen eines virtuellen Computers auf der Grundlage einer spezialisierten VHD in einem Speicherkonto.

Wichtig

Wenn Sie zur Erstellung einer neuen VM einen speziellen Datenträger verwenden, behält die neue VM den Computernamen der ursprünglichen VM bei. Andere computerspezifische Informationen (z. B. die CMID) werden ebenfalls beibehalten. In einigen Fällen können diese doppelten Informationen Probleme verursachen. Achten Sie beim Kopieren einer VM darauf, auf welche Arten von computerspezifischen Informationen Ihre Anwendungen angewiesen sind.
Verwenden Sie daher keinen speziellen Datenträger, wenn Sie mehrere VMs erstellen möchten. Für größere Bereitstellungen sollten Sie stattdessen ein Image erstellen und dann dieses Image zum Erstellen mehrerer VMs verwenden.

Es wird empfohlen, die Anzahl gleichzeitiger Bereitstellungen auf Grundlage einer einzelnen VHD oder Momentaufnahme auf 20 VMs zu beschränken.

Option 1: Verwenden eines vorhandenen Datenträgers

Wenn Sie einen virtuellen Computer gelöscht haben und den Betriebssystemdatenträger erneut verwenden möchten, um einen neuen virtuellen Computer zu erstellen, verwenden Sie Get-AzDisk.

$resourceGroupName = 'myResourceGroup'
$osDiskName = 'myOsDisk'
$osDisk = Get-AzDisk `
-ResourceGroupName $resourceGroupName `
-DiskName $osDiskName

Sie können dann diesen Datenträger als Betriebssystemdatenträger an eine neue VM anfügen.

Option 2: Hochladen einer speziellen VHD

Sie können die VHD über eine spezielle VM hochladen, die mit einem lokalen Virtualisierungstool (z.B. Hyper-V) erstellt wurde, oder über eine VM, die aus einer anderen Cloud exportiert wurde.

Vorbereiten des virtuellen Computers

Verwenden Sie die VHD unverändert, um einen neuen virtuellen Computer zu erstellen.

  • Vorbereiten einer Windows-VHD für das Hochladen in Azure. Generalisieren Sie den virtuellen Computer nicht mithilfe von Sysprep.
  • Entfernen Sie alle auf dem virtuellen Computer installierten Gastvirtualisierungstools und Agents (z.B. VMware-Tools).
  • Stellen Sie sicher, dass der virtuelle Computer so konfiguriert ist, dass die IP-Adressen und DNS-Einstellungen über DHCP abgerufen werden. Dadurch wird sichergestellt, dass der Server beim Starten eine IP-Adresse innerhalb des virtuellen Netzwerks bezieht.

Hochladen der VHD

Sie können nun eine VHD direkt in einen verwalteten Datenträger hochladen. Eine Anleitung hierzu finden Sie unter Hochladen einer VHD in Azure mithilfe von Azure PowerShell.

Option 3: Kopieren einer vorhandenen Azure-VM

Sie können eine Kopie einer VM mit verwalteten Datenträgern erstellen, indem Sie eine Momentaufnahme von der VM erstellen und dann mit diesem einen neuen verwalteten Datenträger und eine neue VM erstellen.

Wenn Sie einen vorhandenen virtuellen Computer in eine andere Region kopieren möchten, können Sie unter Verwendung von AzCopy eine Kopie eines Datenträgers in einer anderen Region erstellen.

Erstellen einer Momentaufnahme des Betriebssystemdatenträgers

Sie können eine Momentaufnahme einer gesamten VM (einschließlich aller Datenträger) oder nur von einem einzelnen Datenträger erstellen. Die folgenden Schritte zeigen, wie Sie mit dem Cmdlet New-AzSnapshot eine Momentaufnahme von nur dem Betriebssystemdatenträger Ihrer VM erstellen.

Legen Sie zuerst einige Parameter fest.

$resourceGroupName = 'myResourceGroup' 
$vmName = 'myVM'
$location = 'westus' 
$snapshotName = 'mySnapshot'  

Rufen Sie das VM-Objekt ab.

$vm = Get-AzVM -Name $vmName `
   -ResourceGroupName $resourceGroupName

Rufen Sie den Namen des Betriebssystemdatenträgers ab.

$disk = Get-AzDisk -ResourceGroupName $resourceGroupName `
  -DiskName $vm.StorageProfile.OsDisk.Name

Erstellen Sie die Momentaufnahmekonfiguration.

$snapshotConfig =  New-AzSnapshotConfig `
  -SourceUri $disk.Id `
  -OsType Windows `
  -CreateOption Copy `
  -Location $location 

Erstellen Sie die Momentaufnahme.

$snapShot = New-AzSnapshot `
   -Snapshot $snapshotConfig `
   -SnapshotName $snapshotName `
   -ResourceGroupName $resourceGroupName

Um die Momentaufnahme zum Erstellen einer auf hohe Leistung ausgelegten VM zu nutzen, fügen Sie dem Befehl New-AzSnapshotConfig den -AccountType Premium_LRS-Parameter hinzu. Dieser Parameter erstellt die Momentaufnahme so, dass sie als verwalteter Premium-Datenträger gespeichert wird. Premium-Managed Disks-Datenträger sind teurer als Standard, daher sollten Sie unbedingt prüfen, ob Sie Premium benötigen, bevor Sie diesen Parameter verwenden.

Erstellen eines neuen Datenträgers über die Momentaufnahme

Erstellen Sie mit New-AzDisk einen verwalteten Datenträger aus der Momentaufnahme. Dieses Beispiel verwendet myOSDisk für den Namen des Datenträgers an.

Erstellen Sie eine neue Ressourcengruppe für die neue VM.

$destinationResourceGroup = 'myDestinationResourceGroup'
New-AzResourceGroup -Location $location `
   -Name $destinationResourceGroup

Legen Sie den Namen des Betriebssystemdatenträgers fest.

$osDiskName = 'myOsDisk'

Erstellen Sie den verwalteten Datenträger.

$osDisk = New-AzDisk -DiskName $osDiskName -Disk `
    (New-AzDiskConfig  -Location $location -CreateOption Copy `
    -SourceResourceId $snapshot.Id) `
    -ResourceGroupName $destinationResourceGroup

Erstellen des neuen virtuellen Computers

Erstellen Sie Netzwerkressourcen und andere VM-Ressourcen für die neue VM.

Erstellen des Subnetzes und des virtuellen Netzwerks

Erstellen Sie das virtuelle Netzwerk und das Subnetz für den virtuellen Computer.

  1. Erstellen Sie das Subnetz. In diesem Beispiel wird ein Subnetz mit dem Namen mySubNet in der Ressourcengruppe myDestinationResourceGroup erstellt und das Adresspräfix des Subnetzes auf 10.0.0.0/24 festgelegt.

    $subnetName = 'mySubNet'
    $singleSubnet = New-AzVirtualNetworkSubnetConfig `
       -Name $subnetName `
       -AddressPrefix 10.0.0.0/24
    
  2. Erstellen des virtuellen Netzwerks Dieses Beispiel legt den Namen des virtuellen Netzwerks auf myVnetName, den Standort auf USA, Westen und das Adresspräfix für das virtuelle Netzwerk auf 10.0.0.0/16 fest.

    $vnetName = "myVnetName"
    $vnet = New-AzVirtualNetwork `
       -Name $vnetName -ResourceGroupName $destinationResourceGroup `
       -Location $location `
       -AddressPrefix 10.0.0.0/16 `
       -Subnet $singleSubnet
    

Erstellen einer Netzwerksicherheitsgruppe und einer RDP-Regel

Damit Sie sich mit dem Remotedesktopprotokoll (RDP) bei Ihrem virtuellen Computer anmelden können, benötigen Sie eine Sicherheitsregel, die RDP-Zugriff an Port 3389 zulässt. In unserem Beispiel wurde die VHD für die neue VM aus einer vorhandenen spezialisierten VM erstellt, daher können Sie für das RDP ein Konto des virtuellen Quellcomputers verwenden.

In diesem Beispiel werden der Name der Netzwerksicherheitsgruppe auf myNsg und der Name der RDP-Regel auf myRdpRule festgelegt.

$nsgName = "myNsg"

$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
    -SourceAddressPrefix Internet -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup `
   -ResourceGroupName $destinationResourceGroup `
   -Location $location `
   -Name $nsgName -SecurityRules $rdpRule
    

Weitere Informationen zu Endpunkten und Netzwerksicherheitsgruppen finden Sie unter Öffnen von Ports für einen virtuellen Computer in Azure mithilfe von PowerShell.

Erstellen einer öffentlichen IP-Adresse und einer NIC

Sie benötigen eine öffentliche IP-Adresse und eine Netzwerkschnittstelle, um die Kommunikation mit dem virtuellen Computer im virtuellen Netzwerk zu ermöglichen.

  1. Erstellen Sie die öffentliche IP-Adresse. In diesem Beispiel ist der Name der öffentlichen IP-Adresse auf myIP festgelegt.

    $ipName = "myIP"
    $pip = New-AzPublicIpAddress `
       -Name $ipName -ResourceGroupName $destinationResourceGroup `
       -Location $location `
       -AllocationMethod Dynamic
    
  2. Erstellen der NIC In diesem Beispiel ist der Name der NIC auf myNicName festgelegt.

    $nicName = "myNicName"
    $nic = New-AzNetworkInterface -Name $nicName `
       -ResourceGroupName $destinationResourceGroup `
       -Location $location -SubnetId $vnet.Subnets[0].Id `
       -PublicIpAddressId $pip.Id `
       -NetworkSecurityGroupId $nsg.Id
    

Festlegen von Name und Größe des virtuellen Computers

In diesem Beispiel wird der VM-Name auf myVM und die VM-Größe auf Standard_A2 festgelegt.

$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"

Hinzufügen der Netzwerkkarte

$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id

Hinzufügen des Betriebssystemdatenträgers

Fügen Sie der Konfiguration mit Set-AzVMOSDisk den Betriebssystemdatenträger hinzu. In diesem Beispiel wird die Größe des Datenträgers auf 128 GB festgelegt und der verwaltete Datenträger als Windows-Betriebssystem-Datenträger angefügt.

$vm = Set-AzVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -StorageAccountType Standard_LRS `
    -DiskSizeInGB 128 -CreateOption Attach -Windows

Fertigstellen der VM

Erstellen Sie die VM über New-AzVM mithilfe der soeben erstellten Konfigurationen.

New-AzVM -ResourceGroupName $destinationResourceGroup -Location $location -VM $vm

Bei erfolgreicher Ausführung des Befehls wird eine Ausgabe wie diese angezeigt:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK   

Stellen Sie sicher, dass der virtuelle Computer erstellt wurde

Der neu erstellte virtuelle Computer sollte nun im Azure-Portal unter Durchsuchen > Virtuelle Computer oder über die folgenden PowerShell-Befehlen angezeigt werden.

$vmList = Get-AzVM -ResourceGroupName $destinationResourceGroup
$vmList.Name

Nächste Schritte

Melden Sie sich bei Ihrem neuen virtuellen Computer an. Anweisungen dazu finden Sie unter Herstellen einer Verbindung mit einem virtuellen Azure-Computer unter Windows und Anmelden bei diesem Computer.