أرشيف

Posts Tagged ‘General’

PowerShell “Hello World” Examples

ديسمبر 30, 2008 أضف تعليق

موضوع النهارده هو مجموعة من أشهر أمثلة لـ PowerShell Scripts هنوضح بيها أهم مميزات PowerShell ممكن تكون الأمثلة مش كتير بس هتوضح كتير. الأمثلة هتركز أكتر على إزاي PowerShell مبني على net framework. وإزاي يقدر بسهوله انه يتعامل مع الـ Classes & DLLs اللي موجوده في net framework.

مثال1:

في الـ #C لو عندك String وعايز تعرف عدد حروفه هتكتب:

int Counter = “The Arabian PowerShell”.Length 

في الـ PowerShell هتكتب:

The Arabian PowerShell”.Length”

مثال2:

لو عايز تعرف تاريخ النهارده بالـ#C:

;()DateTime.Now.ToShortDateString

بالـ PowerShell:

()Get-Date).ToShortDateString)

لحد دلوقتي ممكن يكون الموضوع مش باين أوي، حلينا نشوف مثال 3 ونشوف لسه مش واضح ولا لأ 🙂

مثال3:

في المثال ده مش هقارن بين الـ #C وبين الـ PowerShell، انت هتشوف بنفسك وتحكم. مثال 3 ده عبارة عن Windows Form فيها button لما تدوس عليها يقفل الـ Form

PowerShell Windows Form

PowerShell Windows Form

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(“void][reflection.assembly]::LoadWithPartialName(“System.Windows.Forms]
form = new-object Windows.Forms.Form$
“form.Text= “My First PowerShell Form$
button = new-object Windows.Forms.Button$
“button.text=”Push Me$
“button.Dock=”Fill$
({()button.add_click({$form.close$
(form.control.add($button$
({()form.Add_Shown({$form.Activate$
()form.ShowDialog$
في المثال ده بإستخدام PowerShell عملنا استخدمنا NameSpace اللي اسمه System.Window.Forms زي بالظبط ما بنعمل في #C بس هناك بنكتب Using System.Window.Forms وبعدين عملنا Object من الـ Form وObject من الـ Button و كل Object حددنا الـ Properties. نفس الخطوات اللي بتتعمل بالـ #C. إعتقد كده بقي واضح إزاي PowerShell مبني على net framework.
 
 
المثال رقم 3 من كتاب PowerShell in Action لـ Bruce Payette
التصنيفات :Windows PowerShell الوسوم:,

جولة سريعة في PowerShell

ديسمبر 25, 2008 أضف تعليق

أخر موضوع اتكلمنا فيه كان مقدمة لـ PowerShell  وطبعاً كان كله كلام ومفيش أي تطبيق عملي، علشان كده موضوع النهارده هنعرف ازاي نعمل Install لـ Powershell وناخد جوله سريعه جوه PowerShell console ودي طبعا هتبقي مقدمة لأي تطبيق عملي بعد كده.

أول حاجة نعملها هي تحميل ملف الـ Setup لـ PowerShell و ده ممكن تحميله من هنا PowerShell v2 CTP2، طبعاً قبل تحميل PowerShell لازم تحمل معاه كمان net framework. علشان زي ماتفقنا ان PowerShell مبنية في الأساس على net framework. وده ممكن تحمله من هنا net framwork 2. كمان في حاجة مهمة لازم تأخد بالك منها وانت بتحمل PowerShell هي نوع البروسيسور و الويندوز اللي عندك إذا كانوا 32bit ولا 64bit. علشان في ملف Setup مختلف لكل واحد.

بعد تحميل net framework. و الـ PowerShell . هتبدأ الـ Setup لPowerShell وده زيه زي برنامج بتعمله Setup كالعاده Next – Next – Finish :):). بعد متخلص Setup هتلاقي الـfolder الخاص بـ PowerShell موجود في:  C:\Windows\System32\Windows PowerShell وطبعاً ده بإفتراض ان الويندوز موجوده على الـ :C.

دلوقتي لو فتحت Start Menu هتلاقي Item جديد موجود و أسمه ( Windows PowerShell V2 (CTP2 و موجود معاه شوية Sub-items زي الصورة اللي موجوده تحت،هنتكلم عليهم ونقول ايه دول

PowerShell v2 CTP in start menu

PowerShell v2 CTP in start menu

 الـ Sub-Items الموجوده في الـ menu:

  • Getting Started: و دي ملف Word فيه شوية معلومات عن PowerShell و بعض المباديء والمميزات الأساسية في PowerShell اللي تساعدك انك تفهم ايه هو PowerShell.
  • Graphical Windows PowerShell V2(CTP2: وده الـ PowerShell console بس ليه (Graphical User Interface (GUI والغرض منه انه يسهل التعامل مع PowerShell. يعني مثلاً ممكن تعمل Copy-Paste وكمان فيه خاصية اسمها Tokenizer ودي بتلون الـScript Code على حسب نوع الكلمه وده يسهل عليك لما تيجي تقرأ الScript علشان تقدر تحدد  الـ Variable و الـ Commands  والـ Paramters بشكل أسهل. كمان ممكن تكتب Script وتنفذ في الـ GUI على عكس الـConsole اللي اتعودنا عليه تكتب الـScript في الـ Notepad و تعمله Save بنوع الـ Script يعني لو VBScript يبقي الملف vbs.* ولو PowerShell يبقي ps1.* وبعد كده ترجع تعمل Run للملف من الـ Console.
Graphical Windows PowerShell V2(CTP2)

Graphical Windows PowerShell V2(CTP2)

  • Quick Reference: ده ملف Word فيه الـ Syntax الخاص بـ PowerShell. والـ Syntax المقصود بيه قواعد كتابة لغة الـ PowerShell أو ما يسمي بالـ Grammar في اللغات عامة ولكن كلمة Syntax تستخدم مع لغات البرمجة او كل ما يخص لغة الكمبيوتر لشكل خاص.
  • Release Notes: ملف Word يحتوي على كل ما يخص الإصدار المحُمل لديك من مميزات وكيفية التعامل معه.
  • User Guide: ملف Word شبيه بملف Getting Started ولكن بتفاصيل أعمق.
  • Windows PowerShell V2 (CTP2): ده PowerShell Console بالشكل التقليدي الشبيه بـ “CMD.exe”.
Windows PowerShell V2 (CTP2)

Windows PowerShell V2 (CTP2)

 

 

 

 

 

 

كده يبقي أنت عرفت ازاي تحمل الـ PowerShell و عرفت كمان ايه منين ممكن تبدأ تتعلم تكتب و تجربPowerShell بإستخدام Getting Started – Quick Ref – User Guide.

التصنيفات :Windows PowerShell الوسوم:,

مقدمة لـ PowerShell

ديسمبر 22, 2008 11تعليق

قبل منتكلم عن 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 ده انه يـJoin الكمبيوتر ده على الـ Domain.

طيب ايه الـ Script ده .. يعني بيتعمل ازاي و بيبقي شكله ازاي؟؟

الـ Script ده مجموعة من الأوامر مكتوبة في Script File والأوامر دي بتتنفذ ورا بعضها أول متشغل الـ Script. طبعا الـ Script نقدر نقول عليه نوع من أنواع الـ Porgramming لأنك علشان تكتب Script محتاج انك تتعلم Scripting Language تكتب بيها الأسكربت ده. في Scripting Languages كتير زي الJavaScript , VBScript, Perl وطبعاً PowerShell. في Scripting Languages تاني بس كفاية دول كمثال.

دلوقتي احنا عرفنا ايه هو الـ Scripting ، طيب إيه هو PowerShell؟؟

أول لما ميكروسوفت اأعلنت عن النسخة التجريبية من Windows Server 2008 أعلنت معاه عن حاجة معاه اسمها Windows PowerShell.

Windows PowerShell دي ببساطة عبارة عن Shell Scripting Environment اتعلمت مخصوص للـ Windows و أتبنت على net framework. وكان الهدف من انها تبقي مبنيه على net framework. انها تقدر تندمج او زي ما بنقول تقدر تـ integrate مع كل برامج ميكروسوفت خصوصا ان بقي من الواضح ان 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 ، والسبب انه كان محدود ان مكنش بيدعم الـ pipelining, conditional, and recursive programming. كمان انه مكنش بيوفر للـ Administrator مجموعة كبيرة من احتياجاته،ومع الوقت حجم ويندوز بدأ يكبر و بدأ يقدم خدمات أكتر فبقي من الصعب ويمكن من المستحيل ان الـ Administrator يبفضل يستخدم Windows Shell، بدأت ميكروسوفت تركز أكتر على الـ User Interface علشان تعوض النقص في مشكلة الـShell وبدأت تطور في الـ interface لحد موصلنا للشكل Vista، مع أن الـ GUI بتعمل كل حاجة تقريباً بس لسه مش مناسبة لإحتياجات الـAdministrator. علشان كده ميكروسوفت رجعت تاني تطور في الـShell علشان الويندوز يبقي بيوفر إحتيجات الـ Administrator زي مبيوفرها للـ User. ومن هنا ظهر Windows PowerShell.


ليه PowerShell مختلف ؟؟

  • PowerShell ده أول Shell يكون Object-Oriented Shell، يعني بيتعامل مع كل حاجة جوه الـ Shell environment كأنها Object على عكس أي Shell تاني بيتعامل مع اي حاجة كأنها text. لو دي أول مرة تسمع عن الـ Object-Oriented ممكن تقرأ عنه هنا، الموضوع هيبقي أوضح لما نبدا نستخدم أمثلة.
  • 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 فيه مميزات أكتر من كده بس انا حبيت اركز على أهم مميزاته و هنتكلم عن الباقية في Posts تانيه.

التصنيفات :Windows PowerShell الوسوم: