Menangani pemeliharaan terencana menggunakan PowerShell

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Anda dapat menggunakan Azure PowerShell untuk melihat kapan VM dijadwalkan untuk pemeliharaan. Informasi pemeliharaan terencana tersedia dari cmdlet Get-AzVM saat Anda menggunakan parameter -status.

Informasi pemeliharaan dikembalikan hanya jika ada pemeliharaan yang dipaketkan. Jika tidak ada pemeliharaan terjadwal yang berdampak pada VM, cmdlet tidak mengembalikan informasi pemeliharaan apa pun.

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 

Properti berikut dikembalikan di bawah MaintenanceRedeployStatus:

Nilai Deskripsi
IsCustomerInitiatedMaintenanceAllowed Menunjukkan apakah Anda dapat memulai pemeliharaan pada VM saat ini
PreMaintenanceWindowStartTime Awal jendela layanan mandiri pemeliharaan saat Anda dapat memulai pemeliharaan di VM
PreMaintenanceWindowEndTime Akhir dari jendela layanan mandiri pemeliharaan saat Anda dapat memulai pemeliharaan pada VM Anda
MaintenanceWindowStartTime Awal pemeliharaan terjadwal saat Azure memulai pemeliharaan pada VM Anda
MaintenanceWindowEndTime Akhir dari jendela terjadwal pemeliharaan tempat Azure memulai pemeliharaan pada VM Anda
LastOperationResultCode Hasil dari upaya terakhir untuk memulai pemeliharaan pada VM

Anda juga bisa mendapatkan status pemeliharaan untuk semua VM dalam grup sumber daya dengan menggunakan Get-AzVM dan tidak menentukan VM.

Get-AzVM -ResourceGroupName myResourceGroup -Status

Contoh PowerShell berikut mengambil ID langganan Anda dan mengembalikan daftar VM yang menunjukkan apakah mereka dijadwalkan untuk pemeliharaan.


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

Mulai pemeliharaan pada VM Anda menggunakan PowerShell

Dengan menggunakan informasi dari fungsi di bagian sebelumnya, fitur berikut ini akan memulai pemeliharaan pada VM jika IsCustomerInitiatedMaintenanceAllowed diatur ke true.


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

Penyebaran klasik

Penting

VM yang dibuat melalui model penyebaran klasik akan dihentikan pada 1 September 2023.

Jika Anda menggunakan sumber daya IaaS dari Azure Service Management, silakan selesaikan migrasi Anda pada 1 September 2023. Kami mendorong Anda untuk beralih lebih cepat untuk memanfaatkan banyak peningkatan fitur di Azure Resource Manager.

Untuk informasi selengkapnya, lihat Memigrasikan sumber daya IaaS Anda ke Azure Resource Manager pada 1 September 2023.

Jika Anda masih memiliki VM lama yang disebarkan menggunakan model penyebaran klasik, Anda dapat menggunakan PowerShell untuk membuat kueri VM dan memulai pemeliharaan.

Untuk mendapatkan status pemeliharaan VM, ketik:

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

Untuk memulai pemeliharaan pada VM klasik Anda, ketik:

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

Langkah berikutnya

Anda juga dapat menangani pemeliharaan terencana menggunakan Azure CLI atau portal.