شاید تا به حال عبارت پاورشل به گوش شما هم خورده باشد اما به صورت دقیق ندانید که پاورشل چیست. ویندوز پاورشل (Windows PowerShell) یک ابزار قدرتمند برای خودکارسازی وظایف و سادهسازی پیکربندی است. پاورشل میتواند تقریباً برای خودکار کردن هر فرایندی در اکوسیستم ویندوز، از جمله دایرکتوری فعال و اکسچینج (exchange) استفاده شود. جای تعجب نیست که این ابزار به یک ابزار محبوب در بین کاربران با تجربه ویندوز تبدیل شده است.
استفاده از این ابزار از داخل اسکریپتها تنها با یک کلیک قابل اجرا است. در این مقاله به پاسخ به این سوال که «پاورشل چیست» میپردازیم، به شما نشان خواهیم داد که چگونه اسکریپتهای اولیه را در پاورشل نوشته و اجرا کنید و در نهایت به میزان زیادی در زمان خود صرفه جویی کنید.
پاورشل چیست؟
اگر میخواهید دقیقتر در مورد این که پاورشل چیست بدانید، باید بگوییم که پاورشل یک پوسته (یا شِل) اوپن سورس و زبان برنامه نویسی است که بر پایه فناوری دات نت مایکروسافت ساخته شده است. هدف آن کمک به متخصصانی در حوزه فناوری است که ممکن است توسعه دهندگان نرم افزار نباشند اما اسکریپتها و ابزارهای کارآمدی بسازند تا بتوانند کار خود را بهتر انجام دهند.
پاورشل که از زبانهایی مانند VBScript و فایلهای دستهای (batch files) تکامل یافته است، برای ارائه یک رابط خط فرمان درجه یک و زبان اسکریپت طراحی شده است که درک و استفاده از آن آسان است.
پاورشل شی گرا است و به شدت به آبجکتهای مشابه برنامه نویسی شی گرا (OOP) وابسته است. تقریباً همه چیز در پاورشل یک شی است.
پاورشل در واقع دو مفهوم دارد. یکی پوستهی خط فرمان است که به کاربران اجازه میدهد تا دستورات را در یک خط فرمان مشابه خط فرمان قدیمی ویندوز (cmd.exe) اجرا کنند. از طرف دیگر این فناوری یک زبان برنامه نویسی قوی است که میتواند ابزار بسازد و تقریباً هر چیزی که بتوانید فکرش را بکنید را خودکارسازی کند.
پاورشل که به صورت تعاملی یا در یک اسکریپت اجرا میشود، دستورات زیادی را تحت عنوان cmdlets و توابع آن ارائه میدهد. این دستورات یا به صورت باینری کامپایل شده یا کد سفارشی هستند که توسط کاربر نوشته شده است. در نتیجه میتواند یک فرایند یا فعالیت خاص مانند خواندن یک فایل، پینگ کردن یک کامپیوتر از راه دور و غیره را در بر بگیرد. حالا که به صورت حدودی متوجه شدیم که PowerShell چیست، زمان آن است که به نحوهی کار با این ابزار بپردازیم.
امکان استفاده از رابط خط فرمان پاورشل بر روی سرور مجازی ویندوز وجود دارد. برای بهرهمندی از مزایای متعدد این رابط خط فرمان در سرور مجازی خود همین حالا نسبت به تهیه یکی از پلنهای سرور مجازی ارزان مبین هاست اقدام نمایید.
نحوه کار پاورشل به چه صورت است؟
به طور کلی، پاورشل بیشتر شبیه یک زبان برنامه نویسی است تا یک رابط خط فرمان. زیرا بر پایه فریمورک دات نت ساخته شده است. پاورشل با اشیاء یا به قول برنامه نویسها آبجکتها کار میکند. در واقع، همه چیز در پاورشل یک شی است. این اشیاء نشان دهنده ویژگیها یا دستورالعملها هستند. حتی میتوان آنها را بهعنوان ورودی یا خروجی به طور پیوسته و از طریق برنامه ساخت. پاورشل اشیاء را با چهار نوع دستور مختلف دستکاری میکند که عبارتند از:
1. Cmdlet
Cmdlet ها که به صورت command-lets (کامَند لِتس) تلفظ میشوند، دستورات تک عملکردی پایهی پاورشل هستند. اگر پاورشل یک پاراگراف باشد، cmdlet ها حروف هر کلمه در هر بخش هستند. میتوان از آنها به تنهایی برای انجام یک تابع و ترکیب آنها برای انجام توابع مهمتر استفاده کرد. توجه داشته باشید که هر cmdlet همچنان به عنوان یک تابع مجزا برای کمک به خروجی cmdlet در تابع ترکیبی نیز کار میکند.
با این حال، cmdlet ها در پاورشل نوشته نمیشوند. آنها به زبان دیگری نوشته شده، کامپایل شده و در پاورشل در دسترس هستند. شاید برایتان سوال شود کاربرد Cmdlets در پاورشل چیست؟ Cmdlets یک دستور حیاتی در پاورشل است و محدودیت تابع آن به خلاقیت توسعه دهنده بستگی دارد. توسعه دهندگان و مهندسان ممکن است از “پایپها” یا pipe ها برای ارسال یک خروجی cmdlet به ورودی cmdlet دیگر به عنوان یک آبجکت استفاده کنند.
2. Functionها در پاورشل
توابع یکی از دستورات پرکاربردی هستند که برای اجرای کدها در پاورشل استفاده میشود. برخلاف cmdlet ها، توابع به زبان پاورشل نوشته میشوند. توابع در واقع مجموعهای از دستورالعملها هستند و باید صرفاً با فراخوانی به آنها دسترسی پیدا کرد. ورودی آن پارامتر است، اما خروجی آنها میتواند روی صفحه کاربر ظاهر شود یا به یک تابع یا ورودی cmdlet دیگر منتقل شود.
دو نوع تابع در پاورشل وجود دارد: توابع پایه و توابع پیشرفته. تابع پایه سادهترین شکل تابع مورد استفاده در پاورشل است. در توابع پایه، هیچ کدام از ویژگیهای داخلی مربوط به ویژگیهای وراثتی وجود ندارد. فقط مجموعهای از کروشههای حاوی بدنهی تابع وجود دارد. توابع پیشرفته توابعی هستند که دارای ویژگیهای یک تابع اصلی به عنوان هستهی عملکردی آن است. همچنین دارای ویژگیهای اضافی نیز هستند.
این توابع دارای ویژگیهای داخلی هستند که به آن عملکرد بیشتری میدهد.
3.اسکریپتهای پاورشل
اسکریپتهای پاورشل با cmdlet نوشته میشوند. این اسکریپتها برای ایجاد اتوماسیون برای کارهای مختلف استفاده میشوند. سه نوع دستور در اسکریپت پاورشل وجود دارد. دستور “get” اولین دستوری است که برای بازیابی دادهها از یک فایل استفاده میشود. دستور “set” برای ویرایش اطلاعات اجزای ویندوز استفاده میشود. این ویژگی شامل تخصیص خواص به اجزای مختلف است. دستور “delete” برای حذف کامل یک عملیات استفاده میشود. اسکریپتهای پاورشل پیچیدگی کد را در هنگام نوشتن کدها و همچنین در زمان استفاده از سایر کاربردهای این ابزار کاهش میدهند.
4. دستورات اجرایی
دستورات اجرایی دستوراتی هستند که در زمان استفاده از فایلهای اجرایی استفاده میشوند. فایلهای اجرایی دارای پسوند exe هستند و جزء نرم افزارهای مایکروسافت ویندوز هستند. در اجرای فایلهای exe از سه دستور استفاده میشود. اولین مورد با دستور “Invoke-expression” است. این بدون شک محبوبترین روش اجرای این فایلها است.
فرمان دوم start-process است. این دستور بیش از یک فرآیند را در دستگاه شما شروع میکند اما همان نتیجه دستور اول را میدهد. گزینه سوم عبارت است از تایپ “.\” قبل از نام فایل. این ساده ترین روش است. اما همه گزینههای جایگزین فایل exe را اجرا میکنند.
دلایل اهمیت استفاده از پاورشل چیست؟
همانطور که گفته شد، پاورشل دو عملگر یا تابع دارد. با این حال، دو تابع اصلی پاورشل مدالیتههای بیشتری را تعبیه میکنند. این مدالیتهها (یا کاربردها) دلایل محبوبیت روزافزون پاورشل هستند. در ادامه به پاسخ این سوال خواهیم پرداخت که علت محبوبیت پاورشل چیست؟
1. فعالسازی اتوماسیون یا خودکارسازی
اولین مورد از دلایل محبوبیت پاورشل، اتوماسیون وظایف در DevOps است. به عنوان یک زبان برنامه نویسی، پاورشل عمدتا برای ایجاد اتوماسیون استفاده میشود. اتوماسیون تمامی موارد استفاده از پاورشل را در بر میگیرد. اتوماسیونها بر روی سایر زبانهای اسکریپت نویسی انجام میشوند. اما در پاورشل به دلیل سیستم فرمت منحصر به فردش کارایی منحصر به فردی دارد. پاورشل گزینه بهتری است زیرا برنامه با توابع، کلاسها، cmdlet ها و ماژولها قابل توسعه است.
2. دسترسی به دادههای محرک
یکی دیگر از دلایل محبوبیت پاورشل دسترسی به دادهها است. بخش قابل توجهی از کاربردهای پاورشل فعالیتهای اداری است. در شبکههای بزرگ کامپیوتری، بسیاری از سرویسها به طور مستقل کار میکنند و توسط یک ادمین مرکزی IT کنترل میشوند. پاورشل به ادمین فناوری اطلاعات دسترسی به فروشگاههای دادهی مختلف خدمات شبکه مانند سیستمهای فایل یا رجیستریها را ارائه میدهد. اگر شما هم برای شبکهی خود نیاز به سرور مجازی ویندوز دارید، میتوانید از این قسمت سرور مجازی مد نظر خود را تهیه کنید.
3. مدیریت “زیرساخت به عنوان کد”
به عنوان دلیل سوم محبوبیت پاورشل، این ابزار از یک چارچوب مدیریتی استفاده میکند که کاربران را قادر میسازد زیرساخت شرکت خود را با پیکربندی به صورت یک کد مدیریت کنند. این فریم ورک پیکربندی حالت مطلوب (DSC) نامیده میشود. مدیران یا ادمینهای فناوری مهارتهای کار با پاورشل را کسب میکنند تا بدانند چگونه از مدلهای پیکربندی در پاورشل استفاده کنند. آنها همچنین به این مهارتها برای اعمال تنظیمات پیکربندی، دستیابی به تکرارپذیری و ایجاد پیکربندیهای مد نظر نیاز دارند.
4. تسهیل دستورات از راه دور
در نهایت، پاورشل به دلیل توانایی خود در تسهیل اجرای فرامین از راه دور، دارای نرخ پذیرش گسترده و محبوبیت است. دستورات از راه دور، ابزار جدیدی است که باعث گسترش محبوبیت کار از راه دور یا اصطلاحا ریموت میشود. با استفاده از پاورشل، مدیران میتوانند عملیات مد نظر خود را از راه دور در چندین سیستم پیاده سازی کنند. این کار از طریق ابزار دقیق مدیریت ویندوز و پروتکل مدیریت WS امکان پذیر است.
مزایای اصلی خط فرمان پاورشل چیست؟
پاورشل شامل طیف گستردهای از ویژگیها است که آن را به ابزاری قدرتمند برای مدیریت سیستمهای ویندوز تبدیل میکند. برخی از این ویژگیهای کلیدی در ادامهی این مطلب برای شما ارائه شده است:
خروجیهای مبتنی بر شیء پایه
پاورشل از خروجیهای مبتنی بر شی استفاده میکند. این بدان معنی است که دستورات و اسکریپتها خروجی ساختار یافتهای تولید میکنند که میتواند به راحتی توسط دستورات یا اسکریپتهای دیگر دستکاری و پردازش شود. این امر باعث میشود تا کارها به صورت خودکار انجام شوند و عملیات پیچیده بر روی سیستم ویندوز شما انجام شود.
اسکریپت نویسی قدرتمند پاورشل
پاورشل شامل یک زبان برنامه نویسی قدرتمند است که به شما امکان میدهد کارهای پیچیده را خودکار کنید و عملیاتی را انجام دهید که انجام آنها با کامند پرامپت (Command Prompt) دشوار یا غیرممکن است. اسکریپتهای پاورشل با یک سیستم ساده و در عین حال قدرتمند نوشته شدهاند که برای هر کسی که دانش اولیهای از برنامه نویسی دارد به راحتی قابل درک و تغییر است.
طیف وسیعی از دستورات داخلی
پاورشل شامل مجموعهای جامع از دستورات داخلی است که به عنوان cmdlet شناخته میشوند. این دستورات به شما امکان میدهد تقریباً تمام جنبههای سیستم ویندوز خود را مدیریت کنید. Cmdlet ها به گونهای طراحی شدهاند که استفاده از آنها آسان باشد. همچنین میتوان آنها را با cmdlet های دیگر ترکیب کرد تا اسکریپتهای قدرتمندی ایجاد کند.
طراحی ماژولار
پاورشل شامل یک طراحی ماژولار است که به شما امکان میدهد با نصب و استفاده از ماژولها دایره عملکرد آن را گسترش دهید. ماژولها مجموعهای از cmdlet های مرتبط و همچنین سایر منابع هستند که عملکرد گستردهای را ارائه میدهند. این ماژولها به گونهای طراحی شدهاند که استفاده از آنها آسان باشد.
مدیریت از راه دور
پاورشل شامل قابلیتهای قدرتمند مدیریت از راه دور است که به شما امکان میدهد چندین سیستم ویندوز را از یک مکان واحد مدیریت کنید. میتوانید از پاورشل برای اتصال به سیستمهای مدیریت از راه دور و اجرای دستورات و اسکریپتها بر روی آنها استفاده کنید. در نتیجه این ابزار مدیریت استقرار ویندوز در مقیاس بزرگ را آسان میکند.
پشتیبانی میان پلتفرمی
پاورشل به سیستم عامل ویندوز محدود نمیشود. این ابزار اکنون برای macOS و Linux نیز در دسترس است و آن را به ابزاری همه کاره برای مدیریت سیستمها در پلتفرمهای مختلف تبدیل میکند.
قابلیت ادغام با سایر محصولات مایکروسافت
پاورشل با بسیاری از محصولات دیگر مایکروسافت از جمله اکتیو دایرکتوری (Active Directory)، اکسچینچ سرور (Exchange Server)، شِیر پوینت (SharePoint) و سیستم سنتر (System Center) یکپارچه میشود. این ویژگی به شما امکان میدهد تا با استفاده از دستورات و اسکریپتهای پاورشل، این محصولات را مدیریت کنید.
مقایسه پاورشل و CMD
پاورشل در واقع جایگزینی برای Command Prompt سنتی در ویندوز است. در حالی که کامند پرامپت هنوز در نسخههای مدرن ویندوز موجود است، فاقد ویژگیها و قابلیتهای پیشرفتهی پاورشل است.
یکی از تفاوتهای اصلی بین پاورشل و کامند پرامپت این است که پاورشل از خروجی مبتنی بر شی استفاده میکند، در حالی که Command Prompt از خروجی مبتنی بر متن استفاده می کند. این بدان معنی است که دستورات و اسکریپتهای پاورشل خروجی ساختار یافته ای تولید میکنند که میتواند به راحتی توسط دستورات یا اسکریپتهای دیگر دستکاری و پردازش شود. در مقابل، خروجی تولید شده توسط Command Prompt اغلب به سختی قابل تجزیه و دستکاری است.
یکی دیگر از تفاوتهای کلیدی بین پاورشل و کامند پرامپت این است که پاورشل شامل یک زبان برنامه نویسی قدرتمند است، در حالی که Command Prompt این ویژگی را ندارد. این بدان معنی است که اسکریپتهای پاورشل میتوانند فرایندهای پیچیده را خودکار کرده و عملیاتی را انجام دهند که انجام آنها با Command Prompt دشوار یا غیرممکن است.
پاورشل همچنین شامل طیف گستردهای از دستورات و ماژولهای داخلی است که به شما امکان میدهد تقریباً تمام جنبههای سیستم ویندوز خود را مدیریت کنید. این دستورات و ماژول ها به گونه ای طراحی شدهاند که استفاده از آنها آسان باشد و میتوان آنها را با دستورات و ماژولهای دیگر ترکیب کرد تا اسکریپتهای قدرتمندی ایجاد کند.
به طور کلی، در حالی که Command Prompt هنوز کاربردهای خود را دارد، پاورشل ابزار قدرتمندتر و انعطاف پذیرتری برای مدیریت سیستمهای مبتنی بر ویندوز است.
شروع به کار با پاورشل
راههای مختلفی برای شروع کار با پاورشل وجود دارد و اگر از قبل از سیستم عامل ویندوز استفاده کنید، این فرآیند بسیار آسانتر است. ویندوز 11 دارای برنامه پاورشل است که در خود سیستم عامل تعبیه شده و با تایپ کردن در نوار جستجو میتوان به آن دسترسی داشت. مدیران فناوری اطلاعات همچنین میتوانند پلتفرم پاورشل Integrated Scripting Environment (ISE) را بررسی کنند که میتوانید آن را جداگانه نصب کنید.
پاورشل ISE یک برنامه رابط کاربری گرافیکی است که بررسی، اشکال زدایی و اجرای اسکریپتها را بدون وارد شدن به پیچیدگیهای کد آسانتر میکند. با افزایش محبوبیت این ابزار، دانستن نحوهی کار با پاورشل میتواند به ساده سازی وظایف IT و DevOps و کاهش وابستگی به ابزارهای شخص ثالث برای کنترل بیشتر کمک کند.
سوالات متداول
رابط خط فرمان پاورشل چیست و چه تفاوتی با Command prompt دارد؟
Command Prompt یک رابط خط فرمان است که برای اجرای دستورات و انجام وظایف در سیستمهای ویندوز استفاده میشود. پاورشل یک رابط خط فرمان قدرتمندتر است که شامل طیف گستردهای از دستورات و ماژولهای داخلی است. Command Prompt برای کارهای ساده مناسب است، در حالی که پاورشل برای کارهای پیچیدهای که نیاز به اتوماسیون و اسکریپت دارند مناسبتر است.
آیا برای کار با پاورشل به دانش برنامهنویسی نیاز دارم؟
داشتن تجربه در برنامه نویسی میتواند مفید باشد، اما برای استفاده از پاورشل ضروری نیست. سینتکس پاورشل به گونهای طراحی شده است که به راحتی قابل یادگیری و درک باشد؛ حتی برای افرادی که به صورت تخصصی برنامه نویس محسوب نمیشوند.
کدام سیستم عاملها از پاورشل پشتیبانی میکنند؟
پاورشل در سیستم عاملهای ویندوز با شروع Windows 7 SP1 و Windows Server 2008 R2 SP1 تعبیه شده است. همچنین برای macOS و Linux نیز موجود است.
آیا میتوان از پاورشل برای مدیریت سیستمهای ریموت استفاده کرد؟
بله، پاورشل دارای قابلیتهای قدرتمند مدیریت از راه دور است که به شما امکان میدهد چندین سیستم ویندوز را از یک مکان واحد مدیریت کنید. میتوانید از PowerShell برای اتصال به سیستمهای راه دور و اجرای دستورات و اسکریپتها بر روی آنها استفاده کنید و مدیریت استقرار ویندوز در مقیاس بزرگ را آسان میکند.
یک پاسخ
سلام خسته نباشید ممنون از مقاله بسیار آموزنده تان