Gestione della manutenzione pianificata con PowerShell
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi
È possibile usare Azure PowerShell per verificare quando le macchine virtuali sono pianificate per la manutenzione. Le informazioni sulla manutenzione pianificata sono disponibili con il cmdlet Get-AzVM, usando il parametro -status
.
Le informazioni vengono restituite solo se è presente una manutenzione pianificata. Se non è presente alcuna manutenzione pianificata per la macchina virtuale, il cmdlet non restituisce informazioni.
Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status
Output
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
MaintenanceRedeployStatus restituisce le proprietà seguenti:
valore | Descrizione |
---|---|
IsCustomerInitiatedMaintenanceAllowed | Indica se in questo momento è possibile avviare la manutenzione per la macchina virtuale |
PreMaintenanceWindowStartTime | Inizio della finestra di manutenzione self-service, che segnala la possibilità di avviare la manutenzione della VM |
PreMaintenanceWindowEndTime | Termine della finestra di manutenzione self-service, che segnala la possibilità di avviare la manutenzione della VM |
MaintenanceWindowStartTime | Inizio della manutenzione pianificata in cui Azure avvia la manutenzione della VM |
MaintenanceWindowEndTime | Fine dell'intervallo pianificato di manutenzione in cui Azure avvia la manutenzione della macchina virtuale |
LastOperationResultCode | Risultato dell'ultimo tentativo di avviare la manutenzione della macchina virtuale |
È anche possibile ottenere lo stato di manutenzione per tutte le macchine virtuali in un gruppo di risorse tramite Get-AzVM, senza specificare una macchina virtuale.
Get-AzVM -ResourceGroupName myResourceGroup -Status
L'esempio di PowerShell seguente accetta l'ID sottoscrizione e restituisce un elenco di macchine virtuali che indicano se sono pianificate per la manutenzione.
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
}
}
}
}
Avviare la manutenzione della macchina virtuale usando PowerShell
Usando le informazioni derivate dalla funzione nella sezione precedente, il codice seguente avvia la manutenzione in una macchina virtuale se IsCustomerInitiatedMaintenanceAllowed è impostato su true.
MaintenanceIterator -SubscriptionId <Subscription ID> |
Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
Restart-AzVM -PerformMaintenance
Distribuzioni classiche
Importante
Le macchine virtuali create tramite il modello di distribuzione classica verranno ritirati il 1° settembre 2023.
Se si usano risorse IaaS da Gestione dei servizi di Azure, completare la migrazione entro il 1° settembre 2023. È consigliabile effettuare quanto prima questo passaggio per sfruttare i vantaggi delle numerose funzionalità avanzate di Azure Resource Manager.
Per ulteriori informazioni, consultare Migrazione delle risorse IaaS in Azure Resource Manager entro il 1° settembre 2023.
Se si dispone ancora di macchine virtuali legacy distribuite tramite il modello di distribuzione classico, è possibile usare PowerShell per eseguire query per le macchine virtuali e avviare la manutenzione.
Per ottenere lo stato di manutenzione di una macchina virtuale, digitare:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
Per avviare la manutenzione di una VM classica, digitare:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>
Passaggi successivi
È anche possibile gestire la manutenzione pianificata usando l'interfaccia della riga di comando di Azure o il portale.