پاورشل چیست؟ – آموزش مقدماتی به زبان ساده
«ویندوز پاور شل» (Windows PowerShell) یک ابزار مبتنی بر رابط خط فرمان است که توسط مایکروسافت توسعه یافته است. این ابزار کاربردی برای متخصصان فناوری اطلاعات و مدیران سیستم طراحی شده است تا از طریق آن بتوانند سیستمعامل ویندوز را مدیریت کرده و وظایف و تنظیمات را خودکار کنند. پاور شل با دارا بودن ویژگیهای جذابی همچون cmdletها، اسکریپتها و توانایی تعامل با APIهای مختلف بهرهوری را به شکل قابل ملاحظهای افزایش میدهد. بر همین اساس در این مطلب از مجله فرادرس به این مورد پرداخته خواهد شد که کاربردهای پاور شل چیست و چگونه مدیران سیستم و متخصصان فناوری میتوانند از این ابزار استفاده کنند.
در این نوشته نحوه عملکرد، کاربردها و مزایای استفاده از پاور شل به طور کامل مورد بررسی قرار گرفته است. با مطالعه این مطلب ضمن آشنایی با پاور شل و دستورات آن، نحوه نصب و راهاندازی آن را نیز فراخواهید گرفت و میتوانید از این ابزار برای خودکارسازی فرایندها و مدیریت سیستمعامل استفاده کنید
پاور شل چیست؟
پاور شل یک ابزار متنباز مبتنی بر رابط خط فرمان است که به توسعهدهندگان، مدیران فناوری و مهندسان DevOps امکان میدهد تا وظایف و تنظیمات پیکربندی را با استفاده از کد خودکار کنند. در واقع، پاور شل را میتوان یک فریمورک اتوماسیون و مدیریت پیکربندی «چند پلتفرمی» (Cross-Paltform) دانست که از یک برنامه واسطه خط فرمان و یک زبان برنامه نویسی تشکیل شده است.
PowerShell به طور خاص برای متخصصان فناوری اطلاعات و مدیران سیستم طراحی شده است تا بتوانند سیستمعامل ویندوز و سایر برنامههای مرتبط با آن را به شکل موثرتری کنترل و مدیریت کنند. استفاده از پاور شل به این خاطر جذاب است که ترکیبی از انعطافپذیری اسکریپتنویسی، سرعت خط فرمان و قدرت یک ابزار مدیریت مبتنی بر رابط کاربری گرافیگی را ارائه میدهد. پاور شل با خودکارسازی فرایندهای تکراری موجب صرفهجویی در زمان میشود و به مدیران سیستم نیز کمک میکند تا مشکلات خود را به طور موثری حل کنند.
منظور از زبان برنامه نویسی پاور شل چیست؟
همان طور که در بخش قبلی نیز عنوان شد، پاور شل یک ابزار دو منظوره است که هم به عنوان زبان برنامه نویسی و هم به عنوان رابط خط فرمان مورد استفاده قرار میگیرد. عملکرد پاور شل به عنوان یک زبان برنامه نویسی به این صورت است که از آن به منظور ارسال دستورالعملها از یک نرمافزار والد به سایر نرمافزارها استفاده میشود.
برخلاف زبانهای برنامه نویسی رایج همچون پایتون، روبی و سایر موارد پاور شل یک زبان اسکریپتی است که به شکل متفاوتی به کد ماشین تفسیر میشود. دستورات پاور شل به صورت خط به خط به جای کامپایلر توسط مفسر تفسیر میشوند. همین ویژگی به ظاهر ساده بهبود عملکرد نرمافزار اصلی، خودکارسازی وظایف، استخراج دادهها از مجموعه داده، مدیریت پیکربندی و سایر موارد دیگر را امکانپذیر میسازد.
پاور شل چگونه کار می کند؟
PowerShell توسط شرکت مایکروسافت بر پایه «دات نت فرِیموُرک» (Net Framework.) توسعه داده شده است. بنابراین، این ابزار بیشتر از این که یک برنامه خط فرمان باشد به یک زبان برنامه نویسی شباهت دارد.
پاور شل با اشیا کار میکند. در حقیقت، هر چیزی در پاور شل یک شی محسوب میشود. این اشیا هر کدام ویژگیها و متدهای مخصوص به خود را دارا هستند و میتوان از آنها به عنوان ورودی و خروجی برنامه نیز استفاده کرد. PowerShell برای دستکاری و انجام عملیات بر روی این اشیا ۴ نوع دستور مختلف را ارائه میکند که در ادامه آورده شدهاند.
- Cmdletها
- توابع پاور شل
- اسکریپتهای پاور شل
- دستورات اجرایی
در ادامه این بخش از نوشته به این سوال پاسخ داده خواهد شد که نقش هر کدام از دستورات بالا در پاور شل چیست.
Cmdletها
Cmdlet شکل خلاصه شده عبارت Command-lets است که به دستورات تک عملکردی پایه موجود در پاور شل اشاره دارد. اگر پاور شل را یک پاراگراف در نظر بگیریم، آنگاه Cmdletها را میتوان حروف هر کلمه در آن دانست. از Cmdletها میتوان به تنهایی برای انجام یک عملکرد خاص استفاده کرد. همچنین، امکان ترکیب این دستورات برای انجام عملکردهای مهمتر نیز وجود دارد.
به این نکته نیز باید توجه داشت که هر کدام از Cmdletها به عنوان یک تابع جداگانه برای کمک به خروجی در تابع ترکیبی نیز کار میکنند. با این وجود Cmdletها در محیط پاور شل نوشته نمیشوند. این دستورات به زبان دیگری نوشته شده و بعد از کامپایل در محیط PowerShell در دسترس هستند. بنابراین، این دستورات محدودیت عملکردی دارند که استفاده از آنها تا حدود زیادی به خلاقیت توسعهدهنده بستگی خواهد داشت. توسعهدهندگان و مهندسان DevOps از «لولهها» (pipes) برای ارسال خروجی Cmdlet به ورودی Cmdlet دیگر به عنوان یک شی استفاده میکنند.
توابع پاور شل
توابع یکی از دستورات رایجی هستند که به منظور اجرای کدها در PowerShell مورد استفاده قرار میگیرند. برخلاف Cmdletها توابع در محیط پاور شل نوشته میشوند.
توابع پاور شل دنبالهای از دستورالعملهای مختلف هستند که تنها با فراخوانی تابع میتوان آنها را اجرا کرد. این توابع میتوانند یک یا چند ورودی از نوع پارامتر داشته باشند، اما خروجی آنها میتواند روی صفحه نمایش ظاهر شده یا به یک تابع یا ورودی Cmdlet دیگر ارسال شود. دو نوع تابع در محیط PowerShell وجود دارد که عبارتنداز:
- تابع پایه: این نوع از توابع سادهترین شکل تابع مورد استفاده در PowerShell هستند. تابع پایه هیچ گونه ویژگی اضافی ندارد و تنها شامل پارامترهای ورودی و بدنه تابع است.
- تابع پیشرفته: این توابع ویژگیهای تابع پایه را در خود دارند، اما دارای ویژگیها و قابلیتهای بیشتری نیز هستند.
اسکریپتهای پاور شل
مدیران سیستم با استفاده از دستورات Cmdlet اسکریپتهای پاور شل را پیادهسازی میکنند. اسکریپتهای پاور شل به منظور خودکارسازی فرایندها مورد استفاده قرار میگیرند. دستورات موجود در اسکریپت پاور شل به ۳ دسته اصلی تقسیم میشوند که در ادامه آورده شدهاند.
- get: این دستور به منظور بازیابی اطلاعات از یک سیستم فایل مورد استفاده قرار میگیرد.
- set: این دستور نیز برای ویرایش اطلاعات بخشهای مختلف ویندوز استفاده میشود.
- remove: این دستور نیز برای حذف کامل عملیات کاربرد دارد.
استفاده از اسکریپتهای پاور شل پیچیدگی را هنگام نوشتن کد و خودکارسازی فرایندها کاهش میدهد.
دستورات اجرایی
دستورات اجرایی به منظور اجرای فایلهای اجرایی مورد استفاده قرار میگیرند. فایلهای اجرایی دارای پسوند exe هستند و بخشی از نرمافزارهای ویندوز مایکروسافت محسوب میشوند. برای اجرای فایلهایی با پسوند exe در پاور شل ۳ روش مختلف وجود دارد که به شرح زیر هستند.
- دستور Invoke-expression: این دستور محبوبترین روش اجرای فایلهای exe است.
- دستور start-process از نوع Cmdlet: این دستور بیش از یک فرایند را شروع میکند ولی همان نتیجه دستور اول را برمیگرداند.
- تایپ "\." قبل از نام فایل: این سادهترین روش برای اجرای فایلهای exe است که تمام جایگزینهای فایل exe را اجرا میکند.
یادگیری ویندوز پاور شل با فرادرس
به عنوان یک کاربر عادی یا کاربر حرفهای ویندوز یادگیری ویندوز پاور شل میتواند توانایی شما را در زمینه خودکارسازی فرایندها، مدیریت پیکربندیهای سیستم و عیبیابی مشکلات سیستمعامل ویندوز تا حد زیادی افزایش دهد. پاور شل طیف گستردهای از امکانات را در اختیار کاربران خود قرار میدهد تا بتوانند از امکانات و قابلیتهای سیستمعامل ویندوز در تمامی سطوح استفاده کنند. برای یادگیری ویندوز پاور شل در نخستین گام باید مفاهیم پایه موجود در آن را درک کنید و با تفاوتهای آن با رابط خط فرمان سنتی ویندوز آشنا باشید. سپس، باید این ابزار را نصب و راهاندازی کنید. در گام بعدی نیز باید دستورهای موجود در پاور شل را یاد بگیرید تا بتوانید از قابلیتها و امکانات موجود در آن استفاده کنید.
خوشبختانه امروزه برای یادگیری هر مهارتی با دنیایی از منابع روبرو هستیم. شما میتوانید از کتابهای آنلاین و چاپی، مقالات و ویدیوهای آموزشی برای یادگیری PowerShell استفاده کنید. در این بین مشاهده ویدیوهای آموزشی نسبت به سایر گزینههای موجود برای یادگیری ارجحیت دارد. برای شروع میتوانید فیلم آموزش مقدماتی ویندوز پاور شل فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
این دوره آموزشی در قالب ۸ درس شما را با مفاهیم مقدماتی موجود در ویندوز پاور شل آشنا خواهد کرد. با مشاهده این دوره آموزشی با مدیریت ویندوز از طریق پاور شل و برنامه نویسی و مفاهیم پایه موجود در آن آشنا خواهید شد. بعد از دیدن این دوره آموزشی به منظور ارتقا سطح مهارت خود میتوانید چند اسکریپت ساده در پاور شل بنویسید و پروژههای کوچکی همچون خودکارسازی بهروزرسانیها سیستم، ایجاد گزارش و مدیریت حساب کاربری را انجام دهید.
کاربردهای پاور شل چیست؟
PowerShell یک زبان برنامه نویسی قدرتمند و رابط خط فرمان است که توسط مایکروسافت توسعه پیدا کرده است. این ابزار در وهله نخست برای خودکارسازی فرایندها و مدیریت پیکربندی مورد استفاده قرار میگیرد. پاور شل بر پایه فریمورک دات نت ساخته شده است و هدف اصلی از طراحی آن کمک به مدیران سیستم و کاربران در مدیریت و خودکارسازی برنامههای ویندوز است. مهمترین کاربردهای پاور شل عبارتنداز:
- خودکارسازی وظایف سیستمی
- مدیریت پیکربندی
- مانیتورینگ سیستم و عیبیابی
- مدیریت از راه دور
- ادغام با فریمورک دات نت
- دسترسی و دستکاری دادهها
- زمانبندی فرایندها
- پشتیبانی از پلتفرمهای مختلف
- دسترسی به ابزار مدیریت ویندوز
در ادامه این بخش از نوشته هر کدام از کاربردهای پاور شل مورد بررسی قرار خواهد گرفت.
خودکارسازی وظایف سیستمی
یکی از مهمترین کاربردهای PowerShell اتوماسیون وظایف در DevOps است. پاور شل به عنوان یک زبان برنامه نویسی بیشتر به منظور خودکارسازی فرایندها مورد استفاده قرار میگیرد. PowerShell برای این منظور توابع، کلاسها، Cmdletها و ماژولهای قابل توسعه متعددی را در اختیار مدیران سیستم و مهندسان DevOps قرار میدهد. در واقع، با استفاده از پاور شل میتوان کارهای تکراری نظیر ایجاد حساب کاربری، پردازش دستهای فایلها و کارهای زمانبندی شده را با استفاده از اسکریپتها خودکار کرد.
مدیریت پیکربندی
با استفاده از پاور شل به سادگی میتوان تنظیمات موجود در ویندوز و سایر محصولات مایکروسافت مانند SharePoint، «مایکروسافت آژور» (Microsoft Azure) و سایر موارد را پیکربندی و مدیریت کرد. مدیریت پیکربندی از بروز تغییرات غیر منتظره در سیستم جلوگیری میکند. در نتیجه این امر مشکلات عملکردی و ناسازگاریهای سیستم به شکل قابل توجهی کاهش خواهد یافت.
مانیتورینگ سیستم و عیبیابی
نظارت بر عملکرد سیستم و اطمینان یافتن از کارکرد صحیح آن مساله بسیار مهمی برای مدیران سیستم است. آگاهی داشتن نسبت به عملکرد سرور برای بهبود تجربه کاربری الزامی است. علاوه بر این، نظارت بر عملکرد سرور از رخ دادن مشکلات ناگهانی نیز جلوگیری میکند. از دستورات و اسکریپتهای موجود در پاور شل برای نظارت بر عملکرد سیستم، بررسی بهروزرسانیها و عیبیابی میتوان استفاده کرد.
مدیریت از راه دور
یکی از دلایل محبوبیت بالای پاور شل توانایی آن در اجرای دستورات از راه دور است. PowerShell به مدیران سیستم این امکان را میدهد تا دستورات مورد نظر خود را از راه دور اجرا کنند. با استفاده از PowerShell Remoting میتوان اسکریپتها و دستورات را بر روی رایانههای راه دور اجرا کرد. در نتیجه این امر مدیریت متمرکز چندین سیستم امکانپذیر خواهد شد.
ادغام با فریمورک دات نت
پاور شل میتواند از کلاسهای دات نت استفاده کند و به کاربران این امکان را میدهد تا اسکریپتهای قدرتمندی بسازند.
دسترسی و دستکاری دادهها
یکی دیگر از کاربردهای مهم PowerShell دسترسی و دستکاری دادهها است. شبکههای کامپیوتری بزرگ از سرویسهای متعددی تشکیل شدهاند که به صورت مستقل کار میکنند. این شبکهها توسط یک مدیر شبکه کنترل میشوند. پاور شل برای مدیران شبکه دسترسی آسان به دادههای مختلف شبکه همچون سیستم فایل یا رجیستری را فراهم میکند.
زمانبندی فرایندها
PowerShell با نرمافزار Windows Task Scheduler ادغام میشود. در نتیجه، میتوان اسکریپتها را در زمان مشخصی یا تحت شرایطی خاص اجرا کرد.
پشتیبانی از پلتفرمهای مختلف
پاور شل مبتنی بر فریمورک دات نت توسعه پیدا کرده است. در نتیجه، میتوان اسکریپتهای پاور شل را علاوه بر ویندوز در سایر سیستمعاملها همچون لینوکس و macOS نیز اجرا کرد.
دسترسی به ابزار مدیریت ویندوز
پاور شل به «ابزار مدیریت ویندوز» (Windows Management Instrumentation | WMI) دسترسی دارد. در نتیجه، این مورد به کاربران این امکان را میدهد تا اطلاعات سیستم، تنظیمات سختافزاری و موارد دیگر را جستجو و دستکاری کنند.
تفاوت پاور شل با cmd چیست؟
Windows Command Prompt یا رابط خط فرمان پیشفرض ویندوز اغلب با نام cmd شناخته میشود. اولین نسخه cmd در سال ۱۹۸۷ میلادی (۱۳۶۶ شمسی) در سیستمعامل DOS منتشر شد. از cmd برای مدیریت کارها در سیستمعامل و خودکارسازی فرایندها استفاده میشود. برای یادگیری بیشتر در خصوص Command Prompt میتوانید فیلم آموزش کاربردی خط فرمان ویندوز فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
هر دو ابزار پاور شل و cmd توانایی انجام کارهای مشابهی را دارند، اما نحوه کارشان با یکدیگر تفاوت دارد. از cmd در ویندوز برای انجام کارهای ساده استفاده میشود. در نقطه مقابل، برای قابلیتهای پیشرفته اسکریپت نویسی و برنامه نویسی میتوان از پاور شل استفاده کرد. PowerShell ابزاری جدیدتر و قدرتمندتر برای مدیریت برنامههای ویندوز است. این دو ابزار از نظر رابط کاربری و عملکرد با یکدیگر تفاوت دارند.
- رابط کاربری: در حالی که هر دو ابزار رابط کاربری مشابهی دارند، ولی رابط کاربری آبی رنگ PowerShell به شکل قابل توجهی با ظاهر کلاسیک cmd تفاوت دارد.
- عملکرد و قدرت: از نظر عملکردی PowerShell علاوه بر رابط خط فرمان یک زبان برنامه نویسی نیز هست. همین مورد امکان انجام عملیات پیچیدهتر، خودکارسازی فرایندها و مدیریت سیستم را در مقایسه با عملکردهای محدود cmd فراهم میکند.
در مجموع، cmd بیشتر برای کاربران معمولی ویندوز مناسب است و نمیتواند پاسخگوی نیاز کاربران حرفهای باشد. برای این منظور کاربران حرفهای میتوانند از ابزار PowerShell استفاده کنند.
مقایسه PowerShell و cmd
در جدول زیر مقایسه کاملی بین PowerShell و cmd صورت گرفته است.
PowerShell | cmd |
در سال ۲۰۰۶ میلادی (۱۳۸۵ شمسی) معرفی شد. | نخستین بار در سال ۱۹۸۱ میلادی (۱۳۶۶ شمسی) منتشر شد. |
با دستورات Batch و cmdletها کار میکند. | تنها با دستورات Batch کار میکند. |
خروجی cmdletها را میتوان به عنوان ورودی به یک cmdlet دیگر ارسال کرد. | خروجی یک دستور را نمیتوان به سایر دستورات منتقل کرد. |
خروجی به صورت یک شی است. | خروجی دستورات به صورت متن است. |
توانایی اجرای دنبالهای از cmdletها در یک اسکریپت را دارد. | یک دستور باید قبل از اجرای دستور بعدی اجرا شود. |
دستور Help برای دریافت اطلاعات در خصوص هر کدام از cmdletها موجود است. | امکان دریافت اطلاعات در خصوص هر کدام از دستورات وجود ندارد. |
به کتابخانههای برنامه نویسی دسترسی دارد، زیرا مبتنی بر چارچوب دات نت توسعه پیدا کرده است. | امکان دسترسی به کتابخانههای برنامه نویسی وجود ندارد. |
امکان برقراری ارتباط با محصولات ابری مایکروسافت را دارد. | توانایی برقراری ارتباط با محصولات ابری مایکروسافت را ندارد. |
از سیستمعامل لینوکس پشتیبانی میکند. | از سیستمعامل لینوکس پشتیبانی نمیکند. |
پیشتر در مطلب زیر از مجله فرادرس خط فرمان ویندوز به همراه راهنمای استفاده و دستورات مختلف موجود در آن مورد بررسی قرار گرفته است.
آموزش راه اندازی و نصب powershell در ویندوز
بعد از آشنایی با پاور شل و کاربردهای مختلف آن در این بخش از نوشته نحوه راهاندازی و نصب PowerShell را فراخواهید گرفت. برای نصب و راهاندازی پاور شل در نسخههای جدید ویندوز نظیر ویندوز ۱۰ و ۱۱ نیاز به کار خاصی نیست، زیرا PowerShell در نسخههای یاد شده به صورت پیشفرض از قبل نصب شده است.
برای اجرا و راهاندازی پاور شل در ویندوز ۱۰ و ۱۱ کافی است تا مراحل زیر را دنبال کنید.
- عبارت PowerShell را در کادر جستجو ویندوز وارد کنید و همانند تصویر زیر آیکون Windows PowerShell را انتخاب کنید.
- با انتخاب گزینه مشخص شده در بخش قبلی PowerShell باز شده و پنجره زیر نمایش داده خواهد شد.
چگونه با پاور شل اسکریپت اجرا کنیم؟
اسکریپتهای پاور شل در فایلهایی با پسوند.ps1 ذخیره میشوند. به صورت پیشفرض، به دلیل مسائل امنیتی و محافظت از سیستم امکان اجرای این فایلها با دابل-کلیک کردن روی فایل وجود ندارد. برای اجرای اسکریپتهای پاور شل کافی است همانند تصویر زیر روی فایل کلیک راست کرده و گزینه Run with PowerShell را انتخاب کنید.
علاوه بر این، به منظور ارتقا امنیت در پاور شل سیاستهایی وجود دارد که اجرای اسکریپتها را محدود میکند. با اجرای دستورGet-ExecutionPolicy در پاور شل میتوانید سیاستهای امنیتی موجود را مشاهده کنید. خروجی حاصل از اجرای دستور بالا یکی از موارد زیر خواهد بود.
- Restricted: به صورت پیشفرض این سیاست امنیتی در پاور شل برای اجرای اسکریپتها فعال است که بدین معنا است که هیچ اسکریپتی اجازه اجرا ندارد. بنابراین، در نخستین مرتبه از اجرای دستور بالا این عبارت نمایش داده خواهد شد.
- AllSigned: این سیاست به شرایطی اشاره دارد که یک اسکریپت تنها توسط یک توسعهدهنده مورد اعتماد میتواند اجرا شود.
- RemoteSigned: در صورت فعال بودن این گزینه میتوانید اسکریپتهای نوشته شده توسط خود یا یک توسعه دهنده مورد اعتماد را اجرا کنید.
- Unrestricted: با تنظیم بودن این گزینه میتوان هر اسکریپتی را اجرا کرد و محدودیت خاصی از این بابت وجود ندارد.
چگونه تنظیمات امنیتی اجرای اسکریپت در پاور شل را تغییر دهیم؟
همان طور که در بالا اشاره شد امکان تعیین ۴ وضعیت برای اجرای اسکریپتها در پاور شل وجود دارد. به صورت پیشفرض نیز وضعیت Restricted فعال است و نمیتوان هیچ اسکریپتی را اجرا کرد. برای تغییر سیاستهای امنیتی در پاور شل باید مراحل زیر را دنبال کنید.
- در نخستین گام همانند تصویر زیر بر روی آیکون PowerShell کلیک راست کرده و گزینه Run as Administrator را انتخاب کنید.
- با باز شدن پاور شل دستورات زیر را به صورت پشت سر هم اجرا کنید.
- خروجی حاصل از اجرای دستورات بالا به صورت زیر خواهد بود.
در مثال بالا ابتدا با اجرای دستورGet-ExecutionPolicy سیاست امنیتی فعلی در پاور شل دریافت میشود. سپس، با اجرای دستورSet-executionpolicy unrestricted وضعیت به گونهای تنظیم خواهد شد که امکان اجرای هر گونه اسکریپتی وجود داشته باشد. در ادامه با وارد کردن کاراکترY تایید نهایی برای تغییر تنظیمات صورت خواهد گرفت. با اجرای مجدد دستورGet-ExecutionPolicy سیاست امنیتی فعال در حال حاضر نمایش داده خواهد شد.
نوشتن اسکریپت در پاور شل
برای نوشتن یک اسکریپت ساده در پاور شل کافی است تا برنامه Notepad ویندوز را باز کرده و عبارت زیر را درون آن قرار دهید.
فایلهای اسکریپت پاور شل دارای پسوند.ps1 هستند. بعد از نوشتن عبارت بالا کافی است تا فایل نهایی را با نامFirstScript.ps1 ذخیره کنید. برای اجرای این فایل باید دستور زیر را در محیط PowerShell وارد کنید.
PowerShell ISE چیست؟
ISE مخفف عبارت «محیط اسکریپت نویسی یکپارچه» (Integrated Scripting Environment | ISE) است و PowerShell ISE نیز ویرایشگر کد پیشفرض موجود در پاور شل است. در این ویرایشگر میتوان دستورات، تستها و اسکریپتهای اشکالزدایی را در یک محیط با رابط کاربری گرافیکی اجرا کرد. PowerShell ISE قابلیتهای متعددی همچون ویرایش چندخطی، اجرای انتخابی، برجستهسازی نحو و بسیاری از موارد دیگر را در اختیار کاربران قرار میدهد.
این ویرایشگر به توسعهدهندگان این امکان را میدهد تا دستورات را در یک پنل کنسول جداگانه اجرا کنند. علاوه بر این، PowerShell ISE از پنجرههای متعددی پشتیبانی میکند که میتوان از آنها برای مشاهده همزمان کد منبع اسکریپت و سایر ابزارهای مورد نیاز استفاده کرد. همچنین، میتوان در این ویرایشگر چندین پنجره مربوط به اسکریپتها را به صورت همزمان باز کرد که در زمان اشکالزدایی بسیار مفید است. تصویر زیر نمایی از محیط PowerShell ISE را نشان میدهد.
اجرای اسکریپت در PowerShell ISE
ایجاد اسکریپت و اجرای آن در محیط PowerShell ISE بسیار آسان است. برای این منظور کافی است تا کد مورد نظر خود را در محیط وارد کنید و پس از ذخیره کردن فایل اسکریپت از کلید F5 برای اجرای اسکریپت استفاده کنید. به عنوان مثالی دیگر قطعه کد زیر حافظه مجازی در دسترس سیستم را نشان خواهد داد.
تصویر زیر نحوه اجرا و خروجی حاصل از دستور بالا را در محیط PowerShell ISE نشان میدهد.
مزایای استفاده از اسکریپت های پاور شل چیست؟
استفاده از قابلیت اسکریپت نویسی در پاور شل مزایای بسیاری برای مدیران سیستم به همراه دارد. از جمله مهمترین مزایای اسکریپت نویسی در پاور شل به موارد زیر میتوان اشاره کرد.
- اسکریپتهای پاور شل بسیار قدرتمند هستند و تنها با چند خط میتوان کارهای بسیاری انجام داد.
- متغیرها به استفاده از کاراکتر$<variable> اعلان میشوند.
- میتوان از متغیرها برای ذخیره خروجی، دستورات، اشیا و سایر مقادیر دیگر استفاده کرد.
- نیاز به تعیین نوع متغیرها در اسکریپتهای پاور شل نیست.
منظور از cmdlet در پاور شل چیست؟
cmdlet یک دستور ساده در پاور شل است که یک تابع مشخص را اجرا میکند. در واقع، کاربران با نوشتن یک دستور ساده از نوع cmdlet در پاور شل میتوانند عملیات مورد نظر خود همچون نمایش یک فایل مشخص، اجرای برنامه یا حذف و بهروزرسانی یک نرمافزار را انجام دهند. PowerShell این cmdletها را در خط فرمان فراخوانی میکند.
پاور شل به صورت پیشفرض چندین دستور از نوع cmdlet را در اختیار کاربران قرار داده است. علاوه بر این، با توجه به متنباز بودن PowerShell کاربران با توجه به نیاز خود امکان ایجاد دستورات cmdlet جدید را نیز دارند. به عنوان مثال، مدیر یک شبکه میتواند برای راحتی کاربران خود دستورات cmdlet جدید ایجاد کرده و در اختیار آنها قرار دهد.
انواع دستورات cmdlet در پاور شل
cmdletها بخش بسیار مهمی در پاور شل محسوب میشوند و بیشتر توانایی و قابلیتهای پاور شل نیز به لطف وجود cmdletها است. برای نوشتن این دستورات باید از ترکیب فعل و اسم استفاده کرد. علاوه بر این، cmdletها برخلاف دستورات سنتی خط فرمان به جای متن اشیا را برمیگردانند. در واقع، cmdletها مجموعهای از دستورات هستند که در چند خط نوشته شدهاند و در یک فایل متنی با پسوند.ps1 ذخیره میشوند.
یک دستور cmdlet در پاور شل از ترکیب یک فعل و یک اسم تشکیل شده است که با خط فاصله از یکدیگر جدا شدهاند. برخی از فعلهای موجود در پاور شل عبارتنداز:
- Get: دریافت دستور
- Start: اجرای دستور
- Out: ارسال به خروجی
- Stop: متوقف کردن فایل یا برنامه در حال اجرا
- Set: تعریف کردن چیزی
- New: ایجاد کردن فایل یا برنامه جدید
در ادامه این بخش از نوشته پاور شل چیست چندین مثال کاربردی از پیادهسازی دستورات cmdlet در PowerShell آورده شده است.
مثال ساده از نوشتن دستور cmdlet در پاور شل
برای آشنایی با نحوه استفاده از cmdlet در پاور شل پیادهسازی و خروجی حاصل از اجرای دستور سادهGet-Date آورده شده است.
در مثال بالا اجرای دستورGet-Date با نمایش تاریخ و زمان فعلی سیستم همراه است. چند نکته مهم در خصوص اجرای قطعه کد بالا به شرح زیر است.
- دستورGeT-Date در مثال بالا به شکل ترکیبی از حروف بزرگ و کوچک نوشته شده است. با این وجود خروجی حاصل از اجرای دستور بدون مشکل خواهد بود. در نتیجه، این مورد نشان میدهد که cmdlet به حروف کوچک و بزرگ حساس نیست.
- تنها با زدن دکمه Enter دستور cmdlet نوشته شده در پاور شل اجرا خواهد شد. البته امکان ارسال پارامتر به cmdletها نیز وجود دارد.
- با اجرای دستور بالا تاریخ و زمان فعلی سیستم برگشت داده خواهد شد.
نحوه ارسال پارامتر به cmdlet چگونه است؟
امکان ارسال پارامتر به دستورهای cmdlet وجود دارد و میتوان با توجه به نیاز خروجی مورد نظر را دریافت کرد. قطعه کد زیر نحوه ارسال پارامتر به دستورGet-Date را نشان میدهد.
در مثال بالا با تعیین پارامتر-DisplayHint و ارسال مقدارDate به آن تنها بخش تاریخ از خروجی cmdlet نمایش داده خواهد شد.
دستور Get-Help در پاور شل
این دستور راهنماییها و اطلاعات لازم در خصوص دستورات موجود در پاور شل را ارائه میدهد. به عنوان مثال، برای دریافت اطلاعات در خصوص دستورFormat-Table باید قطعه کد زیر را در PowerShell وارد کرد.
دستور بالا اطلاعات کاملی در خصوص سینتکس، نحوه پیادهسازی، پارامترهای ورودی و خروجی دستورFormat-Table را نشان خواهد داد. خروجی حاصل از اجرای دستور بالا به صورت زیر خواهد بود.
دستور Get-Command در پاور شل
دستور Get-Command فهرست کاملی از تمام دستورات موجود در پاور شل و کاربرد هر کدام را نشان میدهد. برای دریافت فهرست تمام دستورات موجود در پاور شل باید قطعه کد زیر را وارد کنید.
دستور Get-Service در پاور شل
این دستور تمام cmdletهای موجود در پاور شل با کلمهservice را نشان میدهد. دستور زیر تمام سرویسهای شروع شده با عبارتvm را برمیگرداند.
خروجی حاصل از اجرای دستور بالا نیز به صورت زیر خواهد بود.
دستور Get Content در پاور شل
این دستور cmdlet میتوان یک فایل را دریافت کند و با پردازش محتویات آن عملیات مورد نظر کاربر را نیز بر روی آن انجام دهد.
نوع های داده موجود در پاور شل کدامند؟
همانند بسیاری از زبانهای برنامه نویسی رایج امکان تعریف انواع داده در پاور شل برای ذخیرهسازی مقادیر مختلف در متغیرها وجود دارد. آشنایی با نوعهای دادهای قابل استفاده در PowerShell به اسکریپت نویسی و خودکارسازی کارها از طریق این محیط کمک زیادی میکند. مهمترین نوع دادههای قابل استفاده در پاور شل به شرح زیر هستند.
- «عدد صحیح» (Integer)
- «عدد اعشاری» (Double)
- Date
- «بولی» (Boolean)
- Byte
- Char
- Decimal
- Long
- Object
- Short
- و سایر موارد
با توجه به انعطافپذیری بالای پاور شل امکان ترکیب نوعهای داده مختلف در این محیط وجود دارد. بنابراین، میتوان از متغیرهای بولی، آرایهها، اشیا و سایر نوع دادههای موجود در ترکیب با یکدیگر در PowerShell استفاده کرد. قطعه کد زیر مثالی از ترکیب نوع دادههای مختلف در پاور شل را نشان میدهد.
منظور از متغیرهای ویژه در پاور شل چیست؟
متغیرهای ویژه در پاور شل به آن دسته از متغیرهای از پیش تعریف شدهای گفته میشود که دارای معنای خاصی هستند. این متغیرها اطلاعاتی در خصوص محیط، دستورات و زمینه اجرای اسکریپتها ارائه میدهند.
متغیرهای ویژه به صورت خودکار توسط PowerShell ایجاد و مقداردهی میشوند. از جمله مهمترین کاربردهای متغیرهای ویژه میتوان به ذخیرهسازی نتایج، اطلاعات خطا و دادههای مربوط به «نشستها» (Sessions) اشاره کرد. در جدول زیر تعدادی از متغیرهای ویژه موجود در پاور شل به همراه کاربرد هر کدام ارائه شده است.
متغیر ویژه | کاربرد |
Error$ | آرایهای از اشیا است که جدیدترین خطاها را نمایش میدهد. |
Host$ | نام کامپیوتر میزبان فعلی را نمایش میدهد. |
Home$ | مسیر دایرکتوری اصلی کاربر فعلی را نشان میدهد. |
PID$ | شناسه فرایند در این متغیر ذخیره میشود. |
THIS$ | این متغیر ویژه در پاور شل به شی فعلی اشاره میکند. |
NULL$ | مقدار «تهی» (Null) را نشان میدهد. |
False$ | دارای مقدار false است. |
True$ | دارای مقدار true است. |
علاوه بر موارد ارائه شده در بالا متغیرهای ویژه دیگری نیز در پاور شل وجود دارد. این متغیرها طیف گستردهای از عملکردها را ارائه میکنند که میتوان از آنها در اسکریپت نویسی استفاده کرد. آشنایی با متغیرهای ویژه در PowerShell ضمن افزایش بهرهوری انجام فرایندها را نیز آسان میکند.
مزایای پاور شل چیست؟
گزینههای مختلفی برای انتخاب به عنوان رابط خط فرمان یا زبان اسکریپتی برای مدیران سیستم وجود دارد. سوالی که در این جا مطرح میشود این است که پاور شل چه ویژگیهایی دارد که برای خودکارسازی فرایندها و انجام کارهای روزانه در نظر گرفته میشود.
پاور شل به عنوان یک ابزار کاربردی مزایای متعددی دارد که آن را تبدیل به انتخاب اول مدیران سیستم کرده است. بر همین اساس در ادامه این بخش از نوشته مزایای مختلف پاور شل را مورد بررسی قرار خواهیم داد.
سیستم فرمت قابل توسعه
مدیران سیستم با استفاده از پاور شل میتوانند ورودی ارسالی را به هر شکلی قالببندی کنند و خروجی مورد نظر خود را دریافت کنند. ۳ روش مختلف برای قالببندی در PowerShell وجود دارد که کاربران با توجه به نیاز خود میتوانند از این روشها استفاده کنند. روشهای قالببندی موجود در پاور شل عبارتنداز:
- قالببندی گسترده: در این روش کاربر میتواند تنها یک ویژگی مشخص از یک شی را نمایش دهد. از این روش برای پر کردن ستونها در جدول یا ایجاد لیست میتوان استفاده کرد.
- قالببندی لیستی: در این روش کاربران میتوانند ویژگیهای یک شی را به صورت لیست نشان دهند که هر ویژگی در یک خط جدید نمایش داده میشود.
- قالببندی جدول: با استفاده از این روش قالببندی خروجی به صورت جدول خواهد بود. پارامترهایی همچونWrap ،Autosize وgroupby برای سازماندهی ستونهای جدول مورد استفاده قرار میگیرد.
پشتیبانی از فرمتهای داده
یکی دیگر از مزایای مهم PowerShell پشتیبانی از فرمتهای داده است که ذخیرهسازی و انتقال داده را بسیار آسان کرده است. فرمتهای پشتیبانی شده توسط پاور شل عبارتنداز:
- «مقادیر جدا شده با ویرگول» (Comma Separated Values | CSV)
- «نشانهگذاری شیء جاوا اسکریپت» (JavaScript Object Notation | JSON)
- «زبان نشانهگذاری توسعهپذیر» (Extensible Markup Language | XML)
در ادامه توضیح مختصری در خصوص هر کدام از فرمتهای پشتیبانی شده توسط پاور شل ارائه شده است.
فرمت CSV
یکی از فرمتهای داده پشتیبانی شده توسط پاور شل فرمت CSV است که دادههای جدول را به صورت متن ساده ذخیره میکند. در این فرمت هر فایل با علامت کاما از فایل دیگر جدا میشود.
فرمت JSON
فرمت دادهای جیسون از چندین جفت کلید و مقدار تشکیل میشود که امکان تبادل دادهها بین مرورگر و کلاینت را فراهم میکند. این نوع دادهای یک قالب استاندارد باز قابل خواندن برای انسان است. در صورت ارسال اطلاعات از مرورگر میتوان این اطلاعات را با استفاده از دستورهایInvoke-WebRequest وInvoke-RestMethod به دادههای پاور شل تبدیل کرد. پیشتر در مطلب زیر از مجله فرادرس فرمت دادهای جیسون به زبان ساده مورد بررسی قرار گرفته است.
فرمت XML
فرمت معروف و پرکاربرد XML نیز برای ماشین و انسان قابل خواندن است. از این فرمت برای دریافت اطلاعات از صفحه وب، ویرایش و ارسال مجدد آنها استفاده میشود. همچنین، این فرمت برای پیکربندی عملکرد برنامه در PowerShell نیز مورد استفاده قرار میگیرد.
سیستم نوع توسعه یافته
پاور شل با معرفی یک سیستم نوع توسعه یافته به توسعهدهندگان اسکریپت و cmdletها اجازه دستکاری اشیا مبتنی بر دات نت را میدهد. این سیستم برای دستکاری اشیا از شی PSObject به دو شکل استفاده میکند. در روش اول برای گسترش انواع شی و در روش دوم برای افزودن اعضا به یک شی موجود مورد استفاده قرار میگیرد.
موتور اسکریپت نویسی امن
PowerShell با ارائه قابلیت مدیریت پیکربندی امنیت کاربران خود را تضمین کرده است. این قابلیت به کاربران پاور شل امکان انتخاب اسکریپت مناسب از طریق نمای بصری را میدهد. اسکریپتهای مخرب از طریق نمای بصری قابل تشخیص نیستند. بنابراین، پاور شل سیاستهای امنیتی متعددی را برای این منظور فراهم کرده است. مدیران سیستم در پاور شل میتوانند تعیین کنند که چه فایلها یا اسکریپتهای اجرا شود. در نتیجه این امر امنیت کلی محیط PowerShell بهبود پیدا میکند.
توسعه سلف سرویس
یکی از مزایای جذاب پاور شل امکان توسعه cmdletها توسط کاربران است. کاربران PowerShell میتوانند با توجه به نیاز خود cmdletهای مد نظر خود را ایجاد کنند. به این امکان در اصطلاح «توسعه سلف سرویس» (Self-Service Development) گفته میشود. توسعه سلف سرویس از این جهت اهمیت دارد که کاربران میتوانند تمام ویژگیهای مورد نیاز خود را به محیط PowerShell اضافه کنند. وجود این قابلیت منجر به مدیریت بهتر و بهبود کیفیت محصول نهایی میشود.
اتوماسیون آسان
PowerShell به منظور خودکارسازی فرایندها دستورات ساده و تک عملکردی cmdlet را در اختیار کاربران خود قرار داده است. از دستورهای cmdlet میتوان جداگانه یا به صورت ترکیبی برای حل مسائل پیچیده استفاده کرد. پاور شل بیش از ۹۰ دستور cmdlet اصلی دارد که ایجاد cmdletهای بیشتر توسط توسعهدهندگان نیز امکانپذیر است. علاوه بر این، با توجه به متنباز بودن PowerShell توسعهدهندگان میتوانند cmdletهای توسعه داده شده توسط خود را با سایر کاربران نیز به اشتراک بگذارند. همین عامل سبب میشود تا توسعهدهندگان به سادگی بتوانند مسائل خود را حل کنند.
دسترسی آسان به اطلاعات
هر چند تمام رابطهای خط فرمان توانایی دسترسی به سیستم فایل کامپیوتر را دارند، اما PowerShell دسترسی به دادههای غیرقابل دسترسی را نیز فراهم میکند. دلیل این موضوع نیز مبتنی بر فریمورک دات نت بودن پاور شل است. این ویژگی منحصربهفرد به مدیران سیستم امکان دسترسی خودکار و کنترل از راه دور رایانههای شخصی ویندوزی در یک شبکه اشتراکی را میدهد. تنها با یک خط کد در رابط خط فرمان مدیران سیستم میتوانند به هر فایل سیستمی در شبکه دسترسی داشته باشند.
سازگاری با پلتفرمهای مختلف
پاور شل یک مدل ترکیبپذیری چند پلتفرمی عالی دارد که این محیط را به گزینهای ایدهآل برای چندین سرویس و محصول مختلف تبدیل کرده است. این مورد بدین معنا است که پاور شل میتواند در پلتفرمها و سرویسهای مختلف مورد استفاده قرار گیرد و تنها توسط یک مدیر سیستم کنترل شود. در نتیجه این امر PowerShell در شبکههای تشکیل شده از چندین سرویس مستقل و وابسته مانند یک شبکه اشتراکی بسیار کاربردی خواهد بود.
یادگیری شبکه های کامپیوتری با فرادرس
شبکههای کامپیوتری نقش بسیار مهمی در دنیای امروز ما دارند و بر جنبههای مختلف زندگی شخصی، کسبوکار، فناوری و سایر موارد دیگر تاثیر میگذارند. بنابراین، امروزه اهمیت شبکههای کامپیوتری بر کسی پوشیده نیست. بر همین اساس، یادگیری شبکههای کامپیوتری برای افراد فعال در حوزه فناوری و سایر افرادی که از فناوری در زندگی روزمره خود استفاده میکنند حیاتی است. اگر به حوزه شبکههای کامپیوتری علاقه دارید و به دنبال افزایش دانش و مهارت خود در این زمینه هستید، میتوانید از مجموعه فیلمهای آموزش شبکههای کامپیوتری فرادرس استفاده کنید که لینک آن در ادامه آورده شده است.
در این مجموعه ویدیوهای آموزشی متعددی مرتبط با مبحث شبکههای کامپیوتری منتشر شده است. برای شروع مسیر یادگیری خود در این حوزه میتوانید از فیلمهای آموزشی زیر استفاده کنید که در ادامه لینک تعدادی از آنها آورده شده است.
- فیلم آموزش شبکه چیست؟ - شبکه های کامپیوتری و انواع آنها فرادرس
- فیلم آموزش شبکه های کامپیوتری ۱ فرادرس
- فیلم آموزش کاربردی خط فرمان ویندوز CMD یا Command Prompt فرادرس
- فیلم آموزش ویندوز سرور - مدیریت شبکه های کامپیوتری با Windows Server 2016 فرادرس
جمعبندی
امروزه PowerShell تبدیل به گزینهای ایدهآل برای متخصصان فناوری اطلاعات شده است، زیرا چیزی بیش از قابلیتهای یک رابط خط فرمان را ارائه میدهد و مدیریت و اتوماسیون کارها را در مقیاس شبکههای بزرگ بسیار آسان میکند. تطبیقپذیری بالای پاور شل همراه با قابلیتهای متعدد آن در زمینه اتوماسیون آن را تبدیل به ابزاری ضروری در محیطهای مدرن مبتنی بر شبکههای کامپیوتری کرده است. با توجه به این که سازمانهای بزرگ برای افزایش بهرهوری خود به طور فزایندهای به اسکریپتنویسی و اتوماسیون نیاز دارند، بنابراین، تسلط بر PowerShell برای هر مدیر شبکه یا متخصص فناوری اطلاعات ضروری است. اگر به حوزه شبکههای کامپیوتری علاقه دارید و به دنبال شروع مسیر شغلی خود در این حوزه هستید، پیشنهاد میشود که از مجموعه آموزشهای شبکههای کامپیوتری فرادرس استفاده کنید که لینک آن در ادامه آورده شده است.
بر همین اساس در این مطلب از مجله فرادرس به این سوال پاسخ داده شد که پاور شل چیست و چه کاربردهایی دارد. علاوه بر این، نحوه عملکرد پاور شل، امکانات، قابلیتها و نحوه نصب و راهاندازی آن در این مطلب مورد بررسی قرار گرفت. همچنین، نحوه اسکریپت نویسی و مهمترین دستورات پاور شل نیز بررسی شد.