Aracılığıyla paylaş


PowerShell kullanarak planlı bakımı işleme

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri

VM'lerin bakım için zamanlandığı zamanları görmek için Azure PowerShell'i kullanabilirsiniz. Planlı bakım bilgileri, parametresini kullandığınızda Get-AzVM cmdlet'inden -status kullanılabilir.

Bakım bilgileri yalnızca planlı bakım varsa döndürülür. VM'yi etkileyen bir bakım zamanlanmazsa, cmdlet herhangi bir bakım bilgisi döndürmez.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

Çıktı

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 altında aşağıdaki özellikler döndürülür:

Value Açıklama
IsCustomerInitiatedMaintenanceAllowed Şu anda VM'de bakım başlatıp başlatamayacağınızı gösterir
PreMaintenanceWindowStartTime VM'nizde bakım başlatabileceğiniz bakım self servis penceresinin başlangıcı
PreMaintenanceWindowEndTime VM'nizde bakım başlatabileceğiniz bakım self servis penceresinin sonu
MaintenanceWindowStartTime Azure'ın VM'nizde bakım başlattığı zamanlanan bakımın başlangıcı
MaintenanceWindowEndTime Azure'ın VM'nizde bakım başlattığı bakım zamanlanmış penceresinin sonu
LastOperationResultCode VM'de bakımı başlatmaya yönelik son denemenin sonucu

Ayrıca Get-AzVM kullanarak ve VM belirtmeyerek bir kaynak grubundaki tüm VM'ler için bakım durumunu alabilirsiniz.

Get-AzVM -ResourceGroupName myResourceGroup -Status

Aşağıdaki PowerShell örneği abonelik kimliğinizi alır ve bakım için zamanlanıp zamanlanmadıklarını belirten bir VM listesi döndürür.


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

PowerShell kullanarak VM'nizde bakım başlatma

IsCustomerInitiatedMaintenanceAllowed değeri true olarak ayarlandıysa, önceki bölümdeki işlevden alınan bilgiler kullanılarak vm'de bakım başlatılır.


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

Klasik dağıtımlar

Önemli

Klasik dağıtım modeliyle oluşturulan VM'ler 1 Eylül 2023'te kullanımdan kaldırılacaktır.

Azure Hizmet Yönetimi'nden IaaS kaynaklarını kullanıyorsanız lütfen geçişinizi 1 Eylül 2023'e kadar tamamlayın. Azure Resource Manager'daki birçok özellik geliştirmesinin avantajlarından yararlanmak için anahtarı daha erken gerçekleştirmenizi öneririz.

Daha fazla bilgi için bkz . IaaS kaynaklarınızı 1 Eylül 2023'e kadar Azure Resource Manager'a geçirme.

Klasik dağıtım modeli kullanılarak dağıtılan eski VM'leriniz hala varsa, VM'leri sorgulamak ve bakımı başlatmak için PowerShell'i kullanabilirsiniz.

Vm'nin bakım durumunu almak için şunu yazın:

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

Klasik VM'nizde bakımı başlatmak için şunu yazın:

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

Sonraki adımlar

Planlı bakımı Azure CLI veya portal kullanarak da işleyebilirsiniz.