Freigeben über


Exportieren/Kopieren von verwalteten Momentaufnahmen als VHD in ein Speicherkonto in einer anderen Region mit PowerShell

Dieses Skript exportiert eine verwaltete Momentaufnahme in ein Speicherkonto in einer anderen Region. Es generiert zuerst den SAS-URI der Momentaufnahme und verwendet diesen anschließend, um sie in ein Speicherkonto in einer anderen Region zu kopieren. Verwenden Sie dieses Skript, um Sicherungen Ihrer verwalteten Datenträger für die Notfallwiederherstellung in einer anderen Region zu verwalten.

Installieren Sie bei Bedarf das Azure PowerShell-Modul mithilfe der Anweisungen im Azure PowerShell-Handbuch, und führen Sie dann Connect-AzAccount aus, um eine Verbindung mit Azure zu erstellen. Außerdem müssen Sie über einen öffentlichen SSH-Schlüssel mit dem Namen id_rsa.pub im SSH-Verzeichnis Ihres Benutzerprofils verfügen.

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

Beispielskript

#Provide the subscription Id of the subscription where snapshot is created
$subscriptionId = "yourSubscriptionId"

#Provide the name of your resource group where snapshot is created
$resourceGroupName ="yourResourceGroupName"

#Provide the snapshot name 
$snapshotName = "yourSnapshotName"

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/Az.Storage/storage-dotnet-shared-access-signature-part-1
$sasExpiryDuration = "3600"

#Provide storage account name where you want to copy the snapshot. 
$storageAccountName = "yourstorageaccountName"

#Name of the storage container where the downloaded snapshot will be stored
$storageContainerName = "yourstoragecontainername"

#Provide the key of the storage account where you want to copy snapshot. 
$storageAccountKey = 'yourStorageAccountKey'

#Provide the name of the VHD file to which snapshot will be copied.
$destinationVHDFileName = "yourvhdfilename"


# Set the context to the subscription Id where Snapshot is created
Select-AzSubscription -SubscriptionId $SubscriptionId

#Generate the SAS for the snapshot 
$sas = Grant-AzSnapshotAccess -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName  -DurationInSecond $sasExpiryDuration -Access Read
#Create the context for the storage account which will be used to copy snapshot to the storage account 
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

#Copy the snapshot to the storage account 
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName

Erklärung des Skripts

Dieses Skript verwendet die folgenden Befehle zum Generieren des SAS-URI für eine verwaltete Momentaufnahme und zum Kopieren der Momentaufnahme in ein Speicherkonto mithilfe dieses SAS-URI. Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.

Befehl Hinweise
Grant-AzSnapshotAccess Generiert eine SAS-URI für eine Momentaufnahme, die verwendet wird, um sie in ein Speicherkonto zu kopieren.
New-AzureStorageContext Erstellt einen Speicherkontokontext mithilfe des Kontonamens und des Schlüssels. Dieser Kontext kann zum Ausführen von Lese-/Schreibvorgängen für das Speicherkonto verwendet werden.
Start-AzureStorageBlobCopy Kopiert die zugrunde liegende VHD einer Momentaufnahme in ein Speicherkonto.

Nächste Schritte

Erstellen eines verwalteten Datenträgers aus einer VHD

Erstellen eines virtuellen Computers aus einem verwalteten Datenträger

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 Linux VM.