PowerShell أداة قويّة لأتمتة المهامّ وإدارة الأنظمة، خصوصًا في بيئات Windows. المفتاح لفهمه هو استيعاب الـ cmdlets — لبنته الأساسية. هذه الصفحة هي المرجع التأسيسي لمسار PowerShell.
ما هو PowerShell؟
PowerShell هو صدفة سطر أوامر (Shell) ولغة سكربتات في آنٍ واحد، مصمّمة للأتمتة وإدارة الأنظمة. يتميّز بأنه موجّه للكائنات (Object-oriented): تمرّ بين أوامره كائنات كاملة لا نصوص فحسب — وهي فكرة سنعود إليها لأنها ما يجعله مختلفًا عن الصدفات النصّية.
ℹ️ توجد نسختان: PowerShell 7+ حديثة ومتعدّدة المنصّات (Windows وLinux وmacOS)، وWindows PowerShell 5.1 الأقدم المدمجة في Windows. المفاهيم هنا تنطبق على الاثنتين.
ما هو الـ cmdlet؟
الـ cmdlet (يُنطق «كوماند-لِت») هو أمر خفيف مدمج في PowerShell يؤدّي مهمّة واحدة محدّدة. ما يميّزه هو نظام تسمية ثابت ومتوقّع:
فعل-اسم (Verb-Noun)
الفعل يصف الإجراء، والاسم يصف الهدف. أمثلة:
Get-Process # اجلب العمليات الجارية
Get-ChildItem # اسرد محتويات مجلّد
Stop-Service # أوقف خدمة
Set-Location # غيّر المجلّد الحالي
هذا الاتّساق ميزة كبرى: بمجرّد أن تعرف الأفعال الشائعة (Get, Set, New, Remove, Start, Stop) تستطيع تخمين اسم الأمر الذي تحتاجه.
بنية الأمر ومعاملاته
يأخذ الـ cmdlet معاملات (Parameters) تُمرَّر باسمها بعد شرطة:
Get-ChildItem -Path "C:\Users" -Recurse
هنا -Path يحدّد المجلّد، و-Recurse يطلب السرد المتداخل. تسمية المعاملات صراحةً تجعل الأوامر مقروءة وواضحة.
اكتشاف الأوامر
لست مضطرًّا لحفظ كل شيء؛ يوفّر PowerShell أدوات اكتشاف مدمجة:
Get-Command *service* # جد كل الأوامر المتعلّقة بالخدمات
Get-Help Get-Process # اعرض توثيق أمر واستخداماته
Get-Process | Get-Member # استكشف خصائص الكائنات الناتجة
Get-Help وGet-Command هما بوّابتك لاستكشاف أي أمر جديد دون مغادرة الطرفية.
PowerShell مقابل الصدفات النصّية
في صدفات مثل Bash، تمرّر الأوامر نصًّا بين بعضها، فتضطرّ غالبًا لتقطيعه وتحليله. في PowerShell تمرّ كائنات بخصائصها، فتتعامل مع البيانات مباشرةً دون تحليل نصّي هشّ. إن كانت خلفيّتك في Linux، فقارن ذلك بما تعرفه من الصدفة والطرفية وأساسيات كتابة سكربتات Bash.
الخطوات التالية
بعد الـ cmdlets، ستفهم الأنبوب (Pipeline) الذي يمرّر الكائنات بين الأوامر، ثم الفرق بين الكائنات والنصوص، فكتابة أوّل سكربت. (تسبق هذه الصفحةَ مقدّمةٌ تعريفية «ما هو PowerShell» ضمن ترتيب المسار.)