برامج

شرح Windows PowerShell

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

قبل ضهور Windows PowerShell ، اعتمد مسؤولو تكنولوجيا المعلومات بشكل كبير على أدوات إدارة واجهة رسومية مثل snap-ins و MMC. ومع ذلك ، كانت هذه الأدوات محدودة في وظائفها وتتطلب التشغيل اليدوي المكثف. مع Windows PowerShell ، يمكن للمستخدمين كتابة البرامج النصية لأداء العمليات المتكررة ، وتوفير الوقت والجهد ، حتى يتمكنوا من التعامل مع المهام الإدارية بطريقة أكثر كفاءة وذكاء.

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

تعريف Windows PowerShell

PowerShell
PowerShell

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

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

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

ماذا يمكن القيام به من خلال استخدام Windows PowerShell

فيما يلي نظرة عامة على ما يمكن القيام به من خلال Windows PowerShell:

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

ما الفرق بين PowerShell و وجهه الأوامر CMD؟

بالتأكيد، هناك عدة اختلافات رئيسية بين PowerShell وأمر الموجه في نظام ويندوز:

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

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

عند إدارة النظام، PowerShell يوفر تحكمًا وأتمتة أفضل للمهام النظامية، بينما أمر الموجه أكثر ملاءمة للمهام البسيطة في سطر الأوامر.

من حيث التكامل، PowerShell ينسجم بشكل أفضل مع تقنيات مايكروسوفت الأخرى مثل Exchange وSQL Server، بينما أمر الموجه له توافق محدود مع هذه التقنيات.

في الجانب التركيبي، PowerShell له بناء جملة أكثر ثراءً وموجه للكائنات، بينما أمر الموجه يستخدم بناء جملة بسيط ومرتبط بالأدوات السابقة.

الفرق بين Windows PowerShell و PowerShell Core

هناك بعض الاختلافات الرئيسية بين Windows PowerShell و PowerShell Core:

  1. التوافق مع النظام الأساسي:

  • Windows PowerShell يعمل فقط على نظام التشغيل Windows.
  • PowerShell Core هو مفتوح المصدر يعمل على عدة منصات مثل Windows و macOS و Linux.
  1. الإصدارات والدعم:

  • Windows PowerShell متضمن في نظام التشغيل Windows ويتم تحديثه مع إصدارات جديدة من Windows.
  • PowerShell Core هو إصدار مفتوح المصدر الذي يتم إصداره وتحديثه بشكل مستقل عن Windows.
  1. الميزات والتحسينات:

  • تُضاف ميزات جديدة وتحسينات أداء بشكل أسرع إلى PowerShell Core بالمقارنة مع Windows PowerShell.
  • PowerShell Core يحتوي على بعض الميزات الإضافية مثل دعم .NET Core و خدمات الويب.
  1. الأمان والاستقرار:

  • PowerShell Core يتمتع بإصلاحات أمنية وتحديثات أسرع نظرًا لطبيعته المفتوحة المصدر.
  • Windows PowerShell يعتمد على تحديثات نظام التشغيل Windows.
  1. التوافق مع البرامج:

  • Windows PowerShell له تكامل أفضل مع البرامج الأخرى من مايكروسوفت.
  • PowerShell Core قد لا يكون متوافقًا تمامًا مع كل البرامج المعتمدة على Windows PowerShell.

كيفية استخدام Windows PowerShell

الوصول إلى PowerShell:

    • يمكن الوصول إلى PowerShell من خلال البحث عنه في قائمة بدء تشغيل Windows أو من خلال النقر على الرمز في شريط المهام.
    • هناك أيضًا إمكانية الوصول إلى PowerShell من خلال الضغط على المفتاحين Windows + X والتحديد من القائمة المنبثقة.

أساسيات اوامر WINDOWS PowerShell

لغة PowerShell هي لغة كائنية التوجه (Object-Oriented). هذا يعني أن المخرجات من الأوامر في PowerShell لا تكون نصوصًا مجردة كما في CMD.exe أو Bash، وإنما تكون عبارة عن كائنات (Objects) ذات خصائص (Properties) ووظائف (Methods).

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

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

مثال:

  1. الأمر Get-Process يعرض جميع العمليات (Processes) المُشغلة حاليًا على الجهاز.
  2. المخرج الناتج من هذا الأمر عبارة عن مجموعة من كائنات “System.Diagnostics.Process”، حيث كل كائن يمثل عملية منفردة.
  3. كل كائن “Process” يحتوي على مجموعة من الخصائص (Properties) التي توفر معلومات مفصلة عن العملية، مثل اسم العملية (ProcessName) ورقم تعريف العملية (ProcessID).
  4. يتم عرض مخرج الأمر Get-Process بشكل أفقي، بحيث يمثل كل سطر كائن “Process” منفرد مع جميع خصائصه.
  5. هذا التنظيم الكائني للمخرجات يسمح بالتعامل البرمجي مع العمليات على الجهاز، حيث يمكن الوصول إلى خصائص وطرق كل عملية واستخدامها لأغراض الإدارة والأتمتة.
get-process
get-process

 

الآن بعد ما عرفنا طريقة عمل الـ Objects في PowerShell، لنتطرق الى أكثر الأوامر (cmdlets) استخداماً وأهمها.

Get-Alias (gal)

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

الأمر التالي يقوم بجلب الـ Alias (الأمر المختصر) للأمر الأصلي Get-Process:

Get-Alias -Definition Get-Process

Get-Alias -Definition Get-Process

نرى أن الأمر Get-Process له اختصارين: gps و ps. استخدام اختصار الأمر يعطي نفس مخرج الأمر الأصلي

يعرض الجدول التالي بعض الأمثلة على أوامر cmdlets الأكثر استخدامًا والأسماء المستعارة المقابلة لها:

alias powershell

 

GetlocalUser

GetlocalUser

بأستخدام هذا الأمر يمكنك أسترجاع ومعرفة معلومات عن local users on the system .

Get-localUser

GetProcess | FormatTable View priority

عند أستخدام هذا الأمر يمكنك أن تظهر مجموعة من ال running process و يتم عرضها بالنسبة الي priority الخاصة بكل process ، و عند أستخدام هذا الأمر يظهر لك أسماء ال process و معرفة ال pid الخاصة بكل process .

GetScheduledTask

GetScheduledTask

حسنا عند أستخدام هذا الأمر سوف يقوم بعرض لك كل ال Schedulet Tasks الخاصة بالجهاز

من أحد طرق ال persistence techniques التي قد يستخدمها ال attacker لتثبيت عملية الأختراق الخاصة بهم ، لذلك يجب عليك أن تعرف ما هي ال Scheduled Tasks الخاصة علي الجهاز

GetNetIPconfiguration and GetNetIPAddress

GetNetIPconfiguration and GetNetIPAddress

هذا الأمر يشبه ifconfig  المستخدم في ال Cmd ، ان الأمرين في الأعلي يظهران لك معلومات عن الشبكة الخاصة بك .

INFOOIT

كاتب ومحرر اخبار اعمل في موقع INFOOIT

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شاهد أيضاً
إغلاق
زر الذهاب إلى الأعلى