Hantera planerat underhåll med PowerShell

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

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 Get-AzVM-cmdleten när du använder parametern -status .

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

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Output

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 Början av självbetjäningsfönstret för underhåll när du kan initiera underhåll på den virtuella datorn
PreMaintenanceWindowEndTime Slutet på självbetjäningsfönstret för underhåll när du kan initiera underhåll på den virtuella datorn
UnderhållWindowStartTime Början av det schemalagda underhållet där Azure initierar underhåll på den virtuella datorn
UnderhållWindowEndTime Slutet på det schemalagda underhållsfönstret där Azure initierar underhåll på den virtuella datorn
LastOperationResultCode Resultatet av det senaste försöket att initiera underhåll på den virtuella datorn

Du kan också hämta underhållsstatus för alla virtuella datorer i en resursgrupp genom att använda 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 anger om de är schemalagda för underhåll.


function MaintenanceIterator {
  param (
    $SubscriptionId
  )
  
  Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null

  $rgList = Get-AzResourceGroup
  foreach ($rg in $rgList) {
    $vmList = Get-AzVM -ResourceGroupName $rg.ResourceGroupName 
    foreach ($vm in $vmList) {
      $vmDetails = Get-AzVM -ResourceGroupName $rg.ResourceGroupName -Name $vm.Name -Status
      [pscustomobject]@{
        Name                                  = $vmDetails.Name
        ResourceGroupName                     = $rg.ResourceGroupName
        IsCustomerInitiatedMaintenanceAllowed = [bool]$vmDetails.MaintenanceRedeployStatus.IsCustomerInitiatedMaintenanceAllowed
        LastOperationMessage                  = $vmDetails.MaintenanceRedeployStatus.LastOperationMessage
      }
    }
  }
}

Starta underhåll på den virtuella datorn med PowerShell

Med hjälp av information från funktionen i föregående avsnitt startar följande underhåll på en virtuell dator om IsCustomerInitiatedMaintenanceAllowed är inställt på true.


MaintenanceIterator -SubscriptionId <Subscription ID> |
    Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
        Restart-AzVM -PerformMaintenance

Klassiska distributioner

Viktigt!

Virtuella datorer som skapats via den klassiska distributionsmodellen dras tillbaka den 1 september 2023.

Om du använder IaaS-resurser från Azure Service Management slutför du migreringen senast den 1 september 2023. Vi rekommenderar att du gör bytet tidigare för att dra nytta av de många funktionsförbättringarna i Azure Resource Manager.

Mer information finns i Migrera dina IaaS-resurser till Azure Resource Manager senast den 1 september 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 initiera 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åll 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.