Hantera planerat underhåll med PowerShell

Den här artikeln gäller virtuella datorer som kör både Linux och Windows.

Du kan använda Azure PowerShell för att se när virtuella datorer är schemalagda för underhåll. Information om planerat underhåll är tillgänglig från cmdleten Get-AzVM när du använder -status parametern .

Underhållsinformation returneras endast om det finns planerat underhåll. Om inget underhåll schemaläggs som påverkar den virtuella datorn returnerar cmdleten ingen underhållsinformation.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Utdata

MaintenanceRedeployStatus               : 
  IsCustomerInitiatedMaintenanceAllowed : True
  PreMaintenanceWindowStartTime         : 5/14/2018 12:30:00 PM
  PreMaintenanceWindowEndTime           : 5/19/2018 12:30:00 PM
  MaintenanceWindowStartTime            : 5/21/2018 4:30:00 PM
  MaintenanceWindowEndTime              : 6/4/2018 4:30
  LastOperationResultCode               : None 

Följande egenskaper returneras under MaintenanceRedeployStatus:

Värde Beskrivning
IsCustomerInitiatedMaintenanceAllowed Anger om du kan starta underhåll på den virtuella datorn just nu
PreMaintenanceWindowStartTime I början av självbetjäningsfönstret för underhåll när du kan starta underhållet på den virtuella datorn
PreMaintenanceWindowEndTime Slutet på självbetjäningsfönstret för underhåll när du kan starta underhållet på den virtuella datorn
UnderhållWindowStartTime Början av det schemalagda underhållet där Azure initierar underhåll på den virtuella datorn
MaintenanceWindowEndTime Slutet på den schemalagda underhållsfönstret där Azure initierar underhåll på den virtuella datorn
LastOperationResultCode Resultatet av det senaste försöket att starta underhållet på den virtuella datorn

Du kan också hämta underhållsstatus för alla virtuella datorer i en resursgrupp med hjälp av Get-AzVM och inte ange en virtuell dator.

Get-AzVM -ResourceGroupName myResourceGroup -Status

Följande PowerShell-exempel tar ditt prenumerations-ID och returnerar en lista över virtuella datorer som är schemalagda för underhåll.


function MaintenanceIterator
{
    Select-AzSubscription -SubscriptionId $args[0]

    $rgList= Get-AzResourceGroup 

    for ($rgIdx=0; $rgIdx -lt $rgList.Length ; $rgIdx++)
    {
        $rg = $rgList[$rgIdx]        
    $vmList = Get-AzVM -ResourceGroupName $rg.ResourceGroupName 
        for ($vmIdx=0; $vmIdx -lt $vmList.Length ; $vmIdx++)
        {
            $vm = $vmList[$vmIdx]
            $vmDetails = Get-AzVM -ResourceGroupName $rg.ResourceGroupName -Name $vm.Name -Status
              if ($vmDetails.MaintenanceRedeployStatus )
            {
                Write-Output "VM: $($vmDetails.Name)  IsCustomerInitiatedMaintenanceAllowed: $($vmDetails.MaintenanceRedeployStatus.IsCustomerInitiatedMaintenanceAllowed) $($vmDetails.MaintenanceRedeployStatus.LastOperationMessage)"               
            }
          }
    }
}

Starta underhåll på den virtuella datorn med Hjälp av PowerShell

Med hjälp av informationen från funktionen i föregående avsnitt startar följande underhåll på en virtuell dator om IsCustomerInitiatedMaintenanceAllowed har angetts till true.

Restart-AzVM -PerformMaintenance -name $vm.Name -ResourceGroupName $rg.ResourceGroupName 

Klassiska distributioner

Viktigt

De klassiska virtuella datorerna kommer att dras tillbaka den 1 mars 2023.

Om du använder IaaS-resurser från ASM ska du slutföra migreringen den 1 mars 2023. Vi rekommenderar att du gör switchen tidigare för att dra nytta av de många funktionerna i Azure Resource Manager.

Mer information finns i migrera dina IaaS-resurser till Azure Resource Manager före den 1 mars 2023.

Om du fortfarande har äldre virtuella datorer som har distribuerats med den klassiska distributionsmodellen kan du använda PowerShell för att fråga efter virtuella datorer och starta underhåll.

Om du vill hämta underhållsstatus för en virtuell dator skriver du:

Get-AzureVM -ServiceName <Service name> -Name <VM name>

Om du vill starta underhållet på den klassiska virtuella datorn skriver du:

Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>

Nästa steg

Du kan också hantera planerat underhåll med hjälp av Azure CLI eller portalen.