پاورشل چیست؟ هر آنچه باید درباره PowerShell بدانید

جمعه ۹ شهریور ۱۴۰۳ - ۱۵:۳۰
مطالعه 8 دقیقه
نمایی از محیط PowerShell در ویندوز ۱۱
با استفاده از PowerShell، تقریبا کنترل نامحدودی روی سیستم‌عامل دارید و می‌توانید دستورات دلخواه خود را بهتر و کارآمدتر از خط فرمان پیش‌فرض، اجرا کنید.
تبلیغات

احتمالاً تابه‌حال بارها برای اجرای وظایف مورد نظرتان در محیط سیستم‌عامل‌های ویندوز، لینوکس یا مک، از دستورات ترمینال یا خط فرمان استفاده کرده‌اید. PowerShell در ویندوز، عملکرد مشابهی با Command Prompt دارد؛ اما سطح عملکرد و انعطاف‌پذیری که در اختیار کاربر قرار می‌دهد، بسیار بهتر و بیشتر از خط فرمان سنتی ویندوز است.

اگر به‌عنوان ادمین وارد محیط سیستم‌عامل شوید، به‌کمک قابلیت‌های cmdlet-های تعبیه شده در PowerShell می‌توانید از راه دور نیز روی بخش‌های مختلف سیستم‌عامل کنترل داشته باشید؛ اتصالات شبکه را روی سرورها آزمایش کنید یا بسیاری از عملکردهای حیاتی دیگر را انجام دهید یا حتی سیستم‌عامل را دوباره نصب کنید. در ادامه، علاوه بر آشنایی کامل با PowerShell در ویندوز، نحوه‌ی نصب و راه‌اندازی PowerShell را یاد می‌گیریم تا بتوانیم از توانایی‌های بی‌نظیر این ابزار قدرتمند، استفاده کنیم.

کپی لینک

PowerShell چیست؟

پاور شِل (PowerShell) یکی از ابزارهای قدرتمندی است که از سال ۲۰۰۶ به‌عنوان یک رابط خط فرمان و زبان برنامه‌نویسی همه‌کاره، در نسخه‌های مختلف ویندوز، مک و لینوکس کاربرد دارد. این ابزار، در سال ۲۰۰۶ در قالب نام Windows PowerShell، صرفاً برای مدیریت ویندوز ساخته شده بود؛ اما به‌مرور زمان و با متن‌باز شدن، قابلیت استفاده روی مک و لینوکس را نیز به دست آورد و هم‌اکنون با نام PowerShell به انجام وظایف خود در این سیستم‌عامل‌ها ادامه می‌دهد. پاور شل در ویندوز ۱۱ مانند نسخه‌های قبلی این سیستم‌عامل (از ویندوز ۷ به بعد) بسیار فراتر از جایگزین ساده‌ای برای واسط خط فرمان (CLI مخفف Command Line Interface) عمل می‌کند و انعطاف‌پذیری بیشتری را برای کدنویسی و کنترل ویندوز در اختیار کاربر قرار می‌دهد.

کپی لینک

تفاوت PowerShell و ویندوز PowerShell کلاسیک

Windows PowerShell، نسخه‌ی قدیمی PowerShell فعلی است که صرفاً برای سیستم‌عامل ویندوز عرضه شده است و پس از عرضه‌ی نسخه‌ی ۵٫۱ نیز، به‌روزرسانی نخواهد شد. ویندوز ۱۱ به‌صورت پیش‌فرض مجهز به این ابزار است و از آن، به‌عنوان جایگزینی برای Command Prompt استفاده می‌کند.

محیط Windows PowerShell
XDA Developers

در طرف مقابل، PowerShell یک ابزار کراس پلتفرم (چند سکویی، یعنی قابلیت نصب روی چند سیستم‌عامل را دارد) و متن‌باز است که برای استفاده از فریم‌ورک NET Core. بازنویسی شده و نسخه‌ی فعلی آن (نسخه‌ی ۷٫۴) قابلیت نصب روی ویندوز، مک و لینوکس را دارد.

کپی لینک

PowerShell ISE چیست؟

ISE (مخفف Integrated Scripting Environment) یک برنامه‌ی میزبان رابط گرافیکی برای PowerShell است که نقش مفیدی را در واسط خط فرمان ایفا می‌کند. با استفاده از این برنامه، شما می‌توانید پیش از اجرای هر اسکریپت در محیط سیستم‌عامل، کارایی آن را آزمایش کنید و بدانید که دقیقاً پس از اجرای این اسکریپت چه اتفاقی می‌افتد.

نمایی از محیط PowerShell ISE در ویندوز ۱۱
XDA Developers

این ویژگی باعث می‌شود تا ISE، یک گزینه‌ی بسیار عالی برای اجرای اسکریپت‌ها در PowerShell باشد. علاوه بر این مزیت، PowerShell ISE قابلیت‌هایی مانند اجرای بخش خاصی از یک اسکریپت به‌جای اجرای تمام آن، ویرایش چندخطی (Multiline-editing)، Context-sensitive help و Tab completion را در اختیار کاربر قرار می‌دهد که PowerShell فعلی را کارآمدتر از نسخه‌ی کلاسیک و اولیه‌ی آن می‌کند.

کپی لینک

نحوه نصب PowerShell در ویندوز، مک و لینوکس

Windows PowerShell به‌طور پیش‌فرض روی ویندوز ۱۱ نصب شده است؛ اما بهتر است به‌جای این نسخه، از PowerShell استفاده کنید. PowerShell نسبت‌به پاور شِل پیش‌فرض ویندوز ۱۱ جدیدتر و توسعه‌یافته‌تر است؛ از طرفی، به دلیل کراس پلتفرم بودن PowerShell، می‌توانید اسکریپت‌هایی بنویسید که علاوه‌بر ویندوز ۱۱، روی مک و لینوکس نیز، کار کند.

کپی لینک

نصب PowerShell در ویندوز ۱۱

آخرین نسخه از PowerShell را از فروشگاه مایکروسافت یا از لینک زیر در سایت گیت‌هاب دانلود کنید.

علاوه‌بر این روش، می‌توانید دستور زیر را در ترمینال ویندوز تایپ کنید تا PowerShell به‌صورت خودکار از فروشگاه مایکروسافت دانلود شود:

winget install Microsoft.PowerShell
نمایی از مشخصات ابزار PowerShell در فروشگاه مایکروسافت
XDA Developers
کپی لینک

نصب PowerShell در مک

برای نصب PowerShell در انواع لپ تاپ اپل، تنها کمی توانید این ابزار را به‌صورت مستقیم دانلود کرده و روی سیستم خود نصب کنید یا اینکه، پس از نصب Homebrew (یک نرم‌افزار برای سیستم‌عامل macOS که امکان نصب نرم‌افزارهای متن‌باز را از طریق ترمینال مک فراهم می‌کند)، اسکریپت زیر را عیناً در ترمینال مک کپی کنید:

brew install powershell/tap/powershell
کپی لینک

نصب PowerShell در لینوکس

از یکی از مدیرهای بسته در توزیع‌های لینوکس شامل Alpin ،Debian، Red Hat Enterprise Linux(RHEL) ،Ubuntu ،Arch Linux ،Kali ،Gentoo یا Raspberry Pi OS برای نصب PowerShell در لینوکس استفاده کنید. درصورتی‌که توزیع مورد استفاده‌ی شما، در بین این موارد نیست، می‌توانید نصب پاور شِل را با بسته‌های نرم‌افزاری اسنپ (Snap Packages) انجام دهید. علاوه‌بر این روش‌ها، امکان نصب PowerShell در لینوکس با استفاده از Binary Archives یا در قالب .NET Global tool وجود دارد.

کپی لینک

PowerShell cmdlet چیست؟

هر اسکریپتی که شما در محیط پاور شِل وارد می‌کنید، از یک ساختار فعل + اسم تشکیل شده است و کاری را نشان می‌دهد که cmdlet در نهایت، آن را انجام خواهد داد. در PowerShell بیش از ۲۰۰ نوع cmdlet مختلف وجود دارد؛ اما این به معنای محدودیت شما نیست و می‌توانید به تناسب نیازی که دارید، با استفاده از افعال معنادار برای پاور شِل، دستورات مختلفی را توسط این ابزار در سیستم‌عامل کامپیوتر خود اجرا کنید. رایج‌ترین افعال در محیط PowerShell عبارت است از:

فعل

کارایی

مثال cmdlet

Add

اضافه کردن یک منبع یا یک مورد جدید برای یک موضوع

Add-MailboxPermission

Clear

پاک کردن تمام منابع داخل یک Container بدون حذف خود Container

Clear-Host

Connect

برقراری ارتباط با یک سیستم دیگر

Connect-AzureAD

Disconnect

قطع ارتباط با یک سیستم دیگر

Disconnect-AzureAD

Get

بازیابی داده از یک منبع

Get-ChildItem

New

ایجاد یک منبع جدید

New-Mailbox

Remove

پاک کردن یک منبع از یک Container

Remove-Mailbox

Set

جایگزین کردن اطلاعات در یک منبع موجود

Set-Mailbox

Select

انتخاب یک منبع در یک Container

Select-Object

برخلاف تصور بسیاری از شما، کار کردن با PowerShell سخت نیست و نیازی به یادگیری تمام cmdlet-های موجود در این ابزار ندارد؛ اما از میان این cmdlet-ها، سه مورد زیر بسیار پرکاربرد هستند و بهتر است دستورهای مرتبط با آن‌ها را یاد بگیرید:

Get-Command

اگر این اسکریپت را بدون هیچ چیز اضافه‌ای در محیط PowerShell وارد کنید، فهرستی مطابق تصویر زیر برای شما نشان داده می‌شود. این فهرست بسیار طولانی، شامل تمام دستوراتی است که می‌توانید با استفاده از PowerShell روی سیستم خود اجرا کنید. برای کارآمد کردن این اسکریپت، باید آن را به شکل اختصاصی‌تری مانند مثال زیر در پاور شِل تایپ کنید:

Get-Command -Noun Process

نکته: به‌جای Noun Process باید متناسب با نیازتان، نام عملیاتی را که می‌خواهید انجام شود، بنویسید. به طور مثال، Debug-Process یا Get-Process یا Start-Process یا Stop-Process نمونه‌هایی از مواردی هستند که می‌توانید به‌جای Noun Process در عبارت بالا قرار دهید.

دستور Get-Command در محیط PowerShell
XDA Developers

اگر به‌جای Noun Process در دستور Get-Command از Name service- استفاده کنید، این cmdlet تمام دستوراتی را که کلمه‌ی Service در آنها به‌کاررفته است، به شما نمایش خواهد داد. این حالت نیز، مانند وضعیتی که Get-Command را به‌تنهایی اجرا کنید، کارآمد نیست و باید آن را شخصی‌سازی کنید. به طور مثال، دستور زیر، نمونه‌ای از این شخصی‌سازی است:

Get-Command -Name service -CommandType Cmdlet, Function, Alias

در این حالت، فهرست نمایش‌داده‌شده، صرفاً به cmdlet-ها، توابع و Aliases-هایی که PowerShell می‌تواند استفاده کند، محدود خواهد شد.

Get-Help

اگر می‌دانید که دقیقاً به کدام cmdlet در محیط PowerShell نیاز دارید، اما نحوه‌ی استفاده از آن را نمی‌دانید، می‌توانید از Get-Help برای یادگیری کار با cmdlet مورد نظر خود استفاده کنید. برای این منظور، کافی است که دستور زیر را در پاور شِل کپی کنید:

Get-Help name-of-cmdlet
دستور Get-Help در محیط PowerShell
XDA Developers

درصورتی‌که cmdlet مورد نظرتان نمایش داده نمی‌شود؛ دستور زیر را در محیط پاور شِل کپی کنید تا فایل‌های مورد نیاز دانلود شود. پس از آن، دوباره دستور Get-Help name-of-cmdlet را اجرا کنید:

Update-Help
دستور Update Help در محیط PowerShell
XDA Developers

اگر می‌خواهید با اجرای Get-Help به راهنمای استفاده از تمام cmdlet-ها دست پیدا کنید؛ دستور زیر را در محیط پاور شِل وارد کنید:

Get-Help Get-Process -Full

Get-Member

با اجرای این cmdlet، تمامی اشیا (objects)، ویژگی‌ها (properties) و متدها (methods) که به یک دستور خاصی که شما در محیط پاور شِل وارد می‌کنید اختصاص دارند، برای شما نمایش داده می‌شوند و می‌توانید به کمک آن‌ها، یک اسکریپت بنویسید.

Get-Member برخلاف دو cmdlet قبلی، به‌تنهایی اجرا نمی‌شود و باید یک cmdlet دیگر در کنار آن قرار گیرد. به‌طور مثال، دستور زیر قابل‌ اجرا خواهد بود:

Get-Process | Get-Member
دستور Get-Member در محیط PowerShell
XDA Developers

با اجرای این دستور، تمام ویژگی‌ها و متدهای مرتبط با شیء مورد نظر به شما نشان داده می‌شود. اگر می‌خواهید این دستور کمی شخصی‌سازی شود، بهتر است آن را به‌همراه پارامترهایی مانند MemberType و Name در پاور شِل وارد کنید. به‌طور مثال:

Get-Process | Get-Member -MemberType Property

نکته: این دستور، صرفاً ویژگی‌های Get-Process را نمایش می‌دهد نه متدهای آن را.

دستور Get Process و Get Member در محیط PowerShell
XDA Developers
کپی لینک

معرفی دستورات مفید PowerShell

PowerShell تنوع زیادی از cmdlet-های مختلف را برای اجرای دستورات مورد نظر شما، در اختیارتان قرار می‌دهد. بااین‌حال، بهتر است موارد زیر را به‌عنوان دستورات مفید پاور شِل در نظر داشته باشید.

فهرست نسخه‌ی سیستم‌عامل ویندوز:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion​​​​​​​

فهرست تعداد کاربران محلی و اطلاعات مالک سیستم‌عامل:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser​​​​​​​

فهرست تمام فایل‌ها و پوشه‌ها در یک پوشه:

Get-ChildItem -Path C:\ -Force​​​​​​​

کپی کردن فایل‌ها و پوشه‌ها:

Copy-Item -Path (path) -Destination (destination) - Force​​​​​​​

ایجاد پوشه‌های جدید:

New-Item -Path '(path)' -ItemType Directory​​​​​​​

ایجاد فایل‌های خالی جدید:

New-Item -Path '(path)\(FileName.format)' -ItemType File​​​​​​​

دستورات قابل‌ اجرا در محیط PowerShell، آزادی عمل بسیار زیادی را به کاربران سیستم‌عامل‌های ویندوز، مک و لینوکس می‌دهد تا با استفاده از آن‌ها بتوانند بدون نیاز به ابزارهای شخص ثالث، روی سیستم‌عامل کنترل بهتری داشته باشند.

برخلاف تنوع بالای cmdlet-های PowerShell، یادگیری نحوه‌ی استفاده از این ابزارها، سخت نیست و می‌توانید از سایت‌های مختلف فارسی و انگلیسی در اینترنت از جمله وبلاگ‌های توسعه‌دهندگان مایکروسافت دراین‌رابطه کمک بگیرید و اگر دستور مفید و جدیدی را که تحت پاورشل اجرا می‌شود می‌شناسید با کاربران به‌اشتراک بگذارید.

مقاله رو دوست داشتی؟
نظرت چیه؟
داغ‌ترین مطالب روز
تبلیغات

نظرات