به بهترین دوره آموزش پاورشل ( Powershell ) از صفر تا صد خوش آمدید. حتماً تابحال توی نسخههای مختلف ویندوز hostهای مختلف PowerShell رو مشاهده کردید، شاید هم گاهی اوقات دستوراتی از پاورشل رو توی مدارک مختلف مایکروسافت اجرا کردید ولی هیچوقت با قدرت، سرعت و تواناییهایی که PowerShell برای شما به ارمغان میاره بدرستی آشنا نشدید.
PowerShell موفقترین رابط متنی (cli) و زبان scripting مایکروسافت محسوب میشه که در حال حاضر نه تنها برای ویندوز و محصولات مایکروسافتی بلکه برروی توزیعهای مختلف لینوکسی و macOS موجود هست و به شما این امکان رو میده تا taskهای مختلف روزانه رو توسط cli قدرتمند شئگرای powershell براحتی مدیریت کنید و عملیاتهای تکراری رو توسط اسکریپتهای پاورشل automate کنید یا تنظیمات مختلف سرورها رو کانفیگ کنید، زبان PowerShell برپایه فریمورک .net توسعه داده شده است.
هدف از توسعه PowerShell توسط مایکروسافت تولید زبانی است که بتواند به adminها و فعالان حوزههای مختلف IT که با فرآیند software development آشنایی ندارند، این امکان رو بدهد تا براحتی ابزارها و اسکریپتهایی تولید کنند که کار اونها رو تسریع بکنه و کارهایی رو به انجام برسونند که با ابزارهای گرافیکی معمول یا cliهای منتی مشابه امکان اون وجود نداره. برای اطلاعات بیشتر ویدئوهای ابتدایی این دوره آموزشی رو حتماً تماشا کنید.
برای یادگیری پاورشل جای خالی یه دوره جامع ویدیوئی فارسی که مفاهیم پاورشل رو بخوبی به شما آموزش بده و لذت استفاده از پاورشل رو به شما منتقل بکنه، احساس میشد. برای همین تصمیم گرفتم این دوره یعنی دوره آموزش پاورشل مقدماتی تا اسکریپت نویسی رو برای شما دوستان ایجاد کنم.
گذروندن دوره آموزشی PowerShell ما این امکان رو به شما میده که منطق پاورشل رو بخوبی درک کنید و براحتی بتونید ازش استفاده کنید، توی هرمرحله از توسعه مهارتهای مربوط به IT که باشید، چه مبتدی و چه حرفهای، یادگرفتن این مطالب اساسی و استفاده راحت از ابزار پاورشل تاثیر زیادی روی افزایش سرعت عملکرد و تمایز شما داره و همچنین پاورشل به شما کمک میکنه که ابزارهایی که مدت هاست بهشون نیاز دارید اما به دلیل پیچیدگی زبانهای برنامه نویسی از عملی کردن اونها منصرف شدید رو پیاده سازی کنید، چون پاورشل یک زبان اسکریپتینگ شئگراست و برای اتوماسیون کردن taskهای مختلف برای adminها طراحی شده، که قدرت زیادی داره و منطق اون بسیار سادهتر از زبانهای برنامه نویسی هستش.
برای کارکردن با ابزارهای cli که با تایپ کردن دستورات کار میکنن و همینطور نوشتن اسکریپتها باید زمانی رو صرف یادگیری اونها بکنید ولی وقتی بتونید پاورشل رو یادبگیرید تفاوت و مزیتهای فراوانش رو نسبت به ابزارهای گرافیکی درک خواهید کرد.
توی کنفرانس TechEd 2010 مایکروسافت ، Don Jones جملهی معروفی رو تحت عنوان:
“?…your choice is, Learn PowerShell, or would you like fries with that”
بیان کرد. امروز بعد از گذشت زمان طولانی شاهدیم که پاورشل خیلی موفق ظاهر شده و حتی نسخه های cross platform اون برای لینوکس و مک هم موجود هست و شرکتهای مختلفی مدیریتcommandی محصولات خودشون رو تحت ماژولهای پاورشل ارائه میکنند.
سعی کردم این مهارت رو به بهترین شکل توی این دوره آموزشی برای شما فراهم کنم تا شما هم بتونید بخوبی قدرت cli و زبان اسکریپت نویسی محبوب مایکروسافت رو تحت اختیار خودتون دربیارید.
✦ با یادگیری پاورشل قدرت بسیار بیشتری در انجام کارهایی دارید که قبلاً نمیتونستید انجامش بدید و کارهارو بسیار سریعتر و دقیقتر انجام خواهید داد و کلی وقت اضافه برای خودتون ایجاد میکنید ツ
ابزارهای گرافیکی جایگاه خودشون رو دارند و بسیار عالی و کاربرپسند هستند، مخصوصاً برای یادگیری یک تکنولوژی جدید که با محیط اون نرمافزار و تکنولوژی غریبه هستید ولی به کمک رابط GUI میتونید تا حدودی با امتحان کردن امکانات و منوهای مختلف اون نرمافزار رو یاد بگیرید .
اما وقتی صحبت از کارهای زیاد و مدیریت تعداد زیادی سرور میشه همین ابزارهای گرافیکی باعث تلف شدن وقت و بروز اشتباهات فراوان میشوند. فرض کنید قراره برروی 3 تا ماشین وب سرور IIS نصب کنید، اگر بخواهید به روش معمول عمل کنید باید به هرکدوم از این ماشینها متصل بشید و IIS رو بروری ماشین مورد نظر نصب کنید و محتویات وبسایت خودتون رو در مسیر درست کپی کنیدو انجام این کار با ابزارهای گرافیکی زمان و انرژی زیادی از شما تلف میکنه و احتمال بروز خطای شما رو بشدت افزایش میده، در حالی که با استفاده از پاورشل با یک خط کد میتونید بصورت همزمان برروی سرورها IIS رو نصب و محتویات وبسایت رو کپی کنید بدون اینکه نگران بروز خطای انسانی باشید.
در این دوره آموزشی با آموزش گام به گام PowerShell یاد خواهید گرفت چطور به درستی از این ابزار قدرتمند در جهت رفع نیازهای خودتون استفاده کنید.
در گذشته مایکروسافت همیشه بخاطر نداشتن یک command-line interface و قابلیتscripting ضعف داشت تا اینکه در سال 2002 Jeffrey Snover از مایکروسافت طرحی تحت عنوان Monad Manifesto مطرح کرد که بعداً به پاورشل تغییر نام داد و برنامهها و ویژگی های یک زبان اسکریپتینگ و command-line interface جدید رو که بجای استفاده از text از objectها استفاده میکند رو توی اون پلن مطرح کرد.
فایل مربوط به پلن Monad رو از این لینک میتونید دریافت کنید.
پاورشل اولین زبان اسکریپت نویسی و command-line interface یا رابط کاربری متنی نیست، ولی قطعاً یکی از موفقترین آنهاست، دلیل آن هم شئگرایی پاورشل است که بر خلاف CLI های موجود بجای استفاده از text و متن ساده برای جابجایی اطلاعات بین دستورات و pipeline از آبجکتها استفاده میکند.
آبجکتها خانههای زنده از درون حافظه هستند و با استفاده از پاورشل میتوانید به تمام propertyها و methodهای این خانههای حافظه دسترسی داشته باشد و مستقیماً با آنها کار کنید، درصورتی که سایر cliهای موجود از text بعنوان خروجی استفاده میکنند که استخراج اطلاعات ازآن و پاس دادن اطلاعات موردنیاز شما به دستورات بعدی دردسرهای خاص خودش را دارد که در دوره آموزشی PowerShell بیشتر با این مفاهیم آشنا خواهید شد.
در لیست زیر مهمترین مزیتهای پاورشل بطور خلاصه اشاره شده است:
ساختار تمام دستورات پاورشل بصورت یک verb یا فعل و یک کاراکتر dashسپس یک noun یا اسم است. بعنوان مثال دستور get-process که برای دریافت تمام پروسسها استفاده میشود.
اگر دستور get-command را در پنجره پاورشل اجرا کنید، لیست تمامی دستورات موجود برروی سیستم خود را خواهید دید که تعداد آنها بسیار زیاد است.
در حقیقت تعداد دستورات زیاد ویژگی زبانهای اسکریپتینگ است. نمودار زیر زبانهای برنامهنویسی را با زبانهای اسکریپتینگ مقایسه میکند:
در پاورشل سعی شده تا برای taskهای مختلف دستورات معادلی وجود داشته باشد، مثلا برای بدست آوردن لیست سرویسها دستور get-service و برای stop کردن آنها دستور stop-service یا برای ریستارت کردن سرویسها دستور restart-service
درنتیجه بدلیل تعدد دستورات در اسکریپت نویسی با پاورشل برای اکثر taskها دستورات معادلی وجود دارد و درنتیجه تعداد کل خطهای کد ما در مقایسه با زبانهای برنامه نویسی بشدت کاهش پیدا میکند و اسکریپت نویسی با PowerShell و خلق ابزارها و toolها با آن بسیار سادهتر میشود.
تمامی دستورات مرتبط پاورشل بصورت ماژولهایی دستهبندی شدهاند، بعنوان مثال تمام دستورات مربوط به کار با Active Directory در ماژولی با همین نام ذخیره شدهاند. ماژولار بودن پاورشل دسترسی به دستورات مرتبط و توسعه پاورشل رو راحتتر میکند.
در نتیجه شما میتوانید به براحتی تمام دستورات مربوط به یک ماژول را لیست کنید و توسعه دهندکان مختلف میتوانند ماژولهای جدیدی برای مدیریت محصولات خودشان توسط PowerShell ارائه دهند. مخزن PowerShell galley پر از ماژولهای متفاوت و گوناگون است که در دوره آموزش پاورشل آموزش کار با ماژولهای پاورشل و اضافه کردن ماژولهای جدید از این مخزن را فرا خواهید گرفت.
برای آشنایی بیشتر با مفاهیم پاورشل به ویدئوهای دوره آموزشی پاورشل از مقدماتی تا اسکریپت نویسی را تماشا کنید.