Gestion de la maintenance planifiée à l’aide de PowerShell

S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes

Vous pouvez utiliser Azure PowerShell pour savoir quand la maintenance des machines virtuelles a été planifiée. Les informations de maintenance planifiée sont disponibles à partir de la cmdlet Get-AzVM lorsque vous utilisez le paramètre -status.

Les informations de maintenance sont retournées uniquement en cas de maintenance planifiée. Si aucune maintenance planifiée n’impacte la machine virtuelle, l’applet de commande ne retourne pas d’informations de maintenance.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Sortie

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 

Les propriétés suivantes sont retournées sous MaintenanceRedeployStatus :

Valeur Description
IsCustomerInitiatedMaintenanceAllowed Indique si vous pouvez démarrer la maintenance sur la machine virtuelle maintenant
PreMaintenanceWindowStartTime Début de la fenêtre de maintenance en libre-service lorsque vous pouvez lancer la maintenance sur votre machine virtuelle
PreMaintenanceWindowEndTime Fin de la fenêtre de maintenance en libre-service lorsque vous pouvez lancer la maintenance sur votre machine virtuelle
MaintenanceWindowStartTime Début de la maintenance planifiée pendant laquelle Azure lance la maintenance sur votre machine virtuelle
MaintenanceWindowEndTime Fin de la fenêtre de maintenance planifiée pendant laquelle Azure lance la maintenance sur votre machine virtuelle
LastOperationResultCode Résultat de la dernière tentative de lancement de la maintenance sur la machine virtuelle

Vous pouvez également obtenir l'état de maintenance de toutes les machines virtuelles d'un groupe de ressources à l'aide de Get-AzVM sans spécifier de machine virtuelle.

Get-AzVM -ResourceGroupName myResourceGroup -Status

L’exemple PowerShell suivant prend votre ID d’abonnement et retourne une liste de machines virtuelles indiquant si elles sont planifiées en maintenance.


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

Démarrer la maintenance sur votre machine virtuelle à l’aide de PowerShell

À l’aide des informations de la fonction de la section précédente, la commande suivante démarre la maintenance sur une machine virtuelle si IsCustomerInitiatedMaintenanceAllowed est défini sur true.


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

Déploiements Classic

Important

Les machines virtuelles créées avec le modèle de déploiement classique vont être supprimées le 1er septembre 2023.

Si vous utilisez des ressources IaaS provenant d’Azure Service Management, effectuez la migration avant le 1er septembre 2023. Nous vous encourageons à effectuer le basculement plus tôt plus pour tirer parti des nombreuses fonctionnalités améliorées d’Azure Resource Manager.

Pour plus d’informations, consultez Migrez vos ressources IaaS vers Azure Resource Manager avant le 1er septembre 2023.

Si vous avez encore des machines virtuelles qui ont été déployées à l’aide du modèle de déploiement Classic, vous pouvez utiliser PowerShell pour interroger ces machines virtuelles et démarrer la maintenance.

Pour obtenir l’état de la maintenance d’une machine virtuelle, tapez :

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

Pour démarrer la maintenance sur votre machine virtuelle classique, tapez :

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

Étapes suivantes

Vous pouvez également gérer la maintenance planifiée à l’aide d’Azure CLI ou du portail.