PowerShell رابط کاربری مبتنیبر خط فرمان است که توسط شرکت مایکروسافت، برای خودکارسازی، مدیریت پیکربندی ویندوز و اسکریپتنویسی استفاده میشود. این رابط منبع باز بوده و بهسادگی امکان استفاده در ویندوز، macOS و لینوکس را دارد. پس بیایید در این مقاله، به دل سوال «پاورشل چیست» شیرجه بزنیم و کندوکاوش کنیم. سپس نحوه کار با آن، تفاوتهایش با CMD و فعالسازی پاورشل را یاد بگیریم.
پاورشل چیست؟
بهترین منبع برای گرفتن پاسخ «پاورشل چیست؟»، وبسایت سازنده آن، یعنی مایکروسافت است که چنین توصیفی برای این ابزارش دارد:
«PowerShell یک پوسته (Shell) فرمان مدرن است که بهترین ویژگیهای پوستههای محبوب دیگر را در خود دارد. برخلاف بسیاری از پوستههایی که فقط با متن کار میکنند و همین فرمت را برمیگردانند، PowerShell اشیا داتنت را گرفته و با آنها کار میکند.
این ابزار شامل ویژگیهای زیر است:
- تاریخچه قوی
- تکمیل تب و پیشبینی فرمان
- پشتیبانی از نام مستعار دستورات و پارامترها
- پایپلاینی برای فرمانهای زنجیرهای
- سیستم کمک درون کنسولی، شبیه به صفحات man Unix»
مهم ترین ویژگیهای پاورشل چیست؟
گرچه ویژگیهای پاورشل با هر بهروزرسانی بهبود و توسعه مییابد، اما ما در ادامه این بخش به چهار مورد از مهمترینها و اساسیترین آنها میپردازیم.
1. کشف سریع و کامل دستورات
کاربران میتوانند ویژگیهای PowerShell را با استفاده از مجموعه cmdletها – مانند Get-Command که فهرستی از تمام دستورات است- را کشف کنند. این دستور پارامترهایی را دارد که برای محدود کردن دامنه جستوجو از آنها استفاده میشود.
2. کمک مستقیم به کاربر برای کار با پاورشل
کاربران پاورشل میتوانند از طریق cmdlet Get-Help، درباره اصول PowerShell و اجزای خاص آن، مانند cmdletها اطلاعات بیشتری بهدست آورند. برای مثال، پارامتر -online این اسکریپت، دسترسی به مقالات راهنمایی و نحوه استفاده را در اینترنت پیدا کرده و در اختیارتان قرار میدهد.
3. امکان نوشتن و اجرای دستورات از راه دور
مدیران IT و سرورها میتوانند با استفاده از فناوریهایی مانند Windows Management Instrumentation و WS-Management، کارهای سرورشان را از راه دور پیش ببرند. بهعنوان مثال، پروتکل WS-Management به کاربران اجازه میدهد تا دستورات و اسکریپتهای PowerShell را روی کامپیوترهای Remote اجرا کنند.
بیشتر بخوانید: سرور چیست؟ معرفی انواع سرور به زبان ساده
4. پایپلاین
با PowerShell، دستورات را میتوان از طریق عملگرهای پایپلاین به یکدیگر وصل کرد؛ آن هم فقط با درج نماد ساده “|”. این رویکرد، به خروجی یک دستور اجازه میدهد تا به ورودی دستور بعدی در دنباله پایپلاین تبدیل شود.
از طرفی دیگر، پایپلاین پاورشل رشتههای متنی را شی دیده و به آنها اجازه میدهد تا از یک cmdlet به cmdlet دیگر منتقل شوند. این قابلیت قدرتمند برای اسکریپتهای پیچیده و دقیق خودکارسازی اهمیت زیادی دارد.
نحوه کار پاورشل چگونه است؟
پاورشل از مجموعهای از دستورات تشکیل شده است که عملکردها (Functions) یا وظایف (Tasks) خاصی را انجام میدهند. در پشت هر cmdlet، تعدادی اتفاق در حال وقوع است:
دستوری که در پاورشل اجرا میشود با کلاسها، متدها، چند شی، فراخوانیهای API و بسیاری موارد دیگر ادغام میشود تا کار بهدرستی انجام شود.
با تمام این اوصاف، میدانید مزیت PowerShell چیست؟ شما مجبور نیستید همه این اصول بکاند را بهشکل عمیق درک کنید؛ چون cmdletها همه اینها را از بر هستند و تمام فرآیندها را بهصورت خودکار برای شما انجام میدهند.
برای کمک به استفاده از cmdlets، پاورشل از یک الگوی نامگذاری فعل-اسم (Verb-noun Naming Pattern) پیروی میکند تا کاربران بتوانند هدف دستورات را درک کنند. افعال عبارتند از New، Set، Get، Add و Copy.
با این مقدمه، در ادامه با نحوه کار پاورشل آشنا میشویم.
1. Cmdlets
Cmdletها که بهصورت “command-lets” تلفظ میشوند که دستورات تک عملکردی پایه پاورشل هستند. اگر پاورشل یک پاراگراف باشد، cmdletها حروف هر کلمه از این بخش متن هستند.
میتوان از این مقادیر بهشکل انفرادی و برای انجام یک عملکرد یا ترکیب آنها استفاده کرد تا انجام کارهای مهمتر محقق شود. توجه داشته باشید که هر cmdlet در نقش یک تابع جداگانه ظاهر میشود تا به خروجی cmdlet در تابع ترکیبی کمک کند.
بااینحال، cmdletها در پاورشل نوشته نمیشوند؛ بلکه به زبان دیگری نوشته و کامپایل شدهاند و بستر استفاده از آنها، پاورشل است. Cmdlets یک دستور حیاتی در PowerShell هستند؛ چراکه محدودیت عملکرد آنها به خلاقیت توسعهدهنده بستگی دارد. برای مثال، توسعهدهندگان و مهندسان DevOps از پایپلاینها برای ارسال یک خروجی cmdlet به ورودی cmdlet دیگر بهعنوان شی استفاده میکنند.
بیشتر بخوانید: devops چیست و به چه کسی مهندس دواپس میگویند؟
2. توابع
توابع یکی از دستورات متعددی هستند که برای اجرای کدها در پاورشل استفاده میشوند. برخلاف cmdletها، توابع به زبان PowerShell نوشته میشوند. این اجزا دنبالهای از دستورالعملها هستند که در ابتدا ساخته و سپس با فراخوانی استفاده میشوند. ورودی توابع در پاورشل پارامتر است؛ اما خروجی میتواند سه حالت زیر را داشته باشد:
- روی صفحه کاربر ظاهر شود.
- به یک تابع دیگر منتقل شود.
- به یک ورودی cmdlet دیگر منتقل شود.
3. اسکریپت
اسکریپتهای پاورشل با cmdlet نوشته میشوند. این اسکریپتها برای ایجاد اتوماسیون کارهای مختلف استفاده میشوند. اسکریپتهای پاورشل پیچیدگی کد را هنگام نوشتن و استفاده از آنها در اتوماسیون، کاهش میدهند.
سه نوع دستور در اسکریپت PowerShell وجود دارد:
- “get”: دستوری برای بازیابی دادهها از یک سیستم فایل
- “set”: ویرایش اطلاعات اجزای ویندوز
- “remove”: برای حذف کامل عملیات
4. دستورات اجرایی
دستورات اجرایی (Executable Commands) دستوراتی هستند که در اجرای فایلهای Executable استفاده میشوند. فایلهای اجرایی پسوند exe دارند و جز نرمافزارهای ویندوز هستند.
در اجرای فایلهای exe از سه دستور استفاده میشود:
- “Invoke-expression”: محبوبترین روش اجرای فایلهای exe
- “start-process” از cmdlet: شروع بیش از یک فرآیند در دستگاه کاربر و برگرداندن همان نتیجه دستور اول
- تایپ “.\” قبل از نام فایل: سادهترین روش
بیشتر بخوانید: دستور cut در لینوکس + کاربردهای پیشرفته
6 کاربرد پاورشل چیست؟
PowerShell یک برنامه دومنظوره است که چهار کاربرد جالب را به کاربران هدیه میدهد. لیست این کاربردها را در ادامه خواهید خواند.
1. اتوماسیون کارهای تکراری
اولین کاربرد پاورشل که مهمترین مسئولیت آن است را همین مورد میدانیم. این اتوماسیون در وظایف DevOps انجام میشود. فرایند اتوماسیون در این برنامه برای همه جنبهها و کاربردهای پاورشل صورت میگیرد.
علاوهبراین، اتوماسیونها روی سایر زبانهای اسکریپتنویسی هم انجام میشوند؛ اما در PowerShell، بیشتر بهدلیل سیستم فرمت منحصربهفرد کاربرد دارند. از طرفی دیگر، پاورشل برای اتوماسیونسازی کارها گزینه بهتری است؛ به این دلیل که هر برنامهای با توابع، کلاسها، cmdletها و ماژولها قابل توسعه خواهد بود.
2. دسترسی ساده به دادهها
یکی دیگر از دلایل محبوبیت PowerShell دسترسی سریع و ساده به دادهها است؛ چون بخش قابل توجهی از کاربردهای PowerShell فعالیتهای اداری است. در شبکههای کامپیوتری بزرگ، بسیاری از سرویسها بهطور مستقل کار میکنند و توسط یک ادمین مرکزی IT کنترل میشوند. PowerShell به این افراد دسترسی آسان به سرویسها، سیستم فایلها و رجیستریها را میدهد.
3. مدیریت زیرساخت بهشکل کد
پاورشل از یک فریمورک مدیریتی استفاده میکند تا کاربرانش بتوانند زیرساخت شرکتشان را با پیکربندی ویژه و معروف، بهنام «زیرساخت بهعنوان یک کد» یا “Infrastructure As Code” مدیریت کنند. این فریمورک، “Desired State Configuration (DSC)” نامیده میشود که امکان اعمال تنظیمات پیکربندی، دستیابی به استقرارهای تکرارپذیر و ایجاد پیکربندیهای خاص را ممکن میسازد.
4. دستیابی به سیستم از راه دور
پاورشل امکاناتی را برای به سیستم از راه دور فراهم میکند که باب میل متخصصان IT و DevOps است؛ چون با کمک این قابلیتها، میتوانند دستورات را از راه دور و روی چند سیستم اجرا کنند و کارشان را بدون نیاز به حضور در محل پیش ببرند. تسهیل دسترسی Remote با کمک ابزارهای Windows Management و WS-Management ممکن میشود.
5. ترکیب چند محصول
PowerShell دارای یک مدل ترکیبپذیری بین محصولی است که آن را برای چند سرویس و محصول مناسب میکند. این بدان معناست که پاورشل میتواند برای سرویسهای مختلف استفاده شود و همچنان توسط یک مدیر IT کنترل شود. کاربرد این قابلیت، در شبکههای شرکتی با سرویسهای مختلف وابسته یا مستقل از یکدیگر است.
6. استفاده از REST API
پاورشل یک API 100٪ جامع و سازگار با سیستمهای مختلف است که امکان استفاده از آن برای سازندگان APIهای شخص ثالث فراهم است. این برنامه قابلیتهای REST API را در اختیار کاربرانش قرار میدهد که با استفاده از cmdlet “Invoked-RestMethod” فعال میشود.
3 روش ساده برای راه اندازی PowerShell ویندوز
برای فعال سازی پاورشل در ویندوز، سه روش وجود دارد که در این بخش تمام آنها را بهشکل گامبهگام، بههمراه تصویر توضیح خواهیم داد.
1. منوی استارت
- روی دکمه “Start” در گوشه سمت چپ پایین صفحه ویندوزتان کلیک کنید یا کلید “Windows” را روی کیبورد فشار دهید تا منوی استارت باز شود؛
- در نوار جستوجو، «PowerShell» را بنویسید؛
- در نتایج جستوجو روی “Windows PowerShell” راست کلیک کنید؛
- حال از منوی بازشده، گزینه “Run as administrator” را بزنید؛
2. پنجره Run
- کلید “Windows” + “R” کیبورد را بهشکل همزمان فشار دهید تا پنجره Run باز شود؛
- “powershell” را در آن تایپ کنید؛
- کلیدهای “Ctrl” + “Shift” + “Enter” کیبورد را نگه دارید و روی PowerShell کلیک کنید تا با مجوز ادمین و امکانات کامل باز شود؛
3. با استفاده از Command Prompt
- در منوی استارت، “Command Prompt” را جستوجو کنید و با کلیک راست روی آن، گزینه “Run as administrator” را بزنید تا با دسترسی و مجوزهای کامل باز شود؛
- در پنجره Command Prompt “powershell” را تایپ کرده و دکمه Enter را فشار دهید تا به PowerShell هدایت شوید. همچنین، میتوانید بهصورت مستقیم، PowerShell elevated را از همین محیط و با تایپ «powershell» و زدن «Enter» اجرا کنید.
فعالسازی پاورشل روی مک
برای فعالسازی پاورشل روی مک، باید نسخه اصلی آن را نصب کنید که در لیست زیر، آخرین نسخه پاورشل (آبان 1403) را بههمراه لینک مستقیم دانلود مشاهده میکنید:
- PowerShell 7.4
- لینک دانلود برای پردازندههای x64 – powershell-7.4.5-osx-x64.pkg
- لینک دانلود برای پردازندههای Arm64 – powershell-7.4.5-osx-arm64.pkg
در هر کدام از این صفحات، آموزش نصب و فعالسازی آمده است. ما در ادامه همین بخش با استفاده از دستورات زیر، پاورشل را از ترمینال مک نصب میکنیم. پس ابتدا نام فایل را تغییر میدهیم تا با فایلی که دانلود کردهایم مطابقت داشته باشد.
sudo installer -pkg ./Downloads/powershell-7.4.5-osx-x64.pkg -target /
اگر این برنامه را روی macOS Big Sur 11.5 یا نسخههای جدیدتر اجرا میکنید، ممکن است هنگام نصب پکیج با پیام خطای زیر مواجه شوید:
powershell-7.4.5-osx-x64.pkg" cannot be opened because Apple cannot check it for malicious software
دو راه برای حل این مشکل وجود دارد:
- استفاده از Finder
- پکیج را در Finder سیستمعاملتان پیدا کنید؛
- روی Control Package کلیک کنید. حتما این کار را با فشار دادن کلید Ctrl انجام دهید؛
- از منوی بازشده Open را بزنید.
- از خط فرمان
- فرمان زیر را در خط فرمان مک اجرا کنید:
sudo xattr -rd com.apple.quarantine ./Downloads/powershell-7.4.5-osx-x64.pkg.
اگر از PowerShell 7 یا نسخههای جدیدتر استفاده میکنید، میتوانید از cmdlet Unblock-File استفاده کنید. در این دستور، حتما مسیر کامل فایل pkg. را بنویسید؛
- نصب پکیج را مطابق با شرایط عادی و طبق دستورالعمل انجام دهید.
جمع بندی
پاورشل ابزاری برای خودکارسازی فرایندهای تکراری در ویندوز، مک و لینوکس است. با کمک این برنامه، مدیران IT و توسعهدهندگان DevOps میتوانند بهراحتی کارهای مهمشان را از طریق خط فرمان پیش ببرند. امکان کنترل و اجرای دستورات از راه دور، راهاندازی آسان و مدیریت کارآمد زیرساختهای شرکتی، پاورشل را به ابزاری بسیار محبوب تبدیل کرده است.
نظر شما درباره آن چیست؟ فکر میکنید تا چه حد میتواند به کارهایمان سرعت داده و بهشیوهای بهینه پیش ببرد؟ ما در بخش نظرات همین پست، مشتاق دیدن و خواندن تجربهتان هستیم. پس همین حالا آن را با ما و سایر مخاطبان در میان بگذارید.
سوالات متداولی که شما میپرسید
- پاورشل چیست؟
PowerShell یک خط فرمان مدرن است که بهترین ویژگیهای خط فرمانهای محبوب دیگر را در خود جا داده است؛ ویژگیهایی مانند کشف سریع دستورات در این ابزار و امکان اجرای دستورات از راه دور.
- از پاورشل در چه سناریوهایی استفاده میشود؟
ترکیب چند محصول یا سرویس، مدیریت زیرساختهای شرکتی و خودکارسازی فرایندهای تکراری.
- آیا نصب و راهاندازی Powershell سخت است؟
خیر. این ابزار بهصورت پیشفرض در ویندوز 10 و 11 وجود دارد و فقط از سه طریق خط فرمان، منوی استارت یا پنجره Run میتوانید به آن دسترسی پیدا کنید. برای فعالسازی پاورشل روی مک هم فقط با نصب پکیج آن و اجرای یک دستور ترمینال، کار بهاتمام میرسد.
منابع: