Copy VM snapshot to blob storage in Azure

Below is a simple powershell script that will copy a VM snapshot in Azure to a blob storage container. 

 

$resourceGroupName = 'VM-RG'
$snapshotName = 'mysnapshot'
$resourceGroupNameStorageAccount = 'SA-RG'
$storageAccountName = 'storageaccountname'
$storageContainerName = 'legalhold'
$vhdname = $($snapshotName).Substring(0,$($snapshotName).Length-22)
$resourceGroupNameStorageAccount -AccountName $storageAccountName
$storageAccountKey = (Get-AzStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroupNameStorageAccount).value[0]
$DestStorageContext = New-AzStorageContext –StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
Write-Output "Granting $snapshotName access"
$sas = Grant-AzSnapshotAccess -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName  -DurationInSecond 3600 -Access Read
Write-Output "$snapshotName access granted"
Write-Output "Begin snapshot: $snapshotName copy to $vhdname.vhd"
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $DestStorageContext -DestBlob "$($vhdname).vhd" -Force
Write-Output "snapshot: $snapshotName copy to $vhdname.vhd completed"

Add comment