ملحقات الجهاز الظاهري وميزات Windows

ملحقات جهاز ظاهري Azure من (VM) عبارة عن تطبيقات صغيرة توفر تكوين ما بعد التوزيع ومهام الأتمتة على أجهزة Azure الظاهرية. على سبيل المثال، إذا تطلب جهاز ظاهري تثبيت برنامج، أو حماية من الفيروسات، أو القدرة على تشغيل برنامج نصي بداخله، فإنه يمكن استخدام ملحق جهاز ظاهري.

يمكنك تشغيل ملحقات Azure VM باستخدام قوالب Azure CLI، وPowerShell، وAzure Resource Manager (قوالب ARM)، ومدخل Azure. يمكنك تجميع الملحقات مع توزيع جديد لجهاز ظاهري أو تشغيلها مقابل نظام موجود.

توفر هذه المقالة نظرة عامة حول ملحقات Azure VM، والمتطلبات الأساسية لاستخدامها، وإرشادات حول كيفية اكتشافها، وإدارتها، وإزالتها. توفر هذه المقالة معلومات معممة نظراً لتوفر العديد من ملحقات الجهاز الظاهري. يحتوي كل منها على تكوين فريد محتمل ووثائقها الخاصة.

عينات وحالات الاستخدام

يحتوي كل ملحق Azure VM على حالة استخدام محددة. وتشمل الأمثلة ما يلي:

بالإضافة إلى الملحقات الخاصة بالعملية، يتوفر ملحق برنامج نصي مخصص لكل من الأجهزة الظاهرية Windows وLinux. يسمح ملحق البرنامج النصي المخصص لـ Windows بتشغيل أي برنامج نصي PowerShell على جهاز ظاهري. تعد البرامج النصية المخصصة مفيدة لتصميم عمليات نشر Azure التي تتطلب تكويناً يتجاوز ما يمكن أن توفره أدوات Azure الأصلية.

المتطلبات الأساسية

Azure VM Agent

للتعامل مع الملحق الموجود على الجهاز الظاهري، تحتاج إلى تثبيت عامل Azure VM Agent لـ Windows (ويسمى أيضاً Windows Guest Agent). تحتوي بعض الملحقات الفردية على متطلبات أساسية، مثل الوصول إلى الموارد أو التبعيات.

يدير Azure VM Agent التفاعلات بين Azure VM ووحدة تحكم Azure fabric. يتولى العامل مسؤولية العديد من الجوانب الوظيفية لنشر أجهزة Azure الظاهرية وإدارتها، بما في ذلك تشغيل ملحقات الأجهزة الظاهرية.

يتم تثبيت Azure VM Agent مسبقاً على صور Azure Marketplace. يمكن أيضاً تثبيته يدوياً على أنظمة التشغيل المدعومة.

يعمل العامل على أنظمة تشغيل متعددة. ومع ذلك، يحتوي إطار عمل الملحقات على حد لأنظمة التشغيل التي تستخدمها الملحقات. توجد بعض الملحقات غير المدعومة عبر جميع أنظمة التشغيل وقد تصدر رمز الخطأ 51 ("نظام التشغيل غير المدعوم"). تحقق من وثائق الملحق الفردية للتأكد من إمكانية دعمها.

الوصول إلى الشبكة

يتم تنزيل حزم الملحقات من مستودع ملحقات Azure Storage. يتم نشر تحميلات حالة الملحق إلى Azure Storage.

إذا كنت تستخدم إصداراً مدعوماً من Azure VM Agent، فلن تحتاج إلى السماح بالوصول إلى Azure Storage في منطقة الجهاز الظاهري. يمكنك استخدام العامل لإعادة توجيه الاتصال إلى وحدة تحكم Azure fabric لاتصالات العامل (ميزة HostGAPlugin من خلال القناة المميزة على عنوان IP 168.63.129.16 الخاص). إذا كنت تستخدم إصداراً غير مدعوم من العامل، فستحتاج إلى السماح بالوصول الصادر إلى Azure Storage في تلك المنطقة من الجهاز الظاهري.

هام

إذا قمت بحظر الوصول إلى 168.63.129.16 باستخدام جدار الحماية الخاص بالضيف أو باستخدام وكيل، فستفشل الملحقات حتى إذا كنت تستخدم إصداراً مدعوماً من الوكيل أو قمت بتكوين الوصول الصادر. المنافذ 80، و443، و32526 مطلوبة.

لا يمكن استخدام العوامل إلا لتنزيل حزم الملحقات وحالة الإبلاغ. على سبيل المثال، إذا كان تثبيت ملحق يحتاج إلى تنزيل برنامج نصي من GitHub (ملحق البرنامج النصي المخصص) أو يحتاج إلى الوصول إلى Azure Storage (Azure Backup)، فأنت بحاجة إلى فتح جدار حماية إضافي أو منافذ مجموعة أمان الشبكة (NSG). تتضمن الملحقات المختلفة متطلبات مختلفة؛ لأنها تطبيقات في حد ذاتها. بالنسبة إلى الملحقات التي تتطلب الوصول إلى Azure Storage أو Azure Active Directory، يمكنك السماح بالوصول باستخدام علامات خدمة Azure NSG.

لا يحتوي Azure VM Agent على دعم خادم وكيل لتتمكن من إعادة توجيه طلبات حركة مرور الوكيل من خلاله. وهذا يعني أن Azure VM Agent سيعتمد على الوكيل المخصص (إذا كان لديك واحد) للوصول إلى الموارد على الإنترنت أو على المضيف من خلال IP 168.63.129.16.

اكتشاف ملحقات VM

يتوفر العديد من الملحقات المختلفة للجهاز الظاهري للاستخدام مع أجهزة Azure VM. لمشاهدة قائمة كاملة، استخدم Get-AzVMExtensionImage. يسرد المثال التالي جميع الملحقات المتوفرة في موقع WestUS:

Get-AzVmImagePublisher -Location "WestUS" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version

تشغيل ملحقات VM

يتم تشغيل ملحقات Azure VM على الأجهزة الظاهرية الموجودة. وهذا يفيد عندما تحتاج إلى إجراء تغييرات في التكوين أو استرداد الاتصال على جهاز ظاهري تم نشره بالفعل. يمكن أيضاً تجميع ملحقات VM مع عمليات نشر قالب ARM. باستخدام الملحقات مع قوالب ARM، يمكنك نشر أجهزة Azure VM وتكوينها دون تدخل ما بعد النشر.

يمكنك استخدام الطرق التالية لتشغيل ملحق مقابل جهاز ظاهري موجود.

PowerShell

يتوفر العديد من أوامر PowerShell لتشغيل ملحقات فردية. للاطلاع على قائمة، استخدم Get-Command وقم بتشغيل عامل تصفية على Extension:

Get-Command Set-Az*Extension* -Module Az.Compute

تنتج عن هذا الأمر مخرجات مشابهة لما يلي:

CommandType     Name                                          Version    Source
-----------     ----                                          -------    ------
Cmdlet          Set-AzVMAccessExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMADDomainExtension                     4.5.0      Az.Compute
Cmdlet          Set-AzVMAEMExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMBackupExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMBginfoExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMChefExtension                         4.5.0      Az.Compute
Cmdlet          Set-AzVMCustomScriptExtension                 4.5.0      Az.Compute
Cmdlet          Set-AzVMDiagnosticsExtension                  4.5.0      Az.Compute
Cmdlet          Set-AzVMDiskEncryptionExtension               4.5.0      Az.Compute
Cmdlet          Set-AzVMDscExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMExtension                             4.5.0      Az.Compute
Cmdlet          Set-AzVMSqlServerExtension                    4.5.0      Az.Compute
Cmdlet          Set-AzVmssDiskEncryptionExtension             4.5.0      Az.Compute

يستخدم المثال التالي ملحق برنامج نصي مخصص لتنزيل برنامج نصي من مستودع GitHub إلى الجهاز الظاهري المستهدف ثم يشغل البرنامج النصي:

Set-AzVMCustomScriptExtension -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" -Name "myCustomScript" `
    -FileUri "https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1" `
    -Run "Create-File.ps1" -Location "West US"

يستخدم المثال التالي ملحق VMAccess لإعادة تعيين كلمة المرور الإدارية لـ Windows VM إلى كلمة مرور مؤقتة. بعد تشغيل هذا الرمز، يجب عليك إعادة تعيين كلمة المرور عند تسجيل الدخول لأول مرة.

$cred=Get-Credential

Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
    -Location WestUS -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"

يمكنك استخدام الأمر Set-AzVMExtension لبدء أي ملحق VM.

مدخل Azure

يمكنك تطبيق ملحقات VM على جهاز ظاهري موجود من خلال مدخل Azure. حدد الجهاز الظاهري في المدخل، وحدد "Extensions"، ثم حدد "Add". اختر الملحق الذي تريده من قائمة الملحقات المتوفرة، واتبع الإرشادات الموجودة في المعالج.

يوضح المثال التالي تثبيت ملحق Microsoft Antimalware من مدخل Azure:

Screenshot of the dialog for installing the Microsoft Antimalware extension.

قوالب Azure Resource Manager

يمكنك إضافة ملحقات الأجهزة الظاهرية إلى قالب ARM وتشغيلها مع نشر القالب. عند نشر ملحق باستخدام قالب، يمكنك إنشاء عمليات نشر Azure تم تكوينها بالكامل.

على سبيل المثال، يتم أخذ JSON التالي من قالب ARM كامل يقوم بنشر مجموعة من الأجهزة الظاهرية المتوازنة للتحميل وقاعدة بيانات Azure SQL، ثم يقوم بتثبيت تطبيق .NET Core على كل جهاز ظاهري. يعتني ملحق VM بتثبيت البرنامج.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

لمزيد من المعلومات حول إنشاء قوالب ARM، راجع Virtual machines in an Azure Resource Manager template.

المساعدة في تأمين بيانات ملحق الجهاز الظاهري

عند تشغيل ملحق جهاز ظاهري، قد يكون من الضروري تضمين معلومات حساسة مثل بيانات الاعتماد، وأسماء حسابات التخزين، ومفاتيح الوصول. يتضمن العديد من ملحقات VM تكويناً محمياً يقوم بتشفير البيانات وفك تشفيرها فقط داخل الجهاز الظاهري المستهدف. يحتوي كل ملحق على مخطط تكوين محمي محدد، ويتم تفصيل كل ملحق في وثائق خاصة بالملحق.

يوضح المثال التالي مثيل ملحق البرنامج النصي المخصص لـ Windows. يتضمن أمر التشغيل مجموعة من بيانات الاعتماد. في هذا المثال، لا يتم تشفير أمر التشغيل.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ],
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

يساعد نقل commandToExecute الخاصية إلى التكوين protected على تأمين سلسلة التنفيذ، كما هو موضح في المثال التالي:

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

على جهاز ظاهري لـ Azure infrastructure as a service (IaaS) يستخدم ملحقات، في وحدة تحكم الشهادات، قد تشاهد الشهادات التي تحتوي على الموضوع Windows Azure CRP Certificate Generator. على جهاز ظاهري كلاسيكي لـ RedDog Front End (RDFE)، يكون لهذه الشهادات اسم الموضوع Windows Azure Service Management for Extensions.

تؤمِّن هذه الشهادات الاتصال بين الجهاز الظاهري ومضيفه أثناء نقل الإعدادات المحمية (كلمة المرور وبيانات الاعتماد الأخرى) التي تستخدمها الملحقات. يتم إنشاء الشهادات عن طريق وحدة تحكم Azure fabric ويتم تمريرها إلى Azure VM Agent. إذا قمت بإيقاف الجهاز الظاهري وبدء تشغيله كل يوم، فقد تقوم وحدة التحكم في النسيج بإنشاء شهادة جديدة. يتم تخزين الشهادة في مخزن الشهادات الشخصية للكمبيوتر. يمكن حذف هذه الشهادات. يقوم Azure VM Agent بإعادة إنشاء الشهادات إذا لزم الأمر.

كيفية تحديث العوامل والملحقات

تشترك العوامل والملحقات في آلية التحديث التلقائي نفسها.

عند توفر تحديث وتمكين التحديثات التلقائية، يتم تثبيت التحديث على الجهاز الظاهري فقط بعد إجراء تغيير على ملحق أو بعد تغيير طراز الجهاز الظاهري الآخر، مثل:

  • أقراص البيانات
  • ملحقات
  • علامات الملحقات
  • حاوية تشخيصات التمهيد
  • أسرار نظام تشغيل الضيف
  • حجم الجهاز الظاهري
  • ملف تعريف الشبكة

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

ملاحظة

قد تتطلب بعض التحديثات قواعد جدار حماية إضافية. راجع Network access.

ملحقات القوائم التي تم نشرها على جهاز ظاهري

$vm = Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion
Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

تحديثات العامل

يحتوي Azure VM Agent على تعليمات برمجية لمعالجة الملحقات فقط. تعد التعليمات البرمجية الخاصة بتوفير Windows منفصلة. يمكنك إزالة تثبيت Azure VM Agent. لا يمكنك تعطيل التحديث التلقائي لـ Azure VM Agent.

تتولى التعليمات البرمجية لمعالجة الملحق مسؤولية:

  • التواصل مع Azure fabric.
  • التعامل مع عمليات ملحق الجهاز الظاهري، مثل عمليات التثبيت، وحالة إعداد التقارير، وتحديث الملحقات الفردية، وإزالة الملحقات. تحتوي التحديثات على إصلاحات أمان، وإصلاحات أخطاء، وتحسينات على التعليمات البرمجية لمعالجة الملحقات.

للتحقق من الإصدار الذي تقوم بتشغيله، راجع Detect the VM Agent.

تحديثات الملحقات

عند توفر تحديث ملحق وتمكين التحديثات التلقائية، بعد حدوث تغيير في طراز الجهاز الظاهري، يقوم Azure VM Agent بتنزيل الملحق وترقيته.

تحديثات الملحق التلقائي إما ثانوية وإما تتطلب إصلاحاً عاجلاً. يمكنك الاشتراك في التحديثات الطفيفة أو إلغاء الاشتراك فيها عند توفير الملحق. يوضح المثال التالي كيفية ترقية الإصدارات الثانوية تلقائياً في قالب ARM باستخدام "autoUpgradeMinorVersion": true,:

    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },

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

إذا قمت بتعطيل التحديثات التلقائية أو كنت بحاجة إلى ترقية إصدار رئيسي، فاستخدم Set-AzVMExtension وحدد الإصدار المستهدف.

كيفية تحديد تحديثات الملحقات

تحديد ما إذا كان قد تم تعيين الملحق باستخدام autoUpgradeMinorVersion على جهاز ظاهري

يمكنك أن ترى من نموذج VM ما إذا كان قد تم توفير الملحق مع autoUpgradeMinorVersion. للتحقق من ذلك، استخدم Get-AzVm وقم بتوفير مجموعة الموارد واسم الجهاز الظاهري كما يلي:

 $vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
 $vm.Extensions

يوضح إخراج المثال التالي أنه قد تم تعيين autoUpgradeMinorVersion إلى true:

ForceUpdateTag              :
Publisher                   : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion          : 1.9
AutoUpgradeMinorVersion     : True

تحديد وقت حدوث حدث autoUpgradeMinorVersion

لمعرفة وقت حدوث تحديث للامتداد، راجع سجلات العامل على الجهاز الظاهري في C:\WindowsAzure\Logs\WaAppAgent.log.

في المثال التالي، تم تثبيت إصدار Microsoft.Compute.CustomScriptExtension1.8 على الجهاز الظاهري. كان هناك إصلاح عاجل متوفر للإصدار 1.9.

[INFO]  Getting plugin locations for plugin 'Microsoft.Compute.CustomScriptExtension'. Current Version: '1.8', Requested Version: '1.9'
[INFO]  Auto-Upgrade mode. Highest public version for plugin 'Microsoft.Compute.CustomScriptExtension' with requested version: '1.9', is: '1.9'

أذونات العامل

لأداء مهامه، يحتاج العامل إلى العمل كنظام محلي.

استِكشاف ملحقات VM وإصلاحها

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

تنطبق إجراءات استكشاف الأخطاء وإصلاحها التالية على جميع ملحقات الجهاز الظاهري:

  • للتحقق من Azure VM Agent Log، انظر إلى النشاط عندما كانت إضافتك تتوفر في C:\WindowsAzure\Logs\WaAppAgent.log.

  • تحقق من سجلات الملحقات لمزيد من التفاصيل في C:\WindowsAzure\Logs\Plugins<extensionName>.

  • تحقق من أقسام استكشاف الأخطاء وإصلاحها في الوثائق الخاصة بالملحقات بحثاً عن رموز الخطأ، والمشكلات المعروفة، والمعلومات الأخرى الخاصة بالملحقات.

  • ألقِ نظرة على سجلات النظام. تحقق من وجود عمليات أخرى قد تتداخل مع الملحق، مثل التثبيت طويل الأمد لتطبيق آخر يتطلب وصولاً حصرياً إلى مدير الحزمة.

  • في الجهاز الظاهري، إذا كان هناك ملحق موجود مع حالة توفير فاشلة، أي ملحق جديد آخر فشل في تثبيت.

الأسباب الشائعة لفشل الملحق

  • يتم تشغيل الملحقات لمدة 20 دقيقة. (ويُستثنى من هذا البرنامج النصي المخصص، وChef، وDSC، الذي يتم تشغيله لمدة 90 دقيقة). وإذا تجاوزت عملية النشر الخاصة بك هذا الوقت، فسيتم تمييزه بأن وقته قد انتهى. يمكن أن يكون السبب في ذلك الأجهزة الظاهرية منخفضة الموارد، أو أن تكوينات الأجهزة الظاهرية الأخرى أو مهام بدء التشغيل تستهلك كميات كبيرة من الموارد أثناء محاولة الملحق توفيرها.

  • عدم استيفاء الحد الأدنى من المتطلبات الأساسية. تحتوي بعض الملحقات على تبعيات على وحدات SKU للجهاز الظاهري، مثل صور HPC. قد تكون للملحقات متطلبات معينة للوصول إلى الشبكة، مثل الاتصال بـ Azure Storage أو الخدمات العامة. قد تكون الأمثلة الأخرى متمكنة من الوصول إلى مستودعات الحزم، أو نفاد مساحة القرص، أو قيود الأمان.

  • يعد الوصول إلى مدير الحزمة حصرياً. في بعض الحالات، قد يتعارض تكوين الجهاز الظاهري طويل الأمد وتثبيت الملحقات؛ لأن كليهما يحتاج إلى وصول حصري إلى مدير الحزمة.

عرض حالة الملحق

بعد تشغيل ملحق VM مقابل جهاز ظاهري، استخدم Get-AzVM لإرجاع حالة الملحق. يظهر Substatuses[0] أن توفير الملحق قد نجح؛ ما يعني أنه تم نشره بنجاح على الجهاز الظاهري. ولكن Substatuses[1] يظهر أن تنفيذ الملحق داخل الجهاز الظاهري فشل.

Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status

يتشابه الإخراج مع المثال التالي:

Extensions[0]           :
  Name                  : CustomScriptExtension
  Type                  : Microsoft.Compute.CustomScriptExtension
  TypeHandlerVersion    : 1.9
  Substatuses[0]        :
    Code                : ComponentStatus/StdOut/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : Windows PowerShell \nCopyright (C) Microsoft Corporation. All rights reserved.\n
  Substatuses[1]        :
    Code                : ComponentStatus/StdErr/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : The argument 'cseTest%20Scriptparam1.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the

-File parameter.
  Statuses[0]           :
    Code                : ProvisioningState/failed/-196608
    Level               : Error
    DisplayStatus       : Provisioning failed
    Message             : Finished executing command

يمكنك أيضاً العثور على حالة تنفيذ الملحق في مدخل Azure. حدد الجهاز الظاهري، وحدد "Extensions"، ثم حدد الملحق المطلوب.

إعادة تشغيل ملحق VM

قد تكون هناك حالات يحتاج فيها ملحق VM إلى إعادة تشغيله. يمكنك إعادة تشغيل ملحق عن طريق إزالته، ثم إعادة تشغيله باستخدام طريقة تنفيذ من اختيارك. لإزالة ملحق، استخدم Remove-AzVMExtension كما يلي:

Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"

يمكنك أيضاً إزالة ملحق في مدخل Azure:

  1. حدد جهازاً ظاهرياً.
  2. حدد ⁧⁩Extensions⁧⁩.
  3. حدد ملحقاً.
  4. حدد ⁧⁩"Uninstall"⁧⁩ (إلغاء التثبيت).

مرجع ملحق VM شائع

اسم الملحق الوصف
ملحق البرنامج النصي المخصص لـ Windows قم بتشغيل البرامج النصية مقابل Azure virtual machine.
ملحق DSC لـ Windows قم بتطبيق تكوينات الحالة المطلوبة لـ PowerShell على جهاز ظاهري.
ملحق Azure Diagnostics قم بإدارة Azure Diagnostics.
ملحق VMAccess قم بإدارة المستخدمين وبيانات الاعتماد.

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

لمزيد من المعلومات حول ملحقات الأجهزة الظاهرية، راجع Azure virtual machine extensions and features.