Lidando com a manutenção planejada usando o PowerShell

Aplica-se a: ✔️ VMs ✔️ Linux VMs ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes

Você pode usar o Azure PowerShell para ver quando as VMs estão agendadas para manutenção. As informações de manutenção planejada estão disponíveis no cmdlet Get-AzVM quando você usa o -status parâmetro.

As informações de manutenção só são devolvidas se houver manutenção planeada. Se nenhuma manutenção for agendada que afete a VM, o cmdlet não retornará nenhuma informação de manutenção.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Saída

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 

As seguintes propriedades são retornadas em MaintenanceRedeployStatus:

valor Description
IsCustomerInitiatedMaintenanceAllowed Indica se você pode iniciar a manutenção na VM neste momento
Pré-manutençãoJanelaStartTime O início da janela de autoatendimento de manutenção quando você pode iniciar a manutenção em sua VM
PreMaintenanceWindowEndTime O fim da janela de autoatendimento de manutenção quando você pode iniciar a manutenção em sua VM
ManutençãoJanelaStartTime O início da manutenção agendada na qual o Azure inicia a manutenção em sua VM
MaintenanceWindowEndTime O fim da janela de manutenção agendada na qual o Azure inicia a manutenção em sua VM
LastOperationResultCode O resultado da última tentativa de iniciar a manutenção na VM

Você também pode obter o status de manutenção para todas as VMs em um grupo de recursos usando Get-AzVM e não especificando uma VM.

Get-AzVM -ResourceGroupName myResourceGroup -Status

O exemplo do PowerShell a seguir usa sua ID de assinatura e retorna uma lista de VMs indicando se elas estão agendadas para manutenção.


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

Iniciar a manutenção em sua VM usando o PowerShell

Usando informações da função na seção anterior, o seguinte inicia a manutenção em uma VM se IsCustomerInitiatedMaintenanceAllowed estiver definido como true.


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

Implementações clássicas

Importante

As VMs criadas por meio do modelo de implantação clássico serão desativadas em 1º de setembro de 2023.

Se você usar recursos IaaS do Gerenciamento de Serviços do Azure, conclua sua migração até 1º de setembro de 2023. Recomendamos que você faça a mudança mais cedo para aproveitar os muitos aprimoramentos de recursos no Gerenciador de Recursos do Azure.

Para obter mais informações, consulte Migrar seus recursos de IaaS para o Azure Resource Manager até 1º de setembro de 2023.

Se você ainda tiver VMs herdadas que foram implantadas usando o modelo de implantação clássico, poderá usar o PowerShell para consultar VMs e iniciar a manutenção.

Para obter o status de manutenção de uma VM, digite:

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

Para iniciar a manutenção em sua VM clássica, digite:

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

Próximos passos

Você também pode lidar com a manutenção planejada usando a CLI ou o portal do Azure.