gpt4 book ai didi

azure - 将 VHD 文件从操作系统磁盘导出到存储帐户

转载 作者:行者123 更新时间:2023-12-03 07:49:07 26 4
gpt4 key购买 nike

我尝试将 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
}

最佳答案

大多数代码都是正确的,我只是建议您使用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
}

并且您应该在复制之前停止虚拟机。

关于azure - 将 VHD 文件从操作系统磁盘导出到存储帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61793275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com