Processar a manutenção planeada com o PowerShell
Aplica-se a: ✔️ VMs do Windows VMs ✔️ do Linux Conjuntos ✔️ de dimensionamento ✔️ flexíveis Conjuntos de dimensionamento uniformes
Pode utilizar Azure PowerShell para ver quando as VMs estão agendadas para manutenção. As informações de manutenção planeada estão disponíveis no cmdlet Get-AzVM quando utiliza o -status
parâmetro.
As informações de manutenção só são devolvidas se houver manutenção planeada. Se não for agendada nenhuma manutenção que afete a VM, o cmdlet não devolve quaisquer informações 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 devolvidas em MaintenanceRedeployStatus:
Valor | Descrição |
---|---|
IsCustomerInitiatedMaintenanceAllowed | Indica se pode iniciar a manutenção na VM neste momento |
PreMaintenanceWindowStartTime | O início da janela self-service de manutenção quando pode iniciar a manutenção na VM |
PreMaintenanceWindowEndTime | O fim da janela self-service de manutenção quando pode iniciar a manutenção na VM |
MaintenanceWindowStartTime | O início da manutenção agendada na qual o Azure inicia a manutenção na VM |
MaintenanceWindowEndTime | O fim da janela agendada de manutenção na qual o Azure inicia a manutenção na VM |
LastOperationResultCode | O resultado da última tentativa de iniciar a manutenção na VM |
Também pode obter o estado de manutenção de todas as VMs num grupo de recursos ao utilizar Get-AzVM e não especificar uma VM.
Get-AzVM -ResourceGroupName myResourceGroup -Status
O exemplo seguinte do PowerShell utiliza o ID da subscrição e devolve uma lista de VMs que indicam 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 a manutenção na VM com o PowerShell
Ao utilizar informações da função na secção anterior, o seguinte inicia a manutenção numa VM se IsCustomerInitiatedMaintenanceAllowed estiver definido como verdadeiro.
MaintenanceIterator -SubscriptionId <Subscription ID> |
Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
Restart-AzVM -PerformMaintenance
Implementações clássicas
Importante
As VMs criadas através do modelo de implementação clássica serão descontinuadas a 1 de setembro de 2023.
Se utilizar recursos IaaS da Gestão de Serviços do Azure, conclua a migração até 1 de setembro de 2023. Recomendamos que faça a mudança mais cedo para tirar partido dos muitos melhoramentos de funcionalidades no Azure Resource Manager.
Para obter mais informações, consulte Migrar os seus recursos IaaS para o Azure Resource Manager até 1 de setembro de 2023.
Se ainda tiver VMs legadas que foram implementadas com o modelo de implementação clássica, pode utilizar o PowerShell para consultar VMs e iniciar a manutenção.
Para obter o estado de manutenção de uma VM, escreva:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
Para iniciar a manutenção na VM clássica, escreva:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>
Passos seguintes
Também pode processar a manutenção planeada com a CLI ou portal do Azure.