إذا كنت جديدًا على لغة البرمجة PowerShell وترغب في تعلم كيفية تشغيل سكريبت PowerShell، فقد وصلت إلى المدونة الصحيحة. ستكون هذه المدونة درسًا يغطي الطرق الشائعة لتشغيل السكربتات وبعض المشكلات التي قد تظهر.
المتطلبات
سيكون هذا المقال مشيًا تعليميًا لك حول كيفية تشغيل PowerShell على جهاز الكمبيوتر المحلي الخاص بك. إذا كنت ترغب في متابعة، يرجى التأكد من وجود المتطلبات التالية قبل بدء هذا المقال.
- A Windows 10 computer with Administrator privileges.
- نظام التشغيل Windows بإصدار PowerShell 5 أو أعلى. يمكنك أيضًا استخدام PowerShell v7. سيتم التركيز في هذا البرنامج التعليمي على PowerShell لنظام التشغيل Windows نظرًا لأنه مضمن في نظام التشغيل Windows.
- أي محرر نص
التعامل مع سياسة التنفيذ
إذا كانت هذه هي المرة الأولى التي تحاول فيها تنفيذ سكريبت PowerShell لنظام التشغيل Windows، فقد تواجه مشكلة شائعة. قد يُعيد PowerShell رسالة خطأ تشير إلى أن السكريبت “لا يمكن تحميله لأن تشغيل السكريبتات معطل على هذا النظام”.
PowerShell تعيد الرسالة الخطأ أعلاه عند محاولة تشغيل PowerShell مع تعيين سياسة تنفيذ إلى Restricted، Remote Signed أو All Signed.
Restricted
السياسة المحددة افتراضيًا لأجهزة الكمبيوتر العميل في نظام التشغيل Windows. إذا كنت تستخدم PowerShell للمرة الأولى، فإن سياسة الافتراضي الخاصة بك ربما تكون مضبوطة لتقييد جميع السكربتات.
لا يزال بإمكانك تنفيذ أوامر فردية في الطرفية، ولكن ليس ملف سكربت. يتضمن القيد أي ملف ينتهي بامتداد .ps1xml
، .psm1
أو .ps1
.
Unrestricted
السياسة غير المقيدة تسمح لك بتشغيل أي سكربت، ولكنها تحذرك قبل التنفيذ إذا كان السكربت تم تنزيله من الإنترنت. وعادةً ما تكون هذه السياسة هي الافتراضية لأي أجهزة غير ويندوز.
Remote Signed
تسمح سياسة التوقيع البعيد بتشغيل أي سكربت إما (أ) موقع رقميًا أو (ب) أي سكربت كتبته على جهاز الكمبيوتر المحلي سواء كان لديه توقيع أم لا.
إذا كان السكربت تم تنزيله من الإنترنت وليس موقعًا، فيجب عليك فتح الملف. يمكنك القيام بذلك عن طريق النقر بزر الماوس الأيمن فوق الملف واختيار الخصائص. أو يمكنك استخدام cmdlet PowerShell Unblock-File
لذلك الملف السكربتي الخاص.
استخدام سياسة التوقيع البعيد سيكون خيارًا مثاليًا عند تشغيل سكربت تم تنزيله من الإنترنت.
All Signed
يتطلب التوقيع الكلي توقيع جميع السكربتات رقميًا من قبل ناشر موثوق به. وهذا يشمل السكربتات التي تم تنزيلها من الإنترنت والتي تم كتابتها محليًا على جهاز الكمبيوتر الخاص بك.
تغيير سياسة تنفيذ PowerShell
لتغيير سياسة التنفيذ:
- افتح Windows PowerShell بصلاحيات المسؤول Run as Administrator للتأكد من أن لديك أعلى صلاحيات لإجراء تغييرات في السياسة.

2. عند الفتح، قم بتشغيل الأمر التالي في PowerShell لضبط سياسة تنفيذ جهاز الكمبيوتر الخاص بك. يمكن أن تكون سياسة التنفيذ، كما تم شرحه أعلاه، واحدة من ثلاثة أنواع مختلفة. يستخدم هذا البرنامج التعليمي سياسة تنفيذ مفيدة وآمنة لا تزال تعرف باسم RemoteSigned.
نظرًا لأن هذا البرنامج التعليمي يفترض أنك قمت بتنزيل ملف النص GetServices.ps1 من الإنترنت، قم بضبط سياسة التنفيذ على RemoteSigned.
تفرض سياسة التنفيذ RemoteSigned عليك توقيع النص بشكل تشفيري لكل سكريبت PowerShell يتم تنزيله من الإنترنت قبل أن يتم تشغيله على نظامك.
3. يجب أن تظهر إخراجًا يطلب تأكيد الإجراء. أدخل Y واضغط على enter لتأكيد تغيير السياسة.
في هذه النقطة، اتبع الخطوات التالية لاستكشاف طرق مختلفة لتشغيل سكريبت PowerShell على جهاز الكمبيوتر الخاص بك.
كيفية تشغيل سكريبت PowerShell
لعرض تشغيل نص PowerShell، تحتاج فعلاً إلى ملف نصي لتشغيله! إذا لم يكن لديك واحد متاحًا، قم بتنزيل هذا الملف المضغوط واستخرج ملف PS1 من الداخل. ستجد ملف نصي بسيط يسمى GetServices.ps1.
يجب أن ينتهي كل نص PowerShell بامتداد
.ps1
.
استخدام وحدة التحكم
بمجرد أن يكون لديك نص جاهز، هناك عدة طرق مختلفة يمكنك من خلالها تنفيذ ملف نص PowerShell. واحدة من أكثر الطرق شيوعًا هي من خلال وحدة التحكم PowerShell.
للقيام بذلك:
- افتح وحدة التحكم PowerShell كما هو موضح أعلاه.
2. انتقل إلى موقع النظام لحفظ النص الذي تريد تشغيله باستخدام الأمر Set-Location
PowerShell أو الاسم المستعار cd
. يتواجد النص في دليل C:\Temp في هذا البرنامج التعليمي.
3. قم بتشغيل النص باستخدام علامة النقطة (.
). PowerShell هو وحدة تحكم تبحث أيضًا عن أسماء الأوامر. للتمييز بين أمر PowerShell ونص، يجب عليك استخدام نقطة قبل النص. تمثل هذه النقطة الدليل الحالي.
كيفية تشغيل نص PowerShell من سطر الأوامر عبر موقع PowerShell
إذا لم تتمكن أو تفضل عدم تشغيل النصوص عبر وحدة التحكم PowerShell، يمكنك أيضًا فعل ذلك عبر سطر الأوامر الجيد القديم (موجه الأوامر).
لتشغيل النصوص عبر سطر الأوامر، يجب عليك أولاً تشغيل برنامج PowerShell (powershell.exe)، مع موقع PowerShell الموجود في C:\Program Files\WindowsPowerShell\powershell.exe
ثم تمرير مسار النص كمعامل له.
يمكنك تشغيل النصوص مع المعاملات في أي سياق ببساطة عن طريق تحديد المعاملات أثناء تشغيل برنامج PowerShell كما في
powershell.exe -Parameter 'Foo' -Parameter2 'Bar'
.
عندما تفتح cmd.exe، يمكنك تنفيذ نص PowerShell كما يلي. هذا المثال يقوم بتشغيل المحرك وتمرير مسار النص C:\Temp\GetServices.ps1.
لاحظ أدناه أن المثال يستخدم مسار الموقع لتشغيل النص. يجب عليك فعل ذلك إذا لم يكن المجلد موجودًا في مسارك في أي مكان.
يستخدم موقع PowerShell لـ PowerShell 7 ملفًا قابلًا للتنفيذ مختلفًا يسمى pwsh.exe والموجود عادة في C:\Program Files\PowerShell\7\pwsh.exe.
أدناه فيديو مفيد على YouTube يغطي تنفيذ نص عبر ملف دفعي يقوم بتنفيذ cmd.exe.
استخدام PowerShell ISE
إذا قمت بإنشاء نصوصك الخاصة أو تحرير نصوص الآخرين، فمن المحتمل أنك ستستخدم محرر نصوص مثل PowerShell ISE أو ربما Visual Studio (VS) Code. نظرًا لأن ISE متضمن في نظام التشغيل Windows، دعنا نركز على ذلك في هذا البرنامج التعليمي.
لاستدعاء نص برمجي عبر بيئة التطوير المتكاملة:
- انتقل إلى قائمة “ابدأ”، ابحث عن PowerShell ISE وافتحها.

2. انقر على ملف → فتح وابحث عن النص البرمجي الخاص بك.

3. مع النص البرمجي مفتوح، انقر على زر التشغيل الأخضر لتنفيذ النص البرمجي. سيقوم هذا الزر بدعوة النص البرمجي في نافذة PowerShell المدمجة في الأسفل.

ناتج النص البرمجي التجريبي
A PowerShell script can sometimes return output. This happens when the script you’re executing is built to return objects which is a fundamental component of PowerShell.
إذا قمت بتشغيل النص البرمجي العيني GetServices.ps1، سترى التالي. يقوم هذا النص بتشغيل أمر Get-Service
الذي يعيد جميع الخدمات المثبتة على جهاز الكمبيوتر الخاص بك الذي يعمل بنظام التشغيل Windows.
تشغيل نص برمجي PowerShell من داخل نص برمجي آخر
لنفترض أن لديك نصين برمجيين وترغب في استدعاء أحدهما من الآخر. ربما لديك نص برمجي يسمى GetUser.ps1 وآخر يسمى ResetPassword.ps1. داخل نص GetUser.ps1، ترغب في تنفيذ نص ResetPassword.ps1 لإعادة تعيين كلمة مرور مستخدم.
في داخل النص الذي يستدعي (GetUser.ps1)، يمكنك إضافة سطر لتنفيذ النص الآخر تمامًا كما تقوم بدعوة النص من سطر الأوامر.
يمكنك أن ترى أدناه أن لديك خيارات عديدة. يفضل عادة تشغيل النص الآخر داخل نفس الجلسة أو النطاق لتبسيط الأمور ما لم يكن لديك سبب محدد لتشغيل النص في جلسة PowerShell أخرى.