پاورشل یا PowerShell چیست و چه کاربردهایی دارد؟
پاورشل یک ابزار منبع باز و مبتنی بر رابط خط فرمان (CLI) است که به توسعه دهندگان، مدیران فناوری اطلاعات و متخصصان DevOps اجازه می دهد تا تسک ها و تنظیمات را با استفاده از کد نویسی خودکار کنند. در این پست ابتدا شما را با PowerShell آشنا می کنیم، سپس به بیان کاربرد ها و مزایای آن می پردازیم.
PowerShell چیست؟
PowerShell یک ابزار منبع باز و مبتنی بر رابط خط فرمان (CLI) است که به توسعه دهندگان، مدیران فناوری اطلاعات و متخصصان DevOps اجازه می دهد تا وظایف و تنظیمات را با استفاده از کد خودکار کنند. پاورشل یک ویژگی دو منظوره است که بر اساس فناوری Microsoft.NET ساخته شده است. چرا که PowerShell می تواند هم به عنوان یک پوسته منبع باز و همچنین به عنوان یک زبان برنامه نویسی استفاده شود.
در پاورشل به عنوان یک پوسته برای کنترل رایانه با دستورات، از یک رابط خط فرمان مربوط به سیستم عامل استفاده می شود. رابط خط فرمان یکی دیگر از اولویت های ارتباط متقابل به غیر از رابط کاربری گرافیکی (GUI) است که برای انتقال دستورات از کاربر به سیستم عامل استفاده می شود.
با این عملکرد پوسته، می توان از پاورشل برای خودکارسازی فرآیندهایی که نیاز به تکرار دارند استفاده کرد. این عملکرد کار را آسان تر می کند و احتمال خطا را کاهش می دهد. علاوه بر این، هر خط فرمان را می توان به راحتی هر زمان که لازم باشد بازتولید کرد زیرا همیشه بلافاصله ذخیره می شوند.
به عنوان یک زبان برنامه نویسی، پاورشل شکلی از زبان برنامه نویسی است که برای ارسال دستورالعمل ها از یک نرم افزار والد به نرم افزار دیگر استفاده می شود. بر خلاف سایر زبان های برنامه نویسی مانند Ruby، Python و غیره، زبان های برنامه نویسی مانند PowerShell به طور متفاوتی برای کد ماشین تفسیر می شوند.
دستورات پاورشل به جای کامپایلر، خط به خط با یک مفسر تفسیر می شوند. این ویژگی امکان بهبود عملکرد نرم افزار مادر، خودکارسازی وظایف، استخراج داده ها از مجموعه داده ها، پیکربندی مدیریت و غیره را فراهم می کند.
PowerShell چگونه کار می کند؟
به طور کلی، پاورشل بیشتر شبیه یک زبان برنامه نویسی است تا یک برنامه خط فرمان، زیرا بر روی چارچوب Net. ساخته شده است. در واقع، همه چیز در PowerShell یک شی است. این اشیاء نشان دهنده ویژگی ها یا دستورالعمل ها هستند. حتی میتوان آن ها را به عنوان ورودی یا خروجی از طریق برنامه بطور پیوسته ساخت. PowerShell اشیاء را با چهار نوع دستور مختلف تغییر می دهد که عبارتند از:
1. Cmdlet
Cmdlet دستو تک عملکردی پایه PowerShell است. به طور مثال، اگر PowerShell یک پاراگراف باشد، cmdlet ها حروف هر کلمه هستند. می توان از آن ها به تنهایی برای انجام یک عملکرد استفاده کرد و از ترکیب آن ها برای انجام عملکرد های مهم تر استفاده کرد. توجه داشته باشید که هر cmdlet همچنان به عنوان یک تابع مجزا برای کمک به خروجی cmdlet در تابع ترکیبی کار می کند.
با این حال، cmdlet ها در پاورشل نوشته نمی شوند. آن ها به زبان دیگری نوشته شده، کامپایل شده و در PowerShell در دسترس هستند. Cmdlets یک دستور حیاتی در PowerShell است زیرا محدودیت عملکرد آن ها به خلاقیت توسعه دهنده بستگی دارد. توسعه دهندگان و مهندسان DevOps ممکن است از Pipe برای ارسال یک خروجی cmdlet به ورودی cmdlet دیگر به عنوان یک شی استفاده کنند.
2. توابع PowerShell
توابع برای اجرای کد ها در PowerShell استفاده می شود. برخلاف cmdlet ها، توابع به زبان پاورشل نوشته می شوند. توابع دنباله ای از دستورات هستند که توسط زبان پاورشل نوشته و فراخوانی می شوند. ورودی توابع پارامتر است، اما خروجی می تواند روی نمایشگر کاربر ظاهر شود یا به یک تابع یا ورودی cmdlet دیگر منتقل شود.
دو تابع در پوسته پاورشل وجود دارد:
- تابع پایه: این نوع تابع ساده ترین شکل تابع مورد استفاده در PowerShell است. همچنین توابع پایه، امکان ارث بری ندارند. فقط مجموعه ای از براکت های حاوی بدنه تابع وجود دارد.
- تابع پیشرفته: توابع پیشرفته توابعی هستند که دارای ویژگی های یک تابع پایه هستند، اما ویژگی های اضافی دیگری نیز دارند. به علاوه این توابع دارای ویژگی های داخلی نیز هستند که به کاربران اجازه دسترسی به عملکرد های تخصصی را می دهد.
3. اسکریپت های PowerShell
اسکریپت های PowerShell با cmdlet نوشته می شوند. این اسکریپت ها جهت ایجاد اتوماسیون برای کار های مختلف استفاده می شوند. سه نوع دستور در اسکریپت PowerShell وجود دارد:
- دستور “get” اولین دستوری است که برای بازیابی داده ها از یک سیستم فایل استفاده می شود.
- دستور “set” برای ویرایش اطلاعات اجزای ویندوز استفاده می شود که شامل تخصیص خواص به اجزای مختلف نیز می شود.
- دستور “remove” برای حذف کامل یک دستور استفاده می شود.
اسکریپت های پاورشل پیچیدگی کد را در هنگام نوشتن کد ها و سایر موارد استفاده از اتوماسیون کاهش می دهند.
4. دستورات اجرایی
- دستورات اجرایی دستوراتی هستند که در اجرای فایل های اجرایی استفاده می شوند. فایل های اجرایی دارای پسوند exe هستند و جزو نرم افزار های ویندوز مایکروسافت هستند. در اجرای فایل های exe از سه دستور استفاده می شود:
- استفاده از دستور “Invoke-expression” که محبوب ترین روش اجرای این فایل ها است.
- دستور “cmdlet start-process” بیش از یک فرآیند را در دستگاه شما شروع می کند اما همان نتیجه دستور اول را می دهد.
- آخرین دستور تایپ دستور “.\” قبل از نام فایل است. این روش ساده ترین روش است، اما همه گزینه های جایگزین، فایل exe را اجرا می کند.
چرا از PowerShell استفاده می شود؟
همان طور که گفته شد، پاورشل یک ویژگی دو عملکردی است. با این حال، دو عملکرد اصلی PowerShell کاربرد های بیشتری را تعبیه میکنند که همین کاربرد ها دلایل محبوبیت روزافزون PowerShell هستند. اما دیگر کاربرد های پاورشل شامل چه مواردی می شود؟
1. اتوماسیون تسک ها
اولین کاربرد پاورشل اتوماسیون وظایف در DevOps است. به عنوان یک زبان برنامه نویسی، PowerShell عمدتا برای ایجاد اتوماسیون استفاده می شود. اتوماسیون تمامی موارد استفاده از پاورشل را در بر می گیرد. اتوماسیون ها بر روی سایر زبان های اسکریپت نویسی انجام می شوند، اما بیشتر در PowerShell، به دلیل سیستم فرمت منحصر به فرد، زیرا برنامه با توابع، کلاس ها، cmdlet ها و ماژول ها قابل توسعه است.
2. دسترسی آسان به داده ها
یکی دیگر از دلایل محبوبیت پاورشل دسترسی آسان به داده هاست. بخش قابل توجهی از موارد استفاده از PowerShell فعالیت های اداری است. در شبکه های کامپیوتری بزرگ، بسیاری از سرویس ها به طور مستقل کار می کنند و توسط یک ادمین مرکزی کنترل می شوند. PowerShell به ادمین فناوری اطلاعات دسترسی آسان به فروشگاه های داده های مختلف خدمات شبکه مانند سیستم های فایل یا رجیستری ها را ارائه می دهد.
3. مدیریت زیرساخت به عنوان کد
PowerShell از یک چارچوب مدیریتی استفاده می کند که کاربران را قادر می سازد زیرساخت شرکت خود را با پیکربندی به عنوان یک کد، مدیریت کنند. این فریم ورک DSC نامیده می شود. مدیران یا ادمین های فناوری اطلاعات مهارت های پاورشل را به دست میآورند تا بدانند چگونه مدل های پیکربندی را در پاورشل تغییر دهند.
4. تسهیل استفاده از دستورات Remote
در نهایت، پاورشل به دلیل توانایی آن در تسهیل استفاده از فرمان های Remote، دارای چنین نرخ پذیرش گسترده و مورد استفاده ای است. استفاده Remote، نرم افزار یا ابزار جدیدی است که محبوبیت پاورشل را بیشتر می کند. با PowerShell، مدیران می توانند عملیات مورد نظر خود را از راه دور روی چندین سیستم انجام دهند. این کار از طریق ابزار دقیق مدیریت ویندوز و پروتکل مدیریت WS امکان پذیر است.
10 مزیت برتر PowerShell
پلتفرم های زیادی وجود دارد، اما PowerShell مزایایی دارد که آن را از سایر پلتفرم ها متمایز می کند، در ادامه به بیان 11 مزیت برتر پاورشل می پردازیم، هرچند که تا اینجای کار هم باتوجه به اطلاعاتی که در خصوص PowerShell کسب کردید به برتری این پلتفرم محبوب پی برده اید.
1. قالب های توسعه پذیر
با استفاده از PowerShell، کاربر میتواند ورودی خود را بر اساس قالب بندی های مختلف تنظیم کند و هر طور که میخواهد خروجی بگیرد. پاورشل سه روش قالب بندی را ارائه می دهد:
- Format Wide: در این روش کاربر می تواند تنها یک ویژگی از یک شی را نمایش دهد که می توان از این برای پر کردن ستون ها در جدول یا ایجاد فهرست استفاده کرد.
- Format-list: این روش به کاربران این امکان را می دهد که خصوصیات اشیاء را به صورت فهرست، با هر ویژگی در یک خط جدید نمایش دهند.
- Format-Table: این روش ارائه خروجی به صورت جدول را برای کاربران آسان می کند. پارامترهایی مانند “Autosize”، “wrap” و “groupby” برای سازماندهی ستون های جدول در این فرمت وجود دارد.
2. فرمت های داده داخلی
PowerShell فرمت های داده متنوعی پشتیبانی میکند، که میتوان از آن برای ذخیره و انتقال داده ها استفاده کرد و داده ها را قابل خواندن برای انسان و ماشین کرد. این فرمت های داده عبارتند از مقادیر جدا شده با کاما (CSV)، نمادگذاری شی جاوا اسکریپت (JSON) و زبان نشانهگذاری توسعهپذیر (XML).
فرمت CSV یک فرمت داده داخلی است که داده های جدول را به صورت متن ساده ذخیره می کند. در این فرمت هر فایل با کاما از فایل دیگر جدا می شود.
فرمت JSON برای ارتباط فوری بین مرورگر و Client استفاده می شود. این یک فرمت استاندارد باز و همچنین یک فرمت قابل خواندن برای انسان است. اگر اطلاعات از مرورگر داده شود، اطلاعات را می توان با استفاده از دستورات “Invoke-WebRequest” یا “Invoke-RestMethod” به داده های PowerShell تبدیل کرد.
فرمت XML نیز برای ماشین و انسان قابل خواندن است. این فرمت برای بهدست آوردن داده ها از صفحه وب و ویرایش و ارسال مجدد آنها و همچنین پیکربندی عملکرد برنامه در PowerShell کاربرد دارد.
3. ETS
قابلیت ETS در پاورشل وجود دارد که توسعه دهندگان اسکریپت و cmdlet می توانند از آن برای تغییر اشیاء Net. استفاده کنند. این کار با استفاده از شی PSObject انجام می شود. می توان از شیء PSObject برای گسترش انواع شیء به دو صورت استفاده کرد.
- در روش اول، شی PSObject نما های مختلفی از شی خاص را نشان می دهد. به این دیدگاه تطبیقی گفته می شود.
- در روش دوم، شی PSObject ابزاری برای اضافه کردن اعضا به یک شی موجود فراهم می کند. این اعضای جدید با دادن اطلاعات اضافی که می تواند در اسکریپت نویسی مفید باشد، شیء اولیه ای که روی آن کار می شود را گسترش می دهند.
4. موتور برنامه نویسی امن
PowerShell با ویژگی مدیریت پیکربندی، امنیت را در اختیار کاربر قرار می دهد. این ویژگی به کاربران اجازه می دهد تصمیم بگیرند که کدام اسکریپت ها را از طریق بررسی دیداری اجرا کنند. با توجه به اینکه اسکریپت های مخرب به سختی از نظر بصری مورد توجه قرار می گیرند، سیاست های امنیتی خودکار برای کمک به کاربران وجود دارد.
پاورشل از یک سیاست اجرا به عنوان یکی از استراتژی های امنیتی خود استفاده می کند. این سیاست اجرا شرایطی را تعیین میکند که تحت آن پاورشل فایل ها و اسکریپت های پیکربندی شده را اجرا می کند. این سیاست در پلتفرم ویندوز استفاده میشود، اما میتواند در رایانه ها و دستگاه های مختلف با تنظیم سیاست گروه تنظیم شود.
با این حال، این سیاست تنها زمانی فعال است که کاربر بخواهد. هنگامی که PowerShell فعال می شود، فقط اسکریپت هایی را اجرا می کند که با یک نام قابلیت شناسایی داشته باشند. این یک انتخاب منصفانه در برابر اجرای اسکریپت های مخرب در رایانه شما است که ممکن است به تهدید های سایبری اجازه ورود دهد.
5. API سازگار
API هایی مانند (WMI) و (COM) که در ویندوز مورد استفاده قرار می گیرند ناسازگار یا ناقص هستند. این باعث می شود آنها در نقل و انتقال درخواست ها به مرورگر نا کارآمد باشند. با این حال، پاورشل API های 100 درصد جامع و سازگار دارد که اشخاص از آن استفاده می کنند. این یکی از بزرگترین مزیت های پاورشل نسبت به دیگر پلتفرم هاست.
6. اتوماسیون آسان
پاورشل از ابزار ساده و تک عملکردی command-lets برای پیاده سازی وظایف استفاده می کند. به عنوان یک ابزار تک کاره، cmdlet ها را می توان به طور جداگانه یا ترکیبی برای حل تسک های پیچیده استفاده کرد. PowerShell با بیش از نود cmdlet اصلی عرضه می شود. در صورت نیاز می توان cmdlet های بیشتری توسط توسعه دهنده ایجاد کرد. همچنین می توانید این cmdlet های توسعه یافته را با سایر کاربران به اشتراک بگذارید زیرا PowerShell یک پلتفرم منبع باز است. این امر باعث می شود توسعه دهندگان بتوانند اتوماسیونی برای تسک های تکراری ایجاد کنند. دانش ساخت این cmdlet ها به توسعه دهنده برتری بیشتری نسبت به دیگران می دهد. این مزیت PowerShell باعث میشود که کاربران آن در تنظیمات مختلف انتخاب حرفهای داشته باشند.
7. ترکیب محصول
PowerShell دارای یک مدل ترکیب پذیری بین محصولی عالی است که آن را برای چندین سرویس و محصول مناسب میکند. این بدان معناست که PowerShell می تواند برای سرویس های مختلف استفاده شود و همچنان توسط یک مدیر فناوری اطلاعات کنترل شود. این باعث می شود که PowerShell در شبکه هایی که سرویس های مختلف وابسته یا مستقل از یکدیگر هستند، مانند یک شبکه شرکتی، کاربردی باشد.
8. دسترسی آسان به اطلاعات
اگرچه تمام خطوط فرمان می توانند به فایل های کامپیوتر دسترسی داشته باشند، اما PowerShell می تواند دسترسی به داده های غیرقابل دسترسی را نیز فراهم کند. این به این دلیل است که PowerShell بر روی چارچوب Microsoft.NET ساخته شده است. این ویژگی منحصر به فرد به متخصصان فناوری اطلاعات امکان دسترسی خودکار و کنترل از راه دور هر رایانه شخصی ویندوزی در یک شبکه شرکتی را می دهد. با یک خط کد، مدیران فناوری اطلاعات میتوانند روی هر فایل سیستمی در شبکه خود دید و کنترل داشته باشند.
9. مدیریت شبکه شرکتی
PowerShell دستورات مدیریتی مفید زیادی دارد. به طور مثال یکی از گزینه های موجود در پورتال وب مدیریت این است که همه کاربران به طور مرتب رمز عبور را تغییر دهند یا اینکه هیچ کاربری رمز عبور خود را نتواند تغییر دهد. با استفاده از PowerShell، یک مدیر فناوری اطلاعات میتواند یک سیستم احراز هویت دو مرحلهای (2FA) بسازد تا از تغییر منظم رمز عبور توسط کاربران جلوگیری کند.
10. بینش در مورد آزمون های گواهینامه مایکروسافت
در حالی که بسیاری ممکن است این را یک مزیت در نظر نگیرند، برای برخی همچنان یک مزیت بزرگ است. مایکروسافت اخیراً سؤالات مربوط به PowerShell را به امتحانات گواهینامه خود اضافه کرده است. اگرچه ممکن است نیازی به دانستن سینتکس کامل هر دستور نباشد، اما باید بتوانید از دستورات مختلف استفاده کنید. بنابراین برای کسانی که قصد دارند در آزمون گواهی مایکروسافت آژور شرکت کنند، استفاده از PowerShell نسبت به سایر برنامه ها می تواند انتخاب بهتری باشد.
شروع کار با PowerShell
راه های مختلفی برای شروع کار با PowerShell وجود دارد. حال اگر از قبل از سیستم عامل ویندوز استفاده کرده باشید، این فرآیند بسیار آسان تر است. ویندوز 11 دارای برنامه PowerShell است که در سیستم عامل تعبیه شده است که با تایپ کردن در نوار جستجو می توان به آن دسترسی داشت. مدیران فناوری اطلاعات همچنین میتوانند پلتفرم ISE پاورشل را بررسی کنند که میتوانید آن را جداگانه نصب کنید.
PowerShell ISE یک برنامه رابط کاربری گرافیکی است که بررسی، اشکال زدایی و اجرای اسکریپت ها را بدون وارد شدن به پیچیدگی های کد آسان می کند. با افزایش محبوبیت این ابزار، دانستن PowerShell می تواند به ساده سازی تسک های مدیران IT و DevOps و کاهش وابستگی به ابزار های شخص ثالث برای کنترل بیشتر کمک کند.