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ığı zamanı görmek için Azure PowerShell kullanabilirsiniz. Planlı bakım bilgileri, parametresini kullandığınızda Get-AzVM cmdlet'inden -status kullanılabilir.

Bakım bilgileri yalnızca bakım planlıysa 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:

Değer 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

Get-AzVM kullanarak ve VM belirtmeyerek bir kaynak grubundaki tüm VM'lerin bakım durumunu da 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ıldığında, aşağıdakiler VM'de bakım başlatı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ştirmelerinden yararlanmak için geçişi daha erken yapmanızı öneririz.

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

Klasik dağıtım modeli kullanılarak dağıtılan eski VM'leriniz hala varsa, PowerShell'i kullanarak VM'leri sorgulayabilir ve bakımı başlatabilirsiniz.

Bir 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.