Manipular a manutenção planejada usando o PowerShell

Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis ✔️ Conjuntos de dimensionamento uniformes

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

As informações de manutenção só serão retornadas se houver manutenção planejada. Se não houver nenhuma manutenção 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 propriedades a seguir são retornadas em MaintenanceRedeployStatus:

Valor Descrição
IsCustomerInitiatedMaintenanceAllowed Indica se você pode iniciar a manutenção na máquina virtual neste momento
PreMaintenanceWindowStartTime O início da janela de autoatendimento de manutenção quando você pode iniciar a manutenção na sua VM
PreMaintenanceWindowEndTime O fim da janela de autoatendimento de manutenção quando você pode iniciar manutenção na sua VM
MaintenanceWindowStartTime O início da manutenção agendada na qual o Azure inicia a manutenção na sua VM
MaintenanceWindowEndTime O término da janela de manutenção agendada na qual o Azure inicia a manutenção na 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, sem especificar a VM.

Get-AzVM -ResourceGroupName myResourceGroup -Status

O exemplo do PowerShell a seguir usa a ID da sua assinatura e retorna uma lista de VMs, indicando se 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 manutenção na sua VM usando o PowerShell

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


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

Implantaçõ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ê usa recursos de IaaS do Gerenciamento de Serviços do Azure, conclua sua migração até 1º de setembro de 2023. Recomendamos que faça a migração o quanto antes para aproveitar as inúmeras melhorias feitas no Azure Resource Manager.

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

Caso você ainda tenha VMs herdadas que foram implantadas usando o modelo de implantação clássico, use 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 na VM clássica, digite:

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

Próximas etapas

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