Dela via


Använda kommandon för att starta och stoppa virtuella DevTest Labs-datorer

Den här artikeln visar hur du kan använda PowerShell- eller Azure CLI-kommandon för att skripta eller automatisera start eller stopp för virtuella Azure DevTest Labs-datorer. Du kan till exempel använda start- eller stoppkommandon för att:

  • Testa ett program med tre nivåer där nivåerna måste starta i en sekvens.
  • Inaktivera dina virtuella datorer för att spara kostnader när de uppfyller anpassade kriterier.
  • Starta och stoppa en virtuell dator när ett ci/CD-arbetsflöde (kontinuerlig integrering och kontinuerlig leverans) börjar och avslutas.

Anmärkning

Du kan också starta, stoppa eller starta om virtuella datorer för DevTest Labs med hjälp av portalen för Azure. Labbadministratörer kan använda portalen för att konfigurera automatisk start och automatisk avstängning scheman och principer för virtuella labbdatorer.

Förutsättningar

Starta eller stoppa en virtuell dator

Följande PowerShell-skript startar eller stoppar en virtuell dator i ett labb med hjälp av Invoke-AzResourceAction PowerShell-cmdlet. Parametern ResourceId är det fullständigt kvalificerade ID:t för den virtuella labbdatorn som du vill starta eller stoppa. Parametern Action avgör om den virtuella datorn ska startas eller stoppas, beroende på vilken åtgärd du behöver.

  1. Om du använder Cloud Shell kontrollerar du att den PowerShell- miljön är markerad.

  2. Använd cmdleten PowerShell Connect-AzAccount för att logga in på ditt Azure-konto. Om du har flera Azure-prenumerationer avkommenterar du Set-AzContext och anger den <SubscriptionId> du vill använda.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. Ange variabler genom att ange egna värden för <lab name>, <VM name>och om du vill Start eller Stop den virtuella datorn.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. Starta eller stoppa den virtuella datorn baserat på det värde som du skickade till $vmAction.

    # Get the lab information
    $devTestLab = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $devTestLabName
    
    # Start or stop the VM and return a succeeded or failed status
    $returnStatus = Invoke-AzResourceAction `
                        -ResourceId "$($devTestLab.ResourceId)/virtualmachines/$vMToStart" `
                        -Action $vmAction `
                        -Force
    
    if ($returnStatus.Status -eq 'Succeeded') {
        Write-Output "##[section] Successfully updated DTL machine: $vMToStart, Action: $vmAction"
    }
    else {
        Write-Error "##[error] Failed to update DTL machine: $vMToStart, Action: $vmAction"
    }