Gepland onderhoud afhandelen met behulp van PowerShell

Van toepassing op: ✔️ Linux-VM's ✔️ Windows-VM's ✔️ Flexibele schaalsets ✔️ Uniforme schaalsets

U kunt Azure PowerShell gebruiken om te zien wanneer VM's zijn gepland voor onderhoud. Informatie over gepland onderhoud is beschikbaar via de cmdlet Get-AzVM wanneer u de -status parameter gebruikt.

Onderhoudsinformatie wordt alleen geretourneerd als er onderhoud gepland is. Als er geen onderhoud is gepland dat van invloed is op de VM, retourneert de cmdlet geen onderhoudsinformatie.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Uitvoer

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 

De volgende eigenschappen worden geretourneerd onder MaintenanceRedeployStatus:

Waarde Beschrijving
IsCustomerInitiatedMaintenanceAllowed Geeft aan of u op dit moment onderhoud op de VM kunt starten
PreMaintenanceWindowStartTime Het begin van het selfservicevenster voor onderhoud wanneer u onderhoud op uw VM kunt initiëren
PreMaintenanceWindowEndTime Het einde van het selfservicevenster voor onderhoud wanneer u onderhoud op uw VM kunt initiëren
MaintenanceWindowStartTime Het begin van het geplande onderhoud waarin Azure onderhoud op uw VM initieert
MaintenanceWindowEndTime Het einde van het geplande onderhoudsvenster waarin Azure onderhoud op uw VM initieert
LastOperationResultCode Het resultaat van de laatste poging om onderhoud op de VM te initiëren

U kunt ook de onderhoudsstatus voor alle VM's in een resourcegroep ophalen door Get-AzVM te gebruiken en geen VM op te geven.

Get-AzVM -ResourceGroupName myResourceGroup -Status

In het volgende PowerShell-voorbeeld wordt uw abonnements-id gebruikt en wordt een lijst met VM's geretourneerd die aangeeft of ze gepland zijn voor onderhoud.


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
      }
    }
  }
}

Onderhoud op uw VM starten met behulp van PowerShell

Met behulp van de informatie van de functie in de vorige sectie start het volgende onderhoud op een VM als IsCustomerInitiatedMaintenanceAllowed is ingesteld op true.


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

Klassieke implementaties

Belangrijk

VM's die zijn gemaakt via het klassieke implementatiemodel, worden op 1 september 2023 buiten gebruik gesteld.

Als u IaaS-resources van Azure Service Management gebruikt, moet u de migratie voor 1 september 2023 voltooien. U wordt aangeraden al eerder over te schakelen om te kunnen profiteren van de vele functieverbeteringen in Azure Resource Manager.

Zie Uw IaaS-resources migreren naar Azure Resource Manager uiterlijk 1 september 2023 voor meer informatie.

Als u nog steeds verouderde VM's hebt die zijn geïmplementeerd met behulp van het klassieke implementatiemodel, kunt u PowerShell gebruiken om vm's op te vragen en onderhoud te initiëren.

Als u de onderhoudsstatus van een VM wilt ophalen, typt u:

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

Als u onderhoud wilt starten op uw klassieke VM, typt u:

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

Volgende stappen

U kunt ook gepland onderhoud afhandelen met behulp van de Azure CLI of portal.