أكواد PowerShell: شرح وأمثلة عملية للمبتدئين

ما هو كود PowerShell؟

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

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

عند كتابة كود PowerShell، يجب الانتباه إلى سياسات التنفيذ التي تفرضها مايكروسوفت لضمان أمان النظام. هذه السياسات تمنع تشغيل أي سكريبت لم يتم التحقق منه، ويمكن تعديلها عبر الأمر Set-ExecutionPolicy. تذكر أن PowerShell ليس مجرد أداة بل هو لغة متكاملة تدمج بين سهولة الاستخدام وقوة برمجة .NET، مما يجعله الخيار الأمثل للمبتدئين والمحترفين على حد سواء.

الأساسيات: الأوامر والـ Cmdlets

الـ cmdlets هي أوامر صغيرة ذات وظيفة محددة، وتتبنى صيغة فعل-اسم. على سبيل المثال، الأمر Get-Service يقوم بإرجاع حالة الخدمات على النظام. من أهم الأوامر التي يجب أن يعرفها كل مبتدئ هو Get-Help الذي يوفر معلومات تفصيلية عن أي أمر آخر. أيضاً، Get-Process يعرض العمليات النشطة حالياً، ويمنحك قدرة على إنهائها إذا لزم الأمر.

أكواد PowerShell: شرح وأمثلة عملية للمبتدئين - 1

التعامل مع الملفات والمجلدات يتم عبر أوامر مثل Set-Location للتنقل و Get-ChildItem لسرد الملفات. المبتدئون في PowerShell سيجدون أن استخدام هذه الأوامر بديهي بعد القليل من الممارسة. المثال التالي يوضح كيفية استخدام الأمر Get-Service لتصفية الخدمات المتوقفة فقط:

  • استخدم Get-Service | Where-Object { $_.Status -eq 'Stopped' }
  • استخدم Get-Process -Name notepad | Stop-Process لإنهاء عملية معينة
  • استخدم Get-EventLog -LogName System -Newest 10 لاستعراض آخر 10 أحداث من سجل النظام

من الجيد دائماً البحث عن قوائم بالأوامر الأساسية كمرجع سريع. مثلاً، يمكن الإشارة إلى مقالة IONOS عن أفضل 40 أمراً، والتي توفر قاعدة صلبة للمبتدئين. تذكر أن أي سكريبت PowerShell تُكتب داخل ملف ذي امتداد .ps1، ولا تتطلب أي تعقيدات في التثبيت.

الأنابيب والمتغيرات في كود PowerShell

الأنابيب (Pipelines) هي العمود الفقري لـ PowerShell. تسمح لك بتمرير مخرجات أمر كمدخلات لأمر آخر عبر الرمز |. هذا يتناقض مع معظم واجهات سطر الأوامر التي تتعامل مع نصوص فقط، هنا يتم تمرير كائنات حقيقية. على سبيل المثال، Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 سيعرض أعلى خمس عمليات من حيث استهلاك المعالج. هذا يبسط كتابة كود PowerShell المعقدة ويجعلها قابلة للقراءة.

المتغيرات في PowerShell تبدأ دائماً بالرمز $. يمكنك تعيين أي بيانات لمتغير، سواء كانت نصاً أو رقماً أو كائناً كاملاً. مثلاً، العبارة $ServiceList = Get-Service تخزن كل الخدمات في كائن متغير يمكن استخدامه لاحقاً. إدارة المتغيرات تعطيك القدرة على بناء منطق معقد دون الحاجة لكتابة كود طويل. ميزة أخرى هي أن المتغيرات تحتفظ بنوع البيانات تلقائياً، مما يقلل أخطاء البرمجة الشائعة.

أكواد PowerShell: شرح وأمثلة عملية للمبتدئين - 2

لنأخذ مثالاً عملياً: تريد الحصول على جميع حسابات Active Directory التي تم إنشاؤها خلال الأيام السبعة الماضية. الكود التالي يوضح ذلك:

$Fecha = (Get-Date).AddDays(-7)
Get-ADUser -Filter {whenCreated -ge $Fecha} -Properties Name,Enabled,whenCreated

هذا الكود يستخدم المتغير $Fecha لتخزين تاريخ قبل سبعة أيام، ثم يستخدم أمر Get-ADUser مع فلاتر لاستعراض الحسابات الجديدة. هذا مثال حي على كيف يمكن لكود PowerShell أتمتة مهام إدارة الشبكات ببساطة. يمكنك قراءة المزيد من الأمثلة على صفحة مايكروسوفت لأوامر Active Directory.

الحلقات والجمل الشرطية

مثل أي لغة برمجة، تدعم PowerShell الحلقات التكرارية والجمل الشرطية. الحلقات مثل for و foreach تسمح بتنفيذ كود متكرر. على سبيل المثال، إذا أردت معالجة كل ملف في مجلد، يمكنك كتابة foreach ($File in Get-ChildItem) { ... }. هذه البنية تجعل كود PowerShell الخاص بك موجزاً وفعالاً. الجمل الشرطية مثل if و elseif و else تستخدم لاتخاذ قرارات بناءً على شروط محددة.

أكواد PowerShell: شرح وأمثلة عملية للمبتدئين - 3

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

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

الهيكلالاستخداممثال سريع
if/elseالتنفيذ الشرطي بناءً على شرطif ($Process.Count -gt 10) { ... }
foreachالتكرار على كل عنصر في مجموعةforeach ($Svc in $Services) { $Svc.Status }
switchاختيار من خيارات متعددةswitch ($Color) { 'Red' { ... } }

تذكر أن كتابة كود PowerShell بجمل شرطية وحلقات يجعل سكريبتك قابلاً لإعادة الاستخدام وأكثر قوة. لا تتردد في اختبار هذه الهياكل في بيئة تطوير آمنة أولاً.

إدارة الجلسات البعيدة والأمان

ميزة إدارة الجلسات البعيدة تجعل PowerShell أداة متميزة للشركات. يمكنك تشغيل أوامر على أجهزة أخرى عبر الشبكة باستخدام Enter-PSSession أو Invoke-Command. هذا يسمح لك بإدارة خوادم متعددة من نقطة تحكم واحدة. في نصوص كود PowerShell الكبيرة، تستخدم هذه الميزة لأتمتة التحديثات والصيانة على نطاق واسع. التوصية هي استخدام اتصال HTTPS مع الشهادات لضمان الأمان.

أكواد PowerShell: شرح وأمثلة عملية للمبتدئين - 4

الأمان في PowerShell يتم عبر سياسات التنفيذ. هناك خمسة مستويات: Restricted و RemoteSigned و AllSigned و Unrestricted و Bypass. الإعداد الافتراضي في ويندوز 10 هو Restricted، مما يعني أنه لا يمكن تشغيل سكريبتات إلا إذا تم تحميلها من منطقة آمنة. إذا كنت مبتدئاً، ابدأ بسياسة RemoteSigned التي تسمح بالسكريبتات المحلية وتطلب توقيعاً للسكريبتات البعيدة. هذا يمنع تنفيذ كود خبيث عن طريق الخطأ.

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

أمثلة عملية لكود PowerShell

لنطبق بعض الأمثلة العملية. مثال بسيط: إنشاء مجلد جديد ونسخ الملفات. استخدم New-Item -ItemType Directory -Path C:\NewFolder لإنشاء المجلد، ثم Copy-Item C:\Source\*.txt -Destination C:\NewFolder لنسخ ملفات نصية. مثال آخر يتعلق بإدارة الخدمات: Stop-Service -Name Spooler لإيقاف خدمة الطابعة. هذه الأوامر القصيرة تشكل أساساً لأعمال كبيرة.

إذا كنت تريد مراقبة النظام، استخدم Get-Process | Where-Object { $_.WorkingSet -gt 100MB } لرؤية العمليات التي تستهلك أكثر من 100 ميغابايت من الذاكرة. مثال على استخدام جملة if:

أكواد PowerShell: شرح وأمثلة عملية للمبتدئين - 5

$FreeSpace = (Get-PSDrive C).Free
if ($FreeSpace -lt 1GB) { Write-Host 'المساحة منخفضة' }

هذا فحص بسيط للمساحة على محرك C. كمبتدئ، ابدأ بكتابة مثل هذه السكريبتات القصيرة وزد من تعقيدها تدريجياً. تذكر أن الخطأ جزء من التعلم، ولا بأس من استخدام Get-Help لفهم أي أمر غير واضح. النهج العملي هو أسرع طريقة لإتقان كود PowerShell.

المراجع

لتعميق معرفتك بكود PowerShell، استخدم المصادر التالية التي جرى الرجوع إليها في هذا الشرح:

Microsoft Learn – PowerShell Overview: شرح شامل للأساسيات من المصدر الرسمي. متاح على الرابط: https://learn.microsoft.com/es-es/powershell/

Microsoft Learn – Scripting Language Specification: تفاصيل لغة السكريبت الرسمية. متاح على الرابط: https://learn.microsoft.com/es-es/powershell/scripting/lang-spec/

IONOS – Top 40 PowerShell Cmdlets: قائمة بأهم الأوامر العملية. متاح على الرابط: https://www.ionos.es/digitalguide/servidores/configuracion/comandos-de-powershell/

Wikipedia – PowerShell: مرجع شامل للتاريخ والمزايا. متاح على الرابط: https://es.wikipedia.org/wiki/PowerShell

GitHub – PowerShell: المستودع الرسمي للمشروع مفتوح المصدر. متاح على الرابط: https://github.com/PowerShell/PowerShell

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

Stefano Barcellos

مساهم في Visite Barbados.

« المنشور السابق
تطبيق البنك على جهازين: هل يمكن استخدامه على هاتفين؟

منشورات ذات صلة