Delen via


Gepland onderhoud afhandelen met Behulp van PowerShell

Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Flexibele schaalsets Uniform-schaalsets ✔️

U kunt Azure PowerShell gebruiken om te zien wanneer VM's zijn gepland voor onderhoud. Informatie over gepland onderhoud is beschikbaar via de Get-AzVM-cmdlet 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:

Weergegeven als 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 VIRTUELE machine kunt initiëren
PreMaintenanceWindowEndTime Het einde van het selfservicevenster voor onderhoud wanneer u onderhoud op uw VIRTUELE machine kunt initiëren
MaintenanceWindowStartTime Het begin van het geplande onderhoud waarin Azure onderhoud start op uw VM
MaintenanceWindowEndTime Het einde van het geplande onderhoudsvenster waarin Azure onderhoud op uw VM start
LastOperationResultCode Het resultaat van de laatste poging om onderhoud op de VM te starten

U kunt ook de onderhoudsstatus voor alle VM's in een resourcegroep ophalen met behulp van Get-AzVM en geen VM opgeven.

Get-AzVM -ResourceGroupName myResourceGroup -Status

In het volgende PowerShell-voorbeeld wordt uw abonnements-id gebruikt en wordt een lijst met VM's geretourneerd die aangeven of ze zijn gepland 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 starten op uw VM met behulp van PowerShell

Met behulp van informatie uit de functie in de vorige sectie wordt onderhoud gestart op een VIRTUELE machine als IsCustomerInitiatedMaintenanceAllowed is ingesteld op true.


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

Klassieke implementaties

Belangrijk

Virtuele machines die zijn gemaakt via het klassieke implementatiemodel, worden op 1 september 2023 buiten gebruik gesteld.

Als u IaaS-resources van Azure Service Management gebruikt, voltooit u uw migratie op 1 september 2023. 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 op 1 september 2023 voor meer informatie.

Als u nog steeds verouderde VM's hebt die zijn geïmplementeerd met het klassieke implementatiemodel, kunt u PowerShell gebruiken om query's uit te voeren op VM's en onderhoud te starten.

Als u de onderhoudsstatus van een VIRTUELE machine 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.