分享方式:


使用 PowerShell 從 VHD 檔案建立自訂映像

在 Azure DevTest Labs 中,您可以使用自訂映像:

  • 從預先安裝全部包含在內的 VHD 檔案軟體來建立 VM。
  • 快速建立 VM,因為您不需要在目標電腦上安裝所有必要的軟體。
  • 從 VM 建立自訂映像來複製 VM,然後以該映像為基礎來建立 VM。

必要條件

若要完成本教學課程,您需要將虛擬硬碟 (VHD) 檔案上傳至您要建立自訂映像的實驗室 Azure 儲存體帳戶。 若要將 VHD 檔案上傳至儲存體帳戶,請遵循下列其中一篇文章中的指示:

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

PowerShell 步驟

下列步驟將逐步引導您使用 Azure PowerShell 從 VHD 檔案建立自訂映像:

  1. 在 PowerShell 命令提示字元中,使用 Connect-AzAccount Cmdlet 登入您的 Azure 帳戶:

    Connect-AzAccount
    
  2. 使用 Select-AzSubscription Cmdlet 選取您的 Azure 訂用帳戶。 將<訂用帳戶識別碼>取代為您的訂用帳戶識別碼 GUID。

    $subscriptionId = '<subscription ID>'
    Select-AzSubscription -SubscriptionId $subscriptionId
    
  3. 呼叫 Get-AzResource Cmdlet 來取得實驗物件。 以您自己的資源群組和實驗名稱取代 [實驗資源群組名稱]<> 和 [實驗名稱]<> 預留位置。

    $labRg = '<lab resource group name>'
    $labName = '<lab name>'
    $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
    
  4. 以您所上傳 VHD 檔案的 URI 取代 $vhdUri 變數的預留位置。 您可以從 Azure 入口網站中實驗儲存體帳戶的 Blob 頁面取得 VHD 檔案的 URI。 範例 VHD URI 為:https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd

    $vhdUri = '<VHD URI>'
    
  5. 使用 New-AzResourceGroupDeployment Cmdlet 來建立自訂映像。 以您想要的名稱和描述取代 [自訂映像名稱]<> 和 [自訂映像描述]<> 預留位置。

    $customImageName = '<custom image name>'
    $customImageDescription = '<custom image description>'
    
    $parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription}
    
    New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters
    

完整的 PowerShell 指令碼

結合前述步驟會產生下列 PowerShell 指令碼,其會從 VHD 檔案建立自訂映像。 若要使用指令碼,請將下列預留位置取代為您自己的值:

  • <訂用帳戶識別碼>
  • <實驗資源群組名稱>
  • <實驗名稱>
  • <VHD URI>
  • <自訂映像名稱>
  • <自訂映像描述>
# Log in to your Azure account.
Connect-AzAccount

# Select the desired Azure subscription.
$subscriptionId = '<subscription ID>'
Select-AzSubscription -SubscriptionId $subscriptionId

# Get the lab object.
$labRg = '<lab resource group name>'
$labName = '<lab name>'
$lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# Set the URI of the VHD file.
$vhdUri = '<VHD URI>'

# Set the custom image name and description values.
$customImageName = '<custom image name>'
$customImageDescription = '<custom image description>'

# Set up the parameters object.
$parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription}

# Create the custom image.
New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters

下一步