إجراء الصيانة المخطط لها باستخدام PowerShell

ينطبق على: ✔️ أجهزة ظاهرية بنظام التشغيل Linux ✔️ أجهزة ظاهرية بنظام التشغيل Windows ✔️ مجموعات التوسعة المرنة ✔️ مجموعات التوسعة الموحدة

يمكنك استخدام Azure PowerShell لمعرفة متى تتم جدولة الأجهزة الظاهرية للصيانة. تتوفر معلومات الصيانة المخططة من Get-AzVM cmdlet عند استخدام المعلمة -status.

يتم إرجاع معلومات الصيانة فقط إذا كانت هناك صيانة مخطط لها. إذا لم تتم جدولة أي صيانة تؤثر على الجهاز الظاهري، فلن يقوم الأمر cmdlet بإرجاع أية معلومات صيانة.

Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status

المخرجات

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:

قيمة ‏‏الوصف
IsCustomerInitiatedMaintenanceAllowed يشير إلى ما إذا كان يمكنك بدء الصيانة على الجهاز الظاهري في هذا الوقت
PreMaintenanceWindowStartTime بداية نافذة الخدمة الذاتية للصيانة عندما يمكنك بدء الصيانة على جهازك الظاهري
PreMaintenanceWindowEndTime نهاية نافذة الخدمة الذاتية للصيانة عندما يمكنك بدء الصيانة على جهازك الظاهري
MaintenanceWindowStartTime بداية الصيانة المجدولة حيث يبدأ Azure الصيانة على الجهاز الظاهري
MaintenanceWindowEndTime نهاية نافذة الصيانة المجدولة التي يبدأ فيها Azure الصيانة على الجهاز الظاهري
LastOperationResultCode نتيجة المحاولة الأخيرة لبدء الصيانة على الجهاز الظاهري

يمكنك أيضاً الحصول على حالة الصيانة لجميع الأجهزة الظاهرية في مجموعة موارد باستخدام Get-AzVM وعدم تحديد أي جهاز ظاهري.

Get-AzVM -ResourceGroupName myResourceGroup -Status

يأخذ مثال PowerShell التالي معرف الاشتراك الخاص بك ويرجع قائمة بالأجهزة الظاهرية التي تشير إلى ما إذا كانت مجدولة للصيانة.


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

باستخدام المعلومات الواردة من الدالة في القسم السابق، يبدأ ما يلي الصيانة على جهاز ظاهري إذا تم تعيين IsCustomerInitiatedMaintenanceAllowed على true.


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

التوزيع الكلاسيكي

هام

سيتم إيقاف الأجهزة الظاهرية التي تم إنشاؤها من خلال نموذج التوزيع الكلاسيكي في 1 سبتمبر 2023.

إذا كنت تستخدم موارد IaaS من Azure Service Management، فيرجى إكمال الترحيل بحلول 1 سبتمبر 2023. ونشجعك على إجراء التبديل في وقت أقرب للاستفادة من العديد من تحسينات الميزات في Azure Resource Manager.

لمزيد من المعلومات، راجع ترحيل موارد IaaS إلى Azure Resource Manager بحلول 1 سبتمبر 2023.

إذا كان لا يزال لديك أجهزة ظاهرية قديمة تم نشرها باستخدام نموذج النشر الكلاسيكي، فيمكنك استخدام PowerShell للاستعلام عن أجهزة ظاهرية وبدء الصيانة.

للحصول على حالة صيانة جهاز ظاهري، اكتب:

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

لبدء الصيانة على الجهاز الظاهري الكلاسيكي، اكتب:

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

الخطوات التالية

يمكنك أيضاً التعامل مع الصيانة المخطط لها باستخدام Azure CLI أو المدخل.