PowerShell او PS. ببساطة هو ” شيل ” اعتقد ان جميع رواد لينكس يعلمون ماهو الـ Shell و Bash وغيرها من منصات الشيل. ولكن البور شيل ليس له دخل بلينكس. هو خاص بنظام مايكروسوفت ويندوز. أول إصدارة له كانت سنة 2006. ولكن حقيقة لا اعلم لماذا لا احد يتحدث عنه في عالمنا العربي .
قبل ما نتكلم عن PowerShell بشكل أكثر وضوحا سوف نتكلم قليلا عن الـ Scripting ولماذا نستخدمة ومن اللى المفروض يتسخدموا. إذا كنت بتشتغل IT Pro وكلمة IT Pro دي تشمل
- System Administrator
- System
- Engineer
- Network Administrator
- Help desk
أكثر الناس شغلهم كله بيبقي Administration لشبكة، هذة الشبكة بيبقي فيها سيرفر، راوتر ، سويتش وكمان بعض المستخدمين اللي بنسمى أجهزتهم Clients. بالنسبة للسيرفر بيبقي في اكتر من سيرفر كل واحد فيهم بيبلعب دور معين ، يعني مثلا تلاقي سيرفر عليه Active Directory – DNS و سيرفر تاني عليه ISA علشان يبقي Firewall و سيرفر تالت عليه Exchange علشان يبقي Mail، في الأول الـ Administration بيبقي سهل وبسيط لكن مع الوقت الدنيا بتكبر و الشبكة حجمها بيزيد سواء على مستوي الـ Servers & Application او على مستوي عدد الـ Users. فيبدأ الـ IT Pro يدور على حاجة تخلي موضوع الـ Administration أسهل وأسرع. وهنا يجي دور الـ Scripting، عن طريق الـ Scripting يبدأ يكتب مجموعة من الـ Scripts اللي تساعده في تنفيذ حاجات معينه يعني مثلا ممكن يعمل Script يستخدم مع اي كمبيوتر جديد وتكون وظيفة الـScript ده انه يـربط الكمبيوتر ده على الـ Domain.
- لكن الان ما هو الـ Script .. كيف يتم عملة و وكيف يكون شكلة ؟
الـ Script ده مجموعة من الأوامر مكتوبة في Script File وهذة الاوامر يتم تنفيذها بشكل متتالى عند تشغيل الـ Script. وطبعا الـ Script نقدر نقول عليه نوع من أنواع الـ Porgramming لأنك لكى تكتب Script محتاج انك تتعلم Scripting Language تكتب بيها الأسكربت ده. في Scripting Languages كتير مثل :
- Perl
- VBScript
- JavaScript
وطبعاً PowerShell في Scripting Languages تاني بس كفاية دول كمثال.
- والان نحن عرفنا ما هو الـ Scripting ، طيب ما هو PowerShell ؟
عند إعلان شركة مايكروسوفت عن النسخة التجريبية من Windows Server 2008 أعلنت أيضا عن حاجة معاه اسمها Windows PowerShell.
Windows PowerShell دي ببساطة عبارة عن Shell Scripting Environment تم صناعتها مخصوص للـ Windows و تم بنائها على net framework. وكان الهدف من انها تبقي مبنيه على Net framework. انها تقدر تندمج مع كل برامج ميكروسوفت خصوصا ان أصبح من الواضح ان Net framework. بقي حاجة اساسية مع الويندوز وكل برامج ميكروسوفت والدليل على كده ان الـ Net framework. أصبحت بينزل بشكل آلى مع الويندوز – فى السابت كنا بتعملها install لما إذا أحتجنا لها – أيضا إذا قمت بعمل Install لاى برنامج من برامج ميكروسوفت هيسألك على Net framework. الأول وإذا لم تكن موجودة تظهر لك رسالة خطأ Error.
نرجع تاني لـ PowerShell. لما تفتح PowerShell Console هتلاقي في شبة كبير في الشكل من CMD.exe أو نافذة الدوس القديمة لكن طبعا الشبه في الشكل بس لكن الفرق كبير جدا في الوظيفة والامكانيات. طبعاً في ناس مستغربة وهي بتقرأ الكلام ده واكيد بيتسألوا هي ليه ميكروسوفت رجعت تاني للـ shell أو واجهة الدوس بعد كل هذا التطور في الـ User Interface أو واجهة المستخدم , وطبعا التساؤلات زادت عندما أعلنت ميكروسوفت عن Windows Server 2008 | ServerCode installationاللذى أصبح كله shell وفيه شبه كبير من Unix-Linux.
الموضوع ببساطة ان الـ Windows Shell كان ضعيف و محدود الأمكانيات بالمقارنة مع Unix shell ، والسبب انه كان محدود لانة كان لا يدعم :
- recursive programming
- conditional
- pipelining
أيضا كان لا يوفر للـ Administrator مجموعة كبيرة من احتياجاتة، ومع الوقت حجم ويندوز بدأ يكبر و بدأ يقدم خدمات أكتر فبقي من الصعب ويمكن من المستحيل ان الـ Administrator يظل يستخدم Windows Shell، بدأت ميكروسوفت تركز أكتر على الـ User Interface لكى تعوض النقص في مشكلة الـShell وبدأت تقوم بتطوير الـ interface لحد ما وصلنا للشكل Vista و windows7 مع أن الـ GUI بتعمل كل حاجة تقريباً بس لسه مش مناسبة لإحتياجات الـAdministrator. علشان كده ميكروسوفت رجعت تاني تطور في الـShell علشان الويندوز يبقي بيوفر إحتيجات الـ Administrator زي ما بيوفرها للـ User. ومن هنا ظهر Windows PowerShell.


- لماذا PowerShell مختلف ؟
PowerShell ده أول Shell يكون Object-Oriented Shell أو الموجهة بالاهداف, يعني بيتعامل مع كل حاجة جوه بيئة الـ Shell كأنها Object على عكس أي Shell تاني بيتعامل مع اي حاجة كأنها text.
وفيما يلى نستعرض بعض الخصائص البسيطة للـ PowerShell :
- PowerShell Remoting: هذة خاصية موجوده في PowerShell بس بتخليك انك تقدر تكتب PowerShell commands and Scripts على اي Remote Computer، يعني من وانت قاعد على الكمبيوتر بتاعك في البيت ممكن تفتح PowerShell عندك و تتحكم في السيرفر اللي في المكتب كأنك بتكتب PowerShell عليه.
- Backgroud-Jobs: هذة معناها ان PowerShell بينفذ الـ commands/scripts في الـ backgroud من غير اي Interaction مع الـ Interface .
- Native-Shell environment: يعني مش محتاج برامج زي Editor – Compiler علشان تشغل الـ Script .. في PowerShell كل المطلوب انك تفتح PowerShell console كأنك بتفتح CMD.exe، معني كده انك تقدر تشغل PowerShell على اي Windows من غير قلق من ان البرنامج اللي بيتشغل الScript مش موجود على الكمبيوتر.
- Script-Debugging: خذة تجعلك تقدر تتابع الـ script / command اللي انت كاتبه وكمان تعمله Debugging من غير متستخدم اي Editor-Compiler.
طبعا PowerShell فيه مميزات أكتر من كده بس انا حبيت اركز على أهم مميزاته .
شكرا على الموضوع
إسمح ببعض الإضافات:
“والسبب انه كان محدود لانة كان لا يدعم ….”
—> لا يا أخى طرفية cmd تدعم :
recursive programming
conditional
pipelining
—> ولكن فاعليتها محدودة.
“أيضا كان لا يوفر للـ Administrator مجموعة كبيرة من احتياجاتة”
—> طرفية cmd رغم أنها أقل قوة من طرفيات لينوكس من ناحية administration إلا أنها تفى بالحاجات الأساسية من خلال توفيرها لعشرات الأوامر المتقدمة فى هذا المجال مثل الأمر netsh مثلا
“PowerShell Remoting”
—> هذه الخاصية هي من أهم خاصيات بورشال لأنها تستعمل عدة تقنيات للإتصال عن بعد مثل dcom wsman ..وفى النسخة الثالثة من بورشال أضن أنها ستدعمها ب ssh والمنتظر من الجميع ال workflow الذى سيمكننا من تمديد زمن إشتغال أكوادنا لمدة طويلة ولو كان الجهاز مغلق
Backgroud-Jobs”
—> هذه خاصية أخرى لبورشال ظهرت فى نسخته الثانية…حيث يمكننا بورشال من إستعمال cmdlets خاصة
Native-Shell environment
—> أضف إلى ذلك بيئة رسومية خاصة و جميلة ise
Script-Debugging
—> شبيه ب debugger فيزوال بيسك…من حيث ال shortcut والألوان
شكرا لك أخى العزيز على الإضافات المفيدة , وهى بالتأكيد هتفيد باقى الاخوة