【问题标题】:Exporting VHD file from OS-Disk to storage account将 VHD 文件从 OS 磁盘导出到存储帐户
【发布时间】:2020-05-14 08:58:54
【问题描述】:

我正在尝试将 VHD 文件从东南亚的托管操作系统磁盘导出到美国东部位置,但出现错误 403 身份验证失败“读取源时复制失败”。 我是订阅时租户和所有者的全局管理员。请找到相同的屏幕截图和脚本。

Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName "Prod-Sub"
$RGName = "r-d-server-RG-2" 
$DiskName = "r-d-server2-OSDisk-13052020"
$StorageAccount = "migratestorageserver2"
$STGKey = "dgosW21YW1kCyPLfhjf7Qhj14XMvRqqFB9Usp4jnjOPjJLRdwhfqBa3mJxHDnE7i479BUFQSK0vefgv/GKaYUA=="
$ContainerName = "migratecontainer"
$VHDName = "r-d-servermigrated.vhd"
$sas = Grant-AzureRmDiskAccess -ResourceGroupName $RGName -DiskName $DiskName -DurationInSecond 9600 
-Access Read 
$destContext = New-AzureStorageContext –StorageAccountName $StorageAccount -StorageAccountKey $STGKey 
$blob1 = Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $ContainerName - 
DestContext $destContext -DestBlob $VHDName


#Retrieve the current status of the blob copy operation
$status = $blob1 | Get-AzureStorageBlobCopyState  

#Print out status  
$status  

#Loop until complete                                     

While($status.Status -eq "Pending"){
    $status = $blob1 | Get-AzureStorageBlobCopyState
    Start-Sleep 10
    ### Print out status ###
    $status
}

【问题讨论】:

  • 你还在解决这个问题吗?我没有看到任何更新,你也不接受。
  • 为什么不回复?你想解决问题吗?

标签: azure powershell migration storage vhd


【解决方案1】:

大部分代码都是正确的,我只需要建议您转用Az module。但是最后一个while循环,这不是正确的逻辑。正确的逻辑是这样获取最新状态列表:

While($status.Status -eq "Pending"){
    Start-Sleep 10
    ### Print out status ###
    $status = Get-AzStorageBlob -Context $destContext -Blob $VHDName -Container $ContainerName | Get-AzStorageBlobCopyState
}

你应该在复制之前停止虚拟机。

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多