دروس بوويرشيل للمبتدئين
⚡ ملخص ذكي
تُعدّ برمجة PowerShell محرك أتمتة كائني التوجه مبني على إطار عمل .NET. وهي تجمع بين أوامر cmdlets والبرامج النصية ولغة برمجة نصية لمساعدة مسؤولي تكنولوجيا المعلومات على أتمتة العمليات. Windowsإدارة الخدمات، وربط الأجهزة البعيدة من سطر أوامر واحد.

ما هو PowerShell؟
Windows بوويرشيل هو محرك أتمتة كائني التوجه ولغة برمجة نصية. وهو مصمم لمتخصصي تكنولوجيا المعلومات ومديري الأنظمة الذين يحتاجون إلى التحكم في إدارة وأتمتة Windows وتطبيقات أخرى. يوسع PowerShell المفاهيم التي تم تعلمها في Windows موجه الأوامر و Windows مضيف البرامج النصية مع كائنات جديدة، وأوامر cmdlets، وخط أنابيب قوي.
يجمع هذا البرنامج بين مرونة البرمجة النصية، وسرعة سطر الأوامر، وعمق أدوات إدارة واجهة المستخدم الرسومية. بفضله، يستطيع المسؤولون حل المشكلات بكفاءة وتوفير ساعات من العمل اليدوي. يشرح هذا الدليل الأساسيات اللازمة لتعلم PowerShell من الصفر.
لماذا نستخدم PowerShell؟
أهم الأسباب لاستخدام PowerShell هي:
- يوفر تجربة سطر أوامر متكاملة لنظام التشغيل.
- يوفر وصولاً كاملاً إلى كل نوع في إطار عمل .NET.
- موثوق به من قبل مديري الأنظمة في مختلف المؤسسات.
- يتيح لك هذا البرنامج التحكم في مكونات الخادم ومحطة العمل ببضعة أسطر.
- موجهة لمسؤولي النظام مع بنية نحوية واضحة للفعل والاسم.
- أكثر أمانًا من الجري فبسكريبت أو لغات البرمجة النصية القديمة الأخرى.
تاريخ بوويرشيل
صدرت النسخة الأولى من PowerShell 1.0 في عام 2006. وتصل PowerShell الآن إلى الإصدار 7.2 وما بعده. ومع إصدار النسخ الجديدة، نمت إمكانياتها وبيئات استضافتها بشكل ملحوظ.
تاريخ إصدارات PowerShell:
- بوويرشيل 1.0 — دعم الإدارة المحلية لـ Windows خادم 2003.
- بوويرشيل 2.0 — متكامل مع Windows و7 Windows تمت إضافة ميزات الاتصال عن بعد، والمعاملات، والوظائف الخلفية، والأحداث، وتصحيح الأخطاء إلى نظام التشغيل Windows Server 2008 R2.
- بوويرشيل 3.0 — تم شحنها مع Windows و8 Windows نظام التشغيل Windows Server 2012 كجزء من Windows إطار الإدارة. تمت إضافة مهام مجدولة، واتصال الجلسات، وتحميل الوحدات النمطية تلقائيًا.
- بوويرشيل 4.0 — تم شحنها مع Windows و8.1 Windows تم إضافة تكوين الحالة المطلوبة، وتحسين تصحيح الأخطاء، وتشخيص الشبكة إلى نظام التشغيل Windows Server 2012 R2.
- بوويرشيل 5.0 — جزء من Windows إطار الإدارة 5. تمت إضافة تصحيح الأخطاء عن بعد، وتعريفات الفئات، وتعدادات .NET.
- بوويرشيل 7.2 — مبني على .NET 6.0. يضيف عوامل تشغيل جديدة، وعروض أخطاء ديناميكية، وإشعارات تلقائية بالإصدار.
ميزات PowerShell
- الاتصال عن بعد باستخدام PowerShell: استدعاء البرامج النصية وأوامر cmdlets على جهاز بعيد.
- وظائف في الخلفية: تشغيل البرامج النصية أو خطوط الأنابيب بشكل غير متزامن على الجهاز المحلي أو على العديد من الأجهزة البعيدة.
- المعاملات: دع أوامر cmdlets والمطورين يقومون بعمليات مجمعة يمكن تنفيذها أو التراجع عنها معًا.
- بطولة: استمع إلى أحداث الإدارة والنظام، وقم بتوجيهها، وتصرف بناءً عليها.
- نقل ملفات الشبكة: دعم أصلي لنقل الملفات ذي الأولوية وغير المتزامن والمقيد بين الأجهزة من خلال خدمة النقل الذكي في الخلفية (BITS).
كيفية تشغيل PowerShell
يتم تثبيت PowerShell مسبقًا على كل إصدار حديث من Windowsقم بتشغيله على النحو التالي.
الخطوة 1) ابحث عن PowerShell في Windowsثم حدده وانقر عليه.
الخطوة 2) تفتح نافذة PowerShell.
أمر Cmdlet مقابل الأمر
A أمر cmdlet (يُنطق "كوماند-ليت") هو أمر خفيف الوزن يُستخدم في بيئة PowerShell. يستدعي PowerShell أوامر cmdlets من موجه الأوامر، ويمكنك إنشاء أوامرك الخاصة باستخدام واجهات برمجة تطبيقات PowerShell. تختلف أوامر cmdlets عن أوامر shell التقليدية في النقاط التالية:
- أوامر الأوامر هي الإطار. NET كائنات الفئة؛ لا يمكن تنفيذها كملفات تنفيذية مستقلة.
- يمكن كتابة أوامر Cmdlets في عدد قليل يصل إلى اثني عشر سطرًا من التعليمات البرمجية.
- تتم معالجة التحليل وتنسيق الإخراج وعرض الأخطاء بواسطة وقت التشغيل، وليس بواسطة الأمر cmdlet نفسه.
- تعمل أوامر Cmdlets مع الكائنات، لذا يمكن لكل من تدفقات النصوص والكائنات أن تتدفق عبر خطوط الأنابيب.
- تعتمد أوامر Cmdlets على السجلات وتعالج كائنًا واحدًا في كل مرة.
تُقدَّم معظم وظائف PowerShell عبر أوامر cmdlets، التي تستخدم دائمًا نمط تسمية يتكون من فعل واسم (دائمًا بصيغة المفرد). تُعيد أوامر cmdlets كائنات، وليس نصوصًا. سيناريو — يختلف عن cmdlet — هو سلسلة من الأوامر المخزنة في ملف نصي مع .ps1 تمديد.
تشمل الأفعال الشائعة التي ستستخدمها لتعلم PowerShell ما يلي:
- احصل علي — استرجع شيئًا ما.
- بالبداية — قم بتشغيل شيء ما.
- خارج — أخرج شيئًا ما.
- قلة النوم — أوقف شيئًا ما قيد التشغيل.
- بكج — عرّف شيئاً ما.
- جديد — ابتكر شيئاً.
أوامر PowerShell المهمة
احصل على مساعدة: عرض المساعدة لأوامر ومواضيع PowerShell.
مثال: عرض المساعدة لـ Format-Table أمر.
Get-Help Format-Table
الحصول على الأمر: الحصول على معلومات حول أي شيء يمكن استدعاؤه.
مثال: إنشاء قائمة بالأوامر والوظائف المثبتة على الجهاز.
Get-Command
احصل على خدمة: يعثر على جميع الخدمات الموجودة على الجهاز.
مثال: احصل على كل خدمة يبدأ اسمها بـ "vm".
Get-Service "vm*"
الحصول على عضو: أظهر ما يمكن فعله باستخدام كائن ما.
مثال: سرد أعضاء خدمات الجهاز الظاهري التي تم إرجاعها بواسطة Get-Service.
Get-Service "vm*" | Get-Member
أوامر أخرى مفيدة:
Get-Module— عرض حزم الأوامر المثبتة.Get-Content— قراءة ملف ومعالجة محتوياته.Get-*wildcard — سرد كل cmdlet الذي يبدأ بـ "Get-".
مثال: إنشاء مجلد.
New-Item -Path 'X:\Guru99' -ItemType Directory
الإخراج:
أنواع بيانات PowerShell
يدعم PowerShell أنواع البيانات القياسية في .NET، لذا يمكنك تخزين أي قيمة بشكل منظم في متغير.
المتغيرات الخاصة
يُتيح PowerShell عددًا من المتغيرات الخاصة المدمجة. فيما يلي قائمة بأكثرها فائدة.
| المتغير الخاص | الوصف |
|---|---|
| خطأ $ | مصفوفة من كائنات الأخطاء التي تمثل أحدث الأخطاء. |
| $المضيف | يعرض اسم تطبيق الاستضافة الحالي. |
| الملف الشخصي $ | يخزن المسار الكامل لملف تعريف المستخدم الخاص بالصدفة الافتراضية. |
| معرف المنتج $ | يخزن مُعرّف العملية. |
| $PSUICulture | يحمل اسم ثقافة واجهة المستخدم الحالية. |
| $فارغة | يحتوي على قيمة فارغة أو معدومة. |
| $خطأ | يحتوي على القيمة المنطقية FALSE. |
| $صحيح | يحتوي على القيمة المنطقية TRUE. |
البرامج النصية PowerShell
يتم تخزين نصوص PowerShell في .ps1 الملفات. افتراضيًا، لا يمكنك تشغيل برنامج نصي بالنقر المزدوج عليه - هذه الحماية تحمي النظام من التلف العرضي. لتشغيل برنامج نصي، انقر بزر الماوس الأيمن عليه واختر "تشغيل باستخدام PowerShell".
تتحكم سياسة التنفيذ في البرامج النصية المسموح بتشغيلها. يمكنك عرض السياسة الحالية باستخدام Get-ExecutionPolicyتشمل القيم المحتملة ما يلي:
- محدد — لا يُسمح باستخدام البرامج النصية. هذا هو الوضع الافتراضي.
- AllSigned — لا يتم تشغيل سوى البرامج النصية الموقعة من قبل مطور موثوق به، ويتطلب كل منها تأكيدًا.
- RemoteSigned — تشغيل البرامج النصية الخاصة بك، بالإضافة إلى البرامج النصية الموقعة من مصادر موثوقة.
- غير مقيد — يمكن تشغيل أي نص برمجي (استخدمه باعتدال).
خطوات تغيير سياسة التنفيذ:
الخطوة 1) افتح موجه أوامر PowerShell بصلاحيات المسؤول عن طريق النقر بزر الماوس الأيمن على PowerShell واختيار تشغيل كمسؤول.
الخطوة 2) قم بتشغيل الأوامر أدناه.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- أدخل
Yعند ظهور نافذة التأكيد. Get-ExecutionPolicy
أول برنامج PowerShell النصي
افتح برنامج المفكرة واكتب:
Write-Host "Hello, Guru99!"
احفظ الملف بـ .ps1 امتداد — على سبيل المثال، FirstScript.ps1.
في PowerShell، قم بتشغيل البرنامج النصي باستخدام:
& "X:\FirstScript.ps1"
ما هو بوويرشيل ISE؟
استخدم Windows بيئة البرمجة النصية المتكاملة لـ PowerShell (ISE) يُعدّ ISE المحرر الافتراضي لـ PowerShell. في ISE، يمكنك تشغيل الأوامر وكتابة الاختبارات وتصحيح البرامج النصية في بيئة رسومية تعتمد على النوافذ. يدعم ISE التحرير متعدد الأسطر، وتلوين بناء الجملة، والإكمال التلقائي، والتنفيذ الانتقائي، وغير ذلك الكثير.
يوفر PowerShell ISE أيضًا لوحة تحكم لتنفيذ الأوامر مباشرةً، بينما تعرض اللوحات الجانبية مصدر البرامج النصية وأي أدوات متصلة بـ ISE. يمكنك فتح نوافذ برامج نصية متعددة في وقت واحد، وهو أمر مفيد عند تصحيح البرامج النصية التي تعتمد على وظائف مُعرَّفة في برامج نصية أو وحدات أخرى.
أعد إنشاء النص البرمجي السابق في بيئة ISE:
- ألصق الكود في المحرر.
- احفظ البرنامج النصي.
- اضغط على F5 لتشغيله.
- راقب المخرجات في لوحة التحكم.
العينة الأولى: يعرض النص البرمجي التالي مجاناً الذاكرة الظاهرية على الجهاز.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
بوويرشيل Concepts
تشكل المفاهيم التالية مفردات العمل اليومي باستخدام PowerShell.
| مفهوم وتصميم المنتج | الوصف |
|---|---|
| كمدليتس | أوامر مدمجة مكتوبة بلغات .NET مثل VB أو C#. يقوم المطورون بتوسيع المجموعة عن طريق تحميل أو كتابة وحدات PowerShell الإضافية. |
| وظائف | أوامر مكتوبة بلغة PowerShell نفسها، دون الحاجة إلى بيئة تطوير متكاملة مثل البصرية ستوديو. |
| مخطوطات | ملفات نصية على القرص مع .ps1 تمديد. |
| الاستخدامات | موجود Windows البرامج التي يتم استدعاؤها من سطر الأوامر. |
| ماذا إذا | يخبر الأمر cmdlet بعدم التنفيذ، ولكن بوصف ما سيحدث إذا تم تنفيذه. |
| أكد | يُوجّه الأمر cmdlet إلى طلب الإذن قبل التنفيذ. |
| مطنب | يوفر مستوى أعلى من التفاصيل التشغيلية. |
| تصحيح | يُوجّه الأمر cmdlet لإصدار معلومات تصحيح الأخطاء. |
| خطأ | يُحدد هذا الخيار ما يفعله الأمر cmdlet عند حدوث خطأ. القيم المسموح بها: continue، stop، silentlycontinue، inquire. |
| ErrorVariable | يُسمّي المتغير الذي يحتوي على معلومات الخطأ. |
| متغير | يُخبر الأمر cmdlet بتخزين مخرجاته في متغير محدد. |
| خارجBuffer | يحتفظ بعدد محدد من العناصر قبل إرسالها عبر مسار المعالجة. |
مزايا استخدام برامج PowerShell النصية
- تتميز برامج PowerShell النصية بالقوة والإيجاز - يمكنك تحقيق الكثير في بضعة أسطر فقط.
- يتم تعريف المتغيرات باستخدام
$<variable>بناء الجملة. - يمكن للمتغيرات أن تحتوي على مخرجات الأوامر، والكائنات، والقيم الأولية.
- لا يلزم تحديد نوع المتغير بشكل صريح.
مقارنة بين PowerShell و Command Prompt
| بوويرشيل | موجه الأوامر |
|---|---|
| متكامل بشكل عميق مع Windowsيوفر واجهة سطر أوامر تفاعلية ولغة برمجة نصية كاملة. | واجهة سطر الأوامر الافتراضية التي يوفرها Microsoftتطبيق Win32 بسيط يتواصل مع كائنات Win32 أخرى. |
| يستخدم أوامر cmdlets التي يمكن استدعاؤها بشكل تفاعلي أو من خلال نصوص التشغيل الآلي. | لا توجد أوامر cmdlets. |
| يتعامل مع المخرجات ككائنات بحيث يمكن أن تتدفق إلى cmdlet آخر عبر خط الأنابيب. | الناتج عبارة عن سلسلة نصية بسيطة، وليس كائنات. |
| متطورة من حيث الميزات والقدرات والبنية الداخلية. | واجهة سطر أوامر أساسية، مناسبة لمهام الدفعات القديمة. |
تطبيقات PowerShell
أصبح PowerShell الخيار الأمثل لمديري تقنية المعلومات لأنه يقلل الجهد المبذول بشكل كبير في شبكات الشركات الكبيرة. تخيل إدارة أكثر من أربعمائة خادم وتطبيق حل أمني جديد يعتمد على خدمة محددة تعمل على كل خادم.
يُعدّ تسجيل الدخول إلى كل خادم يدويًا عمليةً بطيئةً وعرضةً للأخطاء. بينما يُمكن لبرنامج PowerShell واحد مسح جميع الخوادم في دقائق، والإبلاغ عن الخوادم التي تُشغّل الخدمة بالفعل، بل وتفعيلها على الخوادم الأخرى. يلتقط البرنامج النصي الغرض مرةً واحدةً ويُطبّقه بشكلٍ موثوقٍ على جميع الخوادم.
















