2017-10-18 31 views
0

目前,我正在使用Powershell來從Azure恢復服務保險庫備份的虛擬機恢復VHD文件。如何從Powershell中的Azure Recovery Services Vault恢復的VHD中獲取Config Blob Uri參數?

這就是說,我的困難是如何在使用Powershell恢復VHD後獲得參數Config Blob Uri參數?即使使用Get-AzureRmRecoveryServicesBackupJobDetails -Job $restoreJob我也沒有看到提供此信息的任何選項。

正如你可以在下面的圖片中看到,在Azure門戶網站顯示配置的Blob URI參數

Config Blob Uri from Azure Portal

一旦PowerShell的完成了恢復,那麼我想檢索配置的Blob URI來根據特定的VHD文件執行虛擬機創建,但是,如果沒有這些信息,我必須手動獲取它。

有沒有可能直接從Powershell獲得它?

回答

1
#get restore job detail 
$details = Get-AzureRmRecoveryServicesBackupJobDetails -Job $restorejob 
#restored disk properties 
$properties = $details.properties 
$storageAccountName = $properties["Target Storage Account Name"] 
$containerName = $properties["Config Blob Container Name"] 
$blobName = $properties["Config Blob Name"] 
#Set the Azure storage context and restore the JSON configuration file 
Set-AzureRmCurrentStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName 
$destination_path = "C:\temp\vmconfig.json" 
Get-AzureStorageBlobContent -Container $containerName -Blob $blobName -Destination $destination_path 
$obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json 

這會將配置json文件下載到$ destination_path,並且您可以在構建虛擬機時引用該文件。

的更多細節:https://docs.microsoft.com/en-us/azure/backup/backup-azure-vms-automation#restore-an-azure-vm

另外,如果你知道你的存儲帳戶名稱,你可以從那裏獲取配置URI:

$storageAccountName = (Get-AzureRmStorageAccount -ResourceGroupName $resourceGroupName).StorageAccountName 
Set-AzureRmCurrentStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName 
$storageContainerName = (Get-AzureStorageContainer).Name 
$configBlob = Get-AzureStorageBlob -Container $storageContainerName | where {$_.Name -match "json"} 
$configName = $configBlob.Name 
$configURI = "https://$storageAccountname.blob.core.windows.net/$storageContainerName/$configName" 

希望這有助於。

+0

這是我正在尋找的,除了JSON文件,因爲現在獲得「配置Blob容器名稱」,那麼我將能夠構建URI以供日後恢復! –

相關問題