Technical Anshu
Tutorials Blog
PowerShell إلى دليل EXE

تحويل برنامج PowerShell النصي إلى EXE الدليل الكامل باستخدام PS2EXE

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

By Technical AnshuWindows 10 / 116 minute read
شاهد الفيديو لترى تحويل البرنامج النصي وتشغيله على الشاشة، خطوة بخطوة

يمتلك كل مسؤول في Windows مجلدًا يحتوي على نصوص برمجية صغيرة رائعة لا يمكن لأي شخص آخر استخدامها. السيناريو جيد. العبوة هي المشكلة. يتم فتح ملف .ps1 في برنامج "المفكرة" عند النقر عليه نقرًا مزدوجًا، ويطلق تحذيرات السياسة عند تشغيله، ويبدو وكأنه فيروس لمستخدم غير تقني. يؤدي تحويله إلى EXE باستخدام وحدة PS2EXE المجانية إلى إصلاح العبوة في حوالي دقيقة. هذه الصفحة هي المهمة بأكملها بالترتيب: ما يفعله التحويل بالفعل، والتثبيت، والأمر، والخيارات المهمة، والاختبار الذي يبقيك صادقًا.

Windows PowerShell - converting a script
PS C:\Scripts> Install-Module -Name ps2exe PS C:\Scripts> Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe" PS C:\Scripts> .\DiskCleanup.exe
التحويل بالكامل في ثلاثة أسطر - قم بتثبيت وحدة PS2EXE المجانية مرة واحدة، وقم بالتحويل والتشغيل. إخراج الأمر الموضح هو مثال.
1

ما الذي يفعله التحويل فعليًا؟

البرنامج النصي PowerShell هو ملف نصي. فهو يحتاج إلى PowerShell لفتحه، وسياسة التنفيذ الصحيحة لتشغيله، ومستخدم لا يخاف من النافذة الزرقاء المليئة بالنص. يزيل ملف EXE المحول جميع العوائق الثلاثة: يقوم المستخدم بالنقر المزدوج على ملف واحد، تمامًا مثل أي برنامج آخر.

كن واضحًا بشأن ما تفعله الأداة أسفل الغطاء. PS2EXE، الوحدة المجانية التي يستخدمها هذا الدليل، تقوم بتغليف البرنامج النصي الخاص بك داخل برنامج .NET صغير. ينتقل نص البرنامج النصي داخل ملف EXE في شكل مشفر، وعندما يتم تشغيل ملف EXE، فإنه يقوم بتسليم هذا البرنامج النصي إلى محرك PowerShell المدمج في Windows. لا يتم تجميع أي شيء في كود الآلة، ولا يتم تحويل البرنامج النصي إلى سر - وتغطي صفحة لاحقة في هذه المجموعة هذا الحد بالكامل.

لا يزال هذا المجمع مفيدًا حقًا. إنه الفرق بين إرسال ملف نصي إلى زميل يحتوي على ستة تعليمات وإرسال زر واحد له يعمل فقط.

2

الخطوة 1 – اختبار PS1 حتى يصبح مملاً

لا تقم أبدًا بتحويل برنامج نصي لم يتم اختباره. يقوم ملف EXE بإخفاء وحدة التحكم وتدفق الأخطاء بطرق تجعل تصحيح الأخطاء بطيئًا، لذلك يجب العثور على كل خطأ بينما يظل البرنامج النصي .ps1 عاديًا.

  1. قم بتشغيل البرنامج النصي كمستخدم عادي وكمسؤول
  2. قم بتشغيله على جهاز ليس خاصًا بك، إذا استطعت - تختلف المسارات ومحركات الأقراص
  3. قم بإدخاله بشكل خاطئ مرة واحدة، عن قصد، وشاهد ما يفعله
  4. فقط عندما يتصرف بنفس الطريقة في كل مرة، قم بتحويله
3

الخطوة 2 – تثبيت وحدة PS2EXE مرة واحدة

يتم نشر PS2EXE في معرض PowerShell بواسطة مؤلفه، Markus Scholtes، وهو مجاني. يمكنك تثبيته مرة واحدة على جهاز الكمبيوتر الخاص بك؛ الأشخاص الذين يتلقون EXE لا يقومون بتثبيت أي شيء.

  1. افتح PowerShell وقم بتشغيل Install-Module -Name ps2exe
  2. في المرة الأولى، قد يطلب منك PowerShell الثقة في مستودع PSGallery - أجب بنعم إذا كنت قد بدأت التثبيت بنفسك
  3. إذا تم حظر عمليات تثبيت الوحدة، فاسمح لها بجلستك الخاصة مع Set-ExecutionPolicy -Scope CurrentUser RemoteSigned وافهم أنك تقوم بتغيير إعداد الأمان في حسابك الخاص فقط

هناك أيضًا واجهة أمامية رسومية، Win-PS2EXE، والتي تعرض كل خيار كمربعات اختيار وحقول. إنه ينتج نفس ملف EXE تمامًا مثل سطر الأوامر - استخدم ما تجده أكثر وضوحًا.

4

الخطوة 3 – تشغيل التحويل

يقوم الأمر الأساسي بتسمية نص الإدخال وملف الإخراج:

  1. Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe"
  2. الاسم المستعار الأقصر ps2exe يقبل نفس المعلمات
  3. قم بإضافة -noConsole إذا كان البرنامج النصي يعرض نافذة أو نموذجًا ولا تريد وجود نافذة وحدة تحكم سوداء خلفه
  4. أضف -requireAdmin إذا قام البرنامج النصي بتغيير إعدادات النظام، لذلك يطلب Windows الارتفاع عند التشغيل بدلاً من فشل البرنامج النصي في منتصف الطريق
  5. أضف -iconFile ".\tool.ico" بالإضافة إلى -title، و-product، و-company، و-version إذا كانت ستتم مشاركة الملف - فهذا يملأ علامة التبويب "تفاصيل" لخصائص الملف

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

5

الخطوة 4 – اختبار EXE مثل شخص غريب

يعد EXE المحول برنامجًا جديدًا فيما يتعلق بنظام Windows. اختبرها بالطريقة التي سيقابلها بها المستخدم الحقيقي:

  1. انسخه إلى مجلد مختلف وقم بتشغيله بالنقر المزدوج، وليس من نافذة PowerShell
  2. قم بتشغيله بدون حقوق المسؤول أولاً، حتى لو قمت بإنشائه للمهام الإدارية، لترى الفشل بأمانة
  3. راقب تفاعلات برنامج مكافحة الفيروسات وSmartScreen وقم بإصلاحها بشكل صحيح - هناك صفحة كاملة عن ذلك في هذه المجموعة
  4. احتفظ بالمصدر .ps1. EXE هو إخراج بناء فقط؛ يبدأ كل تعديل مستقبلي من البرنامج النصي
الحدان الصادقان لكل أداة تحويل برنامج نصي إلى EXE: يمكن إعادة قراءة المصدر الموجود داخل EXE بواسطة أي شخص يتم تحديده بشكل كافٍ، لذلك لا تخفي أبدًا كلمة مرور في برنامج نصي محول؛ وغالبًا ما يثير ملف EXE الجديد غير الموقع قلق برامج مكافحة الفيروسات حتى يكتسب سمعة طيبة أو يتم توقيعه. كلا الموضوعين لهما أدلة كاملة خاصة بهما في هذه المجموعة.

شاهد العملية الكاملة في الفيديو

شاهد التحويل الكامل في الفيديو - تثبيت الوحدة النمطية، وواجهة المستخدم الرسومية، ومسارات الأوامر، وتشغيل EXE النهائي.

Watch Full Video
الأسئلة المتداولة

هل يحتاج الكمبيوتر المستهدف إلى تثبيت PowerShell لتشغيل ملف EXE المحول؟

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

هل EXE المحول هو برنامج مترجم حقيقي؟

ليس بالمعنى الحاد C أو C. يقوم PS2EXE بتغليف نص البرنامج النصي المشفر داخل برنامج مضيف .NET صغير. عند تشغيل ملف EXE، يقوم المضيف بتغذية البرنامج النصي الخاص بك إلى محرك Windows PowerShell. السلوك مماثل لتشغيل .ps1 - العبوة هي التي تتغير.

هل يمكنني تحويل البرنامج النصي مجانًا، أم أن PS2EXE مدفوع؟

PS2EXE مجاني. إنها وحدة نمطية مجتمعية تم نشرها في معرض PowerShell بواسطة Markus Scholtes، وتم تثبيتها باستخدام Install-Module -Name ps2exe. توجد برامج حزم تجارية، ولكن بالنسبة لمهمة التحويل القياسية، فإن الوحدة المجانية هي الأداة المستخدمة في الفيديو وفي هذا الدليل.

يعتمد هذا الدليل على فيديو Anshu الفني من PowerShell إلى EXE - هل أنت عالق في أي خطوة؟ اسأل في تعليقات الفيديو وسوف تحصل على الرد هناك.