تشغيل البرامج النصية في الجهاز الظاهري الذي يعمل بنظام Windows باستخدام أوامر تشغيل الإجراء

تستخدم ميزة أوامر تشغيل عامل الجهاز الظاهري لتشغيل برامج PowerShell النصية داخل جهاز ظاهري يعمل بنظام Windows. يمكنك استخدام هذه البرامج النصية للإدارة العامة للجهاز أو التطبيق. حيث يمكن أن تساعدك على تشخيص ومعالجة مشاكل الدخول إلى الآلة الظاهرية والشبكة واستعادة الآلة الظاهرية مرة أخرى إلى وضع جيد.

Benefits

يمكنك الوصول إلى أجهزتك الظاهرية بطرق متعددة. يمكن لأمر التشغيل تشغيل البرامج النصية على أجهزتك الظاهرية عن بعد باستخدام عامل الجهاز الظاهري. يمكنك استخدام أمر التشغيل من خلال مدخل Microsoft Azure أو واجهة برمجة تطبيقات REST أو PowerShell لأجهزة Windows الظاهرية.

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

Prerequisites

أنظمة تشغيل Windows مدعومة

إصدار نظام التشغيل x64 ARM64
نوافذ 10 Supported Supported
نوافذ 11 Supported Supported
Windows Server 2016‏ Supported Supported
نواة ويندوز سيرفر 2016 Supported Supported
ويندوز سيرفر 2019 Supported Supported
ويندوز سيرفر 2019 كور Supported Supported
ويندوز سيرفر 2022 Supported Supported
ويندوز سيرفر 2022 كور Supported Supported
إصدار Windows Server 2022 Azure Supported Supported
ويندوز سيرفر 2025 Supported Supported
ويندوز سيرفر 2025 كور Supported Supported
إصدار Windows Server 2025 Azure Supported Supported

Restrictions

تنطبق القيود التالية عند استخدام أمر التشغيل:

  • تقتصر المخرجات على آخر 4,096 بايت.
  • الحد الأدنى من الوقت لتشغيل البرنامج النصي هو حوالي 20 ثانية.
  • تشغيل البرامج النصية كنظام على Windows.
  • يمكن تشغيل برنامج نصي واحد في كل مرة.
  • البرامج النصية التي تطالب بالمعلومات (الوضع التفاعلي) غير مدعومة.
  • لا يمكنك إلغاء برنامج نصي قيد التشغيل.
  • الحد الأقصى للوقت الذي يمكن به تشغيل البرنامج النصي هو 90 دقيقة. بعد ذلك، سوف تنتهي مهلته.
  • يكون الاتصال الخارجي الصادر من الجهاز الظاهري لازمًا لإعادة نتائج البرنامج النصي.
  • لا يوصى بتشغيل برنامج نصي سيؤدي إلى إيقاف عامل الجهاز الظاهري أو تحديثه. يمكن أن يسمح هذا للملحق في حالة انتقال، مما يؤدي إلى انتهاء المهلة.

Note

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

لا تعمل ميزة أمر التشغيل إذا كانت حالة عامل الجهاز الظاهري على وضع NOT READY. تحقق من حالة العامل في خصائص الجهاز الظاهري في مدخل Azure.

الأوامر المتاحة

يعرض هذا الجدول قائمة الأوامر المتوفرة للأجهزة الظاهرية التي تعمل بنظام Windows. يمكنك استخدام الأمر RunPowerShellScript لتشغيل أي برنامج نصي مخصص تريده. عند استخدام Azure CLI أو PowerShell لتشغيل أمر، يجب أن تكون القيمة التي توفرها للمعلمة --command-id أو المعلمة -CommandId إحدى القيم المدرجة التالية. عند تحديد قيمة ليست أمرا متوفرا، تتلقى هذا الخطأ:

The entity was not found in this Azure location

الأوامر المتوفرة

معرف الأمر Description مزيد من المعلومات
RunPowerShellScript تشغيل برنامج PowerShell نصي
DisableNLA تعطيل المصادقة على مستوى الشبكة. يجب إعادة تشغيل الجهاز الظاهري بعد اكتمال البرنامج النصي حتى يدخل التغيير حيز التنفيذ. لا يقوم البرنامج النصي نفسه بإعادة تشغيل الجهاز الظاهري. readme
DisableWindowsUpdate تعطيل التحديثات التلقائية من خلال Windows Update. readme
EnableAdminAccount التحقق مما إذا كان حساب المسؤول المحلي معطلا، وإذا كان الأمر كذلك فإنه يمكن ذلك. readme
EnableEMS تمكين خدمات إدارة الطوارئ (EMS) للسماح باتصال وحدة التحكم التسلسلية في سيناريوهات استكشاف الأخطاء وإصلاحها. readme
EnableRemotePS تمكين PowerShell البعيد. readme
EnableWindowsUpdate تمكين التحديثات التلقائية من خلال Windows Update. readme
IMDSCertCheck يتحقق من صحة IMDS ثم يحلل الشهادات المثبتة حاليا التي يعتمد عليها IMDS. إذا كان مفقودا، يظهر تفاصيل إضافية وخطوات التخفيف. readme
IPConfig يعرض معلومات مفصلة لعنوان IP وقناع الشبكة الفرعية والبوابة الافتراضية لكل محول مرتبط ب TCP/IP. للاستخدام، راجع تشغيل البرامج النصية readme
RDPSettings يتحقق من إعدادات السجل وإعدادات نهج المجال. يقترح إجراءات النهج إذا كان الجهاز جزءا من مجال أو يعدل الإعدادات إلى القيم الافتراضية. readme
ResetRDPCert يزيل شهادة SSL المرتبطة بمستمع RDP ويستعيد أمان وحدة استماع RDP إلى الوضع الافتراضي. استخدم هذا البرنامج النصي إذا لاحظت أية مشكلات في الشهادة. readme
SetRDPPort تعيين رقم المنفذ الافتراضي أو رقم المنفذ المحدد من قبل المستخدم لاتصالات سطح المكتب البعيد. تمكين قاعدة جدار الحماية للوصول الوارد إلى المنفذ. readme
WindowsActivationValidation يتحقق من حالة ترخيص Windows الحالية (تم التنشيط أم لا) ويتم إنشاء التنبيه إذا لم يتم تنشيط خاصية الجهاز. readme
WindowsGhostedNicValidationScript يقوم هذا السكربت بمسح سجل ويندوز بحثا عن محولات الشبكة على ناقلات PCI وVMBUS، ويقارنها مع محولات الشبكة النشطة حاليا، ويحدد بطاقات الشبكة المبللة. مفيد لحل مشاكل الشبكة أو تنظيف بطاقات الشبكة القديمة. readme
WindowsUpgradeAssessmentValidation تم تصميم هذا السكريبت لتقييم جاهزية جهاز ويندوز (العميل أو الخادم) لترقية نظام التشغيل في المكان، مع اعتبارات خاصة لأجهزة Azure الافتراضية. يقوم بتقييم إصدار نظام التشغيل، ومسارات الترقية المدعومة، ومساحة قرص النظام، وميزات أمان Azure مثل التشغيل الموثوق، والإقلاع الآمن، وvTPM. readme

تقييد الوصول إلى أمر التشغيل

يتطلب سرد أوامر التشغيل أو عرض تفاصيل الأمر الحصول على إذن ⁦Microsoft.Compute/locations/runCommands/read⁩على مستوى الاشتراك. يتمتع دور القارئ المضمن والمستويات الأعلى بهذا الإذن.

يتطلب Microsoft.Compute/virtualMachines/runCommand/action تشغيل أمر الإذن . ويكون هذا الإذن متاحًا لدور مساهم الجهاز الظاهري والمستويات الأعلى.

يمكنك استخدام أحد الأدوار المضمنة أو إنشاء دور مخصص لاستخدام تشغيل الأمر.

استخدام أوامر التشغيل

Note

  • لا يمكن أن تكون قيم المعلمات إلا من نوع السلسلة فقط والبرنامج النصي مسؤول عن تحويلها إلى أنواع أخرى إذا لزم الأمر.
  • اعتمادا على الطريقة المستخدمة للتنفيذ، قد تكون هناك حاجة إلى بعض الهروب. على سبيل المثال، إذا كنت تنفذ الأمر في جلسة عمل PowerShell، فسيحتاج المسار إلى ملف البرنامج النصي إلى الحصول على علامات اقتباس.
  • الأوامر المضمنة غير قابلة للتحرير.

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

قائمة الأوامر

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

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

تشغيل إخراج البرنامج النصي للأمر

استكشاف أخطاء أمر تشغيل الإجراء في Windows وإصلاحها

عند استكشاف أخطاء الأمر تشغيل الإجراء وإصلاحها لبيئات Windows، ارجع إلى ملف سجل RunCommandExtension الموجود عادة في الدليل التالي: C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log لمزيد من التفاصيل.

المشكلات المعروفة

  • قد يفشل تنفيذ Action Run Command Extension في بيئة Windows إذا كان الأمر يحتوي على أحرف محجوزة. على سبيل المثال:

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

    $paramm='abc&jj'
    Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath     C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}
    

    ^ استخدم الحرف للإلغاء في & الوسيطة، مثل$paramm='abc^&jj'

  • قد يفشل ملحق أمر التشغيل أيضا في التنفيذ إذا كان الأمر المطلوب تنفيذه يحتوي على "\n" في المسار، حيث سيتم التعامل معه كخط جديد. على سبيل المثال، C:\Windows\notepad.exe يحتوي على \n في مسار الملف. ضع في اعتبارك استبدال \n ب \N في المسار الخاص بك.

  • تأكد من عدم وجود أي إعداد مخصص في مفتاح HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun التسجيل (مفصل هنا). قد يتم تشغيل هذا أثناء مراحل تثبيت ملحق RunCommand أو تمكينه ويتسبب في حدوث خطأ مثل "لا يتم التعرف على XYZ كأمر داخلي أو خارجي أو برنامج قابل للتشغيل أو ملف دفعي".

إجراء تشغيل إزالة الأمر

إذا كنت بحاجة إلى إزالة أمر تشغيل الإجراء الخاص بك ملحق Windows، فراجع الخطوات التالية ل Azure PowerShell وCLI:

استبدل rgnameوvmname باسم مجموعة الموارد ذات الصلة واسم الجهاز الظاهري في أمثلة الإزالة التالية.

 Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'

Note

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

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

للتعرف على الطرق الأخرى لتشغيل البرامج النصية والأوامر عن بعد في الجهاز الظاهري، راجع تشغيل البرامج النصية في جهازك الظاهري الذي يعمل بنظام Windows.