Dela via


Skapa en anpassad avbildning från en VHD-fil med PowerShell

I Azure DevTest Labs kan du använda anpassade avbildningar för att:

  • Skapa en virtuell dator från en VHD-fil som har all programvara som du behöver förinstallerad.
  • Skapa virtuella datorer snabbt eftersom du inte behöver installera all nödvändig programvara på måldatorerna.
  • Klona en virtuell dator genom att skapa en anpassad avbildning från en virtuell dator och sedan skapa virtuella datorer baserat på avbildningen.

Förutsättningar

För att kunna gå igenom den här självstudien behöver du en virtuell hårddiskfil (VHD) som laddas upp till Azure Storage-kontot för labbet där du vill skapa den anpassade avbildningen. Om du vill ladda upp en VHD-fil till ditt lagringskonto följer du anvisningarna i någon av dessa artiklar:

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

PowerShell-steg

Följande steg beskriver hur du skapar en anpassad avbildning från en VHD-fil med hjälp av Azure PowerShell:

  1. Logga in på ditt Azure-konto med cmdleten Anslut-AzAccount i en PowerShell-kommandotolk:

    Connect-AzAccount
    
  2. Välj din Azure-prenumeration med cmdleten Select-AzSubscription . Ersätt <prenumerations-ID> med ditt prenumerations-ID GUID.

    $subscriptionId = '<subscription ID>'
    Select-AzSubscription -SubscriptionId $subscriptionId
    
  3. Hämta labbobjektet genom att anropa cmdleten Get-AzResource . Ersätt platshållarna för <labbresursgruppen> och <labbnamnet> med dina egna resursgrupper och labbnamn.

    $labRg = '<lab resource group name>'
    $labName = '<lab name>'
    $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
    
  4. Ersätt platshållaren för variabeln $vhdUri med URI:n för den uppladdade VHD-filen. Du kan hämta VHD-filens URI från dess blobsida i labbets lagringskonto i Azure-portalen. Ett exempel på VHD-URI är: https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd.

    $vhdUri = '<VHD URI>'
    
  5. Skapa den anpassade avbildningen med hjälp av cmdleten New-AzResourceGroupDeployment . Ersätt platshållarna för den anpassade avbildningen <> och <den anpassade bildbeskrivningen> med det namn och den beskrivning du vill ha.

    $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
    

Slutför PowerShell-skript

Genom att kombinera föregående steg skapas följande PowerShell-skript som skapar en anpassad avbildning från en VHD-fil. Om du vill använda skriptet ersätter du följande platshållare med dina egna värden:

  • <prenumerations-ID>
  • <namn på labbresursgrupp>
  • <labbnamn>
  • <VHD-URI>
  • <anpassat avbildningsnamn>
  • <beskrivning av anpassad bild>
# 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

Nästa steg