استكشاف أخطاء الموارد المشتركة وإصلاحها

تتناول هذه المقالة المشكلات التي قد تنشأ عند استخدام الموارد المشتركة فيAzure Automation.

الوحدات

السيناريو: وحدة نمطية متوقفة أثناء الاستيراد

المشكلة

وحدة نمطية متوقفة في حالة الاستيراد عند استيراد أو تحديث الوحدات النمطية في Azure Automation.

السبب

نظراً لأن استيراد وحدات PowerShell النمطية عملية معقدة ومتعددة الخطوات، فقد لا يتم استيراد الوحدة بشكل صحيح، ويمكن أن تكون متوقفة في حالة مؤقتة. لمعرفة مزيدٍ من المعلومات حول عملية الاستيراد، راجع استيراد وحدة PowerShell النمطية.

نوع الحل

لحل هذه المشكلة، يجب إزالة الوحدة النمطية العالقة باستخدام Remove-AzAutomationModule cmdlet. يمكنك بعد ذلك إعادة محاولة استيراد الوحدة النمطية.

Remove-AzAutomationModule -Name ModuleName -ResourceGroupName ExampleResourceGroup -AutomationAccountName ExampleAutomationAccount -Force

السيناريو: وحدات AzureRM النمطية متوقفة أثناء الاستيراد بعد محاولة إجراء تحديث

المشكلة

يظل الشعار الذي يحتوي على الرسالة التالية موجوداً في حسابك بعد محاولة تحديث وحدات AzureRM النمطية:

Azure modules are being updated

السبب

هناك مشكلة معروفة في تحديث وحدات AzureRM النمطية في حساب Automation. تحدث المشكلة على وجه التحديد إذا كانت الوحدات النمطية في مجموعة موارد باسم رقمي يبدأ بـ0.

نوع الحل

لتحديث وحدات AzureRM النمطية في حساب Automation، يجب أن يكون الحساب في مجموعة موارد باسم أبجدي رقمي. مجموعات الموارد ذات الأسماء الرقمية التي تبدأ بـ0 غير قادرة على تحديث وحدات AzureRM النمطية في هذا الوقت.

السيناريو: تعذُّر الوحدة النمطية في الاستيراد أو لا يمكن لـcmdlets التنفيذ بعد الاستيراد

المشكلة

فشل الوحدة النمطية في الاستيراد، أو استيرادها بنجاح، ولكن لا يتم استخراج cmdlets.

السبب

بعض الأسباب الشائعة التي قد تؤدي إلى عدم نجاح وحدة نمطية في الاستيراد إلى Azure Automation هي:

  • لا تتطابق البنية مع البنية التي يحتاجها Automation.
  • تعتمد الوحدة النمطية على وحدة أخرى لم يتم نشرها في حسابك على Automation.
  • لا تجد الوحدة النمطية تبعياتها في المجلد.
  • يتم استخدام New-AzAutomationModule cmdlet لتحميل الوحدة النمطية، ولم توفر مسار التخزين الكامل أو لم تحمّل الوحدة النمطية باستخدام عنوان URL يمكن للجمهور الوصول إليه.

نوع الحل

استخدم أياً من هذه الحلول لإصلاح المشكلة:

  • تأكد من أن الوحدة النمطية تتبع التنسيق: ModuleName.zip -> ModuleName أو رقم الإصدار -> (ModuleName.psm1، ModuleName.psd1).
  • افتح الملف .psd1 ومعرفة ما إذا كانت الوحدة النمطية بها أي تبعيات. إذا كان الأمر كذلك، حمّل هذه الوحدات النمطية إلى حساب Automation.
  • تأكد من وجود أي ملفات .dll المشار إليها في مجلد الوحدة النمطية.

السيناريو: يتم إيقاف Update-AzureModule.ps1 مؤقتًا عند تحديث الوحدات النمطية

المشكلة

عند استخدام سجل التشغيل Update-AzureModule.ps1 لتحديث وحدات Azure النمطية، تتوقف عملية تحديث الوحدة النمطية مؤقتاً.

السبب

بالنسبة إلى سجل التشغيل هذا، يكون الإعداد الافتراضي لتحديد عدد الوحدات النمطية التي يتم تحديثها في وقت واحد هو 10. تكون عملية التحديث عرضة للأخطاء عند تحديث عدد كبير جداً من الوحدات في نفس الوقت.

نوع الحل

ليس من الشائع أن تكون جميع وحدات AzureRM أو Az النمطية مطلوبة في نفس حساب Automation. ينبغي عليك استيراد الوحدات النمطية المحددة التي تحتاجها.

إشعار

تجنب استيراد وحدة Az.Automation النمطية أو بأكملها، AzureRM.Automation والتي تستورد جميع الوحدات النمطية المضمنة.

إذا كانت عملية التحديث تتوقف مؤقتًا، أضف المعلمة SimultaneousModuleImportJobCountإلى البرنامج النصي Update-AzureModules.ps1، وتوفير قيمة أقل من الافتراضي من 10. إذا قمت بتطبيق هذا المنطق، حاول البدء بقيمة 3 أو 5. SimultaneousModuleImportJobCount هو معلمة لسجل تشغيل النظام Update-AutomationAzureModulesForAccount الذي يُستخدم لتحديث وحدات Azure النمطية. إذا أجريت هذا التعديل، فستستمر عملية التحديث لفترة أطول، ولكن سيكون لديها فرصة أفضل لإكمالها. يوضح المثال التالي المعلمة ومكان وضعها في سجل التشغيل:

$Body = @"
   {
      "properties":{
      "runbook":{
            "name":"Update-AutomationAzureModulesForAccount"
      },
      "parameters":{
            ...
            "SimultaneousModuleImportJobCount":"3",
            ... 
      }
      }
   }
"@

حساب "تشغيل باسم"

إشعار

تم إيقاف تشغيل Azure Automation كحسابات، بما في ذلك Classic Run كحسابات في 30 سبتمبر 2023 واستبدالها بالهويات المدارة لن تتمكن بعد ذلك من إنشاء أو تجديد Run كحسابات من خلال مدخل Microsoft Azure. لمزيد من المعلومات، راجع الترحيل من حسابات Run As الموجودة إلى الهوية المدارة.

السيناريو: تتلقى الخطأ «غير قادر على العثور على نقطة إدخال باسم 'GetPerAdapterInfo' في DLL 'iplpapi.dll'» عند تنفيذ سجل تشغيل

المشكلة

عند تنفيذ دفتر تشغيل، تتلقى الاستثناء التالي:

Unable to find an entry point named 'GetPerAdapterInfo' in DLL 'iplpapi.dll'

السبب

غالباً ما يكون سبب هذا الخطأ هو حساب «تشغيل باسم» الذي تم تكوينه بشكل غير صحيح.

نوع الحل

تأكد من تكوين حساب «تشغيل باسم» بشكل صحيح. ثم تحقق من أن لديك التعليمة البرمجية المناسبة في سجل التشغيل الخاص بك للمصادقة مع Azure. يوضح المثال التالي قصاصة برمجية من التعليمة البرمجية للمصادقة مع Azure في سجل تشغيل باستخدام حساب «تشغيل باسم».

$connection = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $connection.TenantID `
-ApplicationID $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint

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

إذا لم تحل هذه المقالة المشكلة، فجرّب إحدى القنوات التالية للحصول على دعم إضافي:

  • احصل على إجابات من الخبراء في Azure من خلال منتديات Azure.
  • تواصل مع @AzureSupport. هذا هو الحساب الرسمي لـ Microsoft Azure لتعيين مجتمع Azure بالموارد المناسبة: الإجابات والدعم والخبراء.
  • احفظ ملفًا يتضمن حادث دعم Azure. انتقل إلى «موقع دعم Azure»، وحدد «Get Support».