شرح Windows PowerShell

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

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

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

تعريف Windows PowerShell

PowerShell

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. الإصدارات والدعم:

  1. الميزات والتحسينات:

  1. الأمان والاستقرار:

  1. التوافق مع البرامج:

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

الوصول إلى PowerShell:

أساسيات اوامر 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

 

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

Get-Alias (gal)

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

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

Get-Alias -Definition Get-Process

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

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

 

GetlocalUser

GetlocalUser

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

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 ، ان الأمرين في الأعلي يظهران لك معلومات عن الشبكة الخاصة بك .

Exit mobile version