پاورشل-چیست؟

پاورشل چگونه کار می کند و چه کاربردی دارد؟

می‌توانید خلاصه‌ای کوتاه از محتوای مقاله را با استفاده از هوش مصنوعی دریافت نمایید.

فهرست مطالب

PowerShell از جمله ابزار رایگان و مبتنی بر CLI به حساب می‌آید که این امکان را برای توسعه دهندگان فراهم می‌آورد تا بتوانند وظایف و تنظیمات را خودکار سازند. در این محتوا قصد داریم به توضیح درباره پاورشل بپردازیم. پس تا انتها همراه ما باشید.

PowerShell چیست؟

پاورشل عبارت است از ابزار مبتنی بر رابط خط فرمان که امکان خودکار سازی وظایف و تنظیمات را فراهم می‌آورد. این ابزار بر اساس NET. ساخته شده و قابلیت‌های قدرتمندی برای مدیریت سیستم‌های ویندوز، و حتی پلتفرم‌های دیگر مثل لینوکس و مک او اس را فراهم می‌کند. استفاده از پاورشل کار را آسان کرده و احتمال خطا را تا حد زیادی کم می‌کند.

تاریخچه PowerShell

همان‌ طور که گفتیم پاورشل از جمله ابزار کلیدی مایکروسافت است که برای مدیریت سیستم‌ها و خودکارسازی وظایف مورد استفاده قرار می‌گیرد. در اوایل دهه 2000 مایکروسافت به دنبال ابزار جدیدی بود که به وسیله آن بتواند به مدیریت سیستم‌ها بپردازد و جایگزینی برای CMD باشد. به همین علت به ایجاد یک محیط خط فرمان جدید پرداخت و پروژه Monad را آغاز کرد.

در نوامبر 2006 مایکروسافت نخستین نسخه پاورشل را منتشر کرد. این نسخه بر اساس چارچوب دات نت توسعه پیدا کرد و امکاناتی را در اختیار شما قرار داد. دومین نسخه پاورشل همراه با ویندوز 7 و ویندوز سرور 2008 R2 معرفی شد و امکاناتی مثل Remote Scripting (اجرای اسکریپت‌ها از راه دور)، PowerShell Integrated Scripting Environment (ISE) (یک محیط توسعه یکپارچه برای نوشتن و تست اسکریپت‌ها) و Modules (برای سازماندهی و توزیع فرمان‌ها و اسکریپت‌ها) را اضافه کرد. نسخه‌های دیگری مثل پاورشل 3.0 و 4.0 و 5.0 در خلال سال‌های 2012 تا 2016 منتشر شدند و امکانات و ماژول‌های جدیدتری به آن اضافه شد.

در نهایت در سال 2016 مایکروسافت تصمیم  گرفت تا پاورشل را به عنوان یک پروژه منبع باز در اختبار افراد قرار دهد. PowerShell به‌طور مداوم توسط جامعه متن باز و مایکروسافت بهبود یافته و توسعه داده می‌شود. نسخه‌های جدیدتر PowerShell همچنان قابلیت‌های بیشتری برای مدیریت سیستم‌ها و خودکارسازی وظایف در محیط‌های مختلف فراهم می‌کنند.

ویژگی‌های کلیدی PowerShell

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

  1. پاورشل یک زبان اسکریپت نویسی قوی است که این امکان را برای شما فراهم می‌کند تا بتوانید وظایف پیچیده را با کدنویسی آسان سازید.
  2. قابلیت استفاده برای مدیریت سیستم به صورت کامل.
  3. قابل استفاده در ویندوز، لینوکس و مک.
  4. ماژولار بودن که این امکان را برای کاربران فراهم می‌آورد تا بتوانند قابلیت‌های PowerShell را گسترش دهند.
PowerShell Tip

اگر به دنبال یک سرور مجازی پایدار، سریع و مقرون‌ به‌ صرفه هستید، سرور مجازی پویان آی‌ تی با پشتیبانی از سیستم‌عامل‌های Windows ،Linux و MikroTik انتخابی مطمئن برای اجرای پروژه‌های شما است.

دلایل استفاده از پاورشل

پاورشل بنا بر دلایل زیادی استفاده می‌شود. برخی از این دلایل به شرح زیر است.

  1. اتوماسیون سازی وظایف: به این معنا که به وسیله آن می‌توانید کارهای تکراری و پیچیده را به وسیله پاورشل کدهای انجام دهید تا دیگر نیازی به انجام دستی آن‌ها نباشد. این ویژگی باعث می‌شود پاورشل به گزینه مناسبی برای تیم‌هایی که می‌خواهند فرایندهای خود را سریع‌تر و با خطای کمتر انجام دهند مناسب سازد.
  2. دسترسی آسان به منابع و داده‌ها: پاورشل به مدیران اجازه می‌دهد تا به داده‌ها و منابع دسترسی یابند و آن‌ها را مدیریت کنند.
  3. مدیریت زیرساخت به عنوان کد: PowerShell این امکان را فراهم می‌کند که زیرساخت‌های شرکت به صورت کد مدیریت شوند و شما می‌توانید پیکربندی سیستم‌ها و سرویس‌ها را به صورت کد نوشت و به راحتی آن‌ها را تغییر دهید یا به‌ روز رسانی کنید.
  4. اجرای دستورات از راه دور: امکان اجرای دستورات در سیستم‌های دیگر از راه دور را فراهم می‌کند و به مدیران IT اجازه می‌دهد تا به راحتی و از راه دور سیستم‌ها را مدیریت کنند، حتی اگر آن‌ها در مکان‌های مختلف قرار داشته باشند.
محیط پاورشل
محیط PowerShell

PowerShell چگونه کار می کند؟

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

  1. پاورشل این امکان را فراهم می‌آورد تا کاربران دستور را بلافاصله اجرا و نتیجه را نمایش دهد.
  2. Cmdletها از کوچک‌ترین واحدهای قابل اجرا به حساب می‌آیند که هر کدام از آن‌ها به انجام یک کار خاص می‌پردازند.
  3. شی گرایی به این معنا که به جای متن‌های ساده اشیا را پردازش می‌کند. این اشیا حاوی اطلاعات ساختار یافته‌ای هستند که می‌توانند به Cmdletهای دیگر منتقل شوند. این ویژگی به کاربران اجازه می‌دهد تا عملیات پیچیده‌ای را با استفاده از چند Cmdlet ترکیب شده (که به آن Pipeline گفته می‌شود) انجام دهند.
  4. Pipeline که به کاربران اجازه می‌دهد خروجی یک Cmdlet را به عنوان ورودی Cmdlet دیگری استفاده کنند.
  5. ماژول‌ها و اسکریپت‌ها که پاورشل برای گسترش قابلیت‌های خود استفاده می‌کند.
  6. مدیریت از راه دور که به مدیران IT اجازه می‌دهد تا دستورات PowerShell را روی سیستم‌های دیگر اجرا کنند، حتی اگر آن سیستم‌ها در مکان‌های مختلفی قرار داشته باشند.
  7. فریمورک Desired State Configuration (DSC) که برای مدیریت زیرساخت‌ها به عنوان کد استفاده می‌شود. با استفاده از DSC، می‌توان پیکربندی سیستم‌ها را به صورت کد تعریف کرد و اطمینان حاصل کرد که سیستم‌ها همیشه در حالت مورد نظر باقی می‌مانند.
  8. سازگاری با سیستم‌های دیگر. این امر به کاربران امکان می‌دهد از همان ابزار و زبان اسکریپت‌نویسی برای مدیریت سیستم‌های مختلف استفاده کنند.

به طور خلاصه، PowerShell با ترکیب دستورات (Cmdletها)، پردازش اشیا، استفاده از Pipeline و قابلیت‌های مدیریتی پیشرفته به کاربران امکان می‌دهد تا وظایف مدیریتی و اتوماسیون را به صورت موثر و کارآمد انجام دهند. برای مثال شما با وارد کردن دستور زیر می‌توانید 10 برنامه پر مصرف سیستم خود همراه با منابع مصرفی را ببینید.

				
					Get-Process |
Sort-Object CPU -Descending |
Select-Object -First 10 `
Name, Id, CPU,
@{Name="Memory(MB)"; Expression={[math]::Round($_.WorkingSet64/1MB,2)}} |
Format-Table -AutoSize
				
			
نمونه دستور پاورشل

کاربردی‌ترین دستورات پاورشل

پاورشل (PowerShell) یک ابزار خط فرمان قدرتمند و زبان اسکریپت‌ نویسی است که برای مدیریت سیستم‌ها و خودکارسازی وظایف طراحی شده است. در ادامه، چند مورد از کاربردی‌ترین دستورات پاورشل را معرفی می‌کنیم.

  • Get-Help: برای دریافت راهنما و اطلاعات در مورد دستورات مختلف پاورشل استفاده می‌شود.
  • Get-Command: به ارائه لیستی از تمام دستورات موجود در پاورشل می‌پردازد. همچنین برای پیدا کردن دستوری خاص استفاده می‌شود.
  • Get-Process: نمایش اطلاعات مربوط به فرایندهای درحال اجرا.
  • Stop-Process: متوقف کردن فرایندها.
  • Get-Service: نمایش اطلاعات سرویس‌های در حال اجرا روی سیستم.
  • Start-Service و Stop-Service: شروع یا توقف سرویس‌ها.
  • Get-EventLog: گزارش‌های مربوط به Event Log ویندوز را نمایش می‌دهد.
  • Remove-Item: حذف فایل‌ها یا پوشه‌ها.
  • Where-Object: برای فیلتر کردن خروجی دستورات استفاده می‌شود.
  • ForEach-Object: برای انجام عملیاتی بر روی هر آیتم در مجموعه استفاده می‌شود.
دستورات-کاربردی-پاورشل
PowerShell Tip

در پاورشل، تقریبا همه چیز یک Object است، نه متن. بنابراین توصیه می‌شود قبل از فیلتر یا نمایش خروجی، پردازش داده‌ها را روی آبجکت‌ها انجام داده و
Format-Table یا Format-List را فقط در انتهای Pipeline استفاده کنید.

کاربردهای PowerShell

پاورشل ویندوز در چه جاهایی کاربرد دارد؟ در ادامه برخی از کاربردهای رایج PowerShell را بررسی می‌کنیم.

  • خودکارسازی وظایف

از پاورشل می‌توان در برای خودکارسازی وظایف روزمره‌ای که همواره مدیران سیستم‌ها با آن‌ها سر و کار دارند استفاده کرد. برای مثال:

    • مدیریت کاربران
    • برنامه ریزی آپدیت‌ها و بکاپ‌ها
    • عملیات‌های مربوط به فایل‌ها و پوشه‌ها
    • مدیریت فایروال و سیاست‌های امنیتی
    • نصب و آپدیت برنامه‌ها
  • مدیریت پیکربندی سیستم

پاورشل تنظیمات پیکربندی سیستم، مدیریت سرویس‌ها و کنترل پیکربندی شبکه را در چند دستگاه به صورت همزمان مدیریت می‌کند. با استفاده از پاورشل، مدیران سیستم‌های ویندوزی می‌توانند GPO یا Group Policy Objects برای سیستم‎‌های مختلف تنظیم و اجرا کنند.

  • کار با سرویس‌های ابری

امکانات عالی پاورشل فقط محدود به دستگاه‌های در محل نمی‌شود، این ابزار از طریق ماژول‌های اختصاصی مانند Azure PowerShell و AWS Tools می‌تواند سرویس‌های ابری را نیز مدیریت کند. این قابلیت به شما این امکان را می‌دهد تا بتوانید فضای ابری خود را خودکارسازی و مانیتور کنید و به راحتی به مدیریت آن بپردازید.

PowerShell Tip

پاورشل فقط برای مدیریت ویندوز نیست. بسیاری از ابزارهای DevOps و زیرساختی مانند Docker ،Kubernetes ،Azure ،AWS ،VMware و حتی Git از پاورشل پشتیبانی می‌کنند. این یعنی PowerShell یکی از ابزارهای کلیدی در اتوماسیون و مدیریت مدرن زیرساخت است.

مزایای PowerShell

استفاده از پاورشل، مزایای بسیاری را به همراه دارد که در ادامه آن‌‎ها را مورد بررسی قرار می‌دهیم:

  1. ادغام با فناوری‌های مایکروسافت: پاورشل عمیقا با فناوری‌های متعدد مایکروسافت مانند اکتیو دایرکتوری و Azure یکپارچه شده است. یادگیری اسکریپت نویسی پاورشل به شما این امکان را می‌دهد که وظایف را در این فناوری‌ها به راحتی مدیریت کنید.
  2. مقیاس پذیری بالا: با رشد محیط شما، اسکریپت‌های پاورشل را می‌توان به راحتی برای تطبیق با تغییرات دستکاری کرد و برای مدیریت سیستم‌های بیشتر گسترش داد. این مقیاس پذیری تضمین می‌کند که می‌توانید مدیریت و سرپرستی کارآمد را با تکامل زیرساخت فناوری اطلاعات خود حفظ کنید.
  3. جامعه کاربری و منابع: جامعه کاربری پاورشل وسیع، فعال و پشتیبان است. با یادگیری اسکریپت نویسی پاورشل، به مقدار زیادی از دانش افراد فعال در این زمینه دسترسی خواهید داشت. تعداد بسیاری مقاله و ویدیو برای یادگیری این ابزار در سراسر اینترنت وجود دارد که به شما کمک خواهد کرد تا به روز و فعال بمانید.

مقایسه PowerShell و دیگر ابزارها

در ادامه ابزار قدرتمند پاورشل را با سه ابزار و زبان CMD، Bash و Python مقایسه می‌کنیم.

مقایسه PowerShell و Command Prompt

پاورشل و کامند پرامپت از جمله ابزار خط فرمان در ویندوز هستند که برای اجرای دستورات از آن‌ها استفاده می‌شود. ولی تفاوت‌هایی میان آن‌ها وجود دارد. کامند پرامپت از جمله ابزار خط فرمان است که به اجرای دستورات پایه‌ای می‌پردازد و محدودیت‌هایی نیز دارد. پاورشل یک زبان اسکریپت نویسی پیشرفته‌تر و شیء گرا است که بر اساس فریمورک دات نت توسعه پیدا کرده است و امکان مدیریت سیستم‌ها و خودکارسازی فرایندها را فراهم می‌آورد. کامند پرامپت از دستورات داخلی استفاده می‌کند و به اجرای عملیات‌های پایه‌ای می‌پردازد. ولی پاورشل در کنار پشتیبانی از دستورات CMD از Cmdletها نیز استفاده می‌کند که دستورات پیچیده‌تری هستند.

در مواردی مثل مدیریت سیستم، یکپارچگی با سیستم عامل و سازگاری با پلتفرم‌های مختلف و خیلی موارد دیگر پاورشل نسبت به کامند پرامپت عملکرد بهتری دارد و از محدودیت کمتری برخوردار است. پس می‌توان گفت کامند پرامپت برای وظایف ساده و ابتدایی و البته سریع مناسب است. ولی پاورشل برای مدیریت جامع و پیشرفته سیستم‌ها کاربرد دارد.

مقایسه PowerShell و Bash

Bash زبان اصلی خط فرمان در لینوکس است و فلسفه آن بر مبنای جریان متنی بنا شده است. در Bash، شما ابزارهای کوچک و قدرتمند را به هم متصل می‌کنید و خروجی متنی یکی را به دیگری می‌فرستید. برای استخراج اطلاعات در Bash، باید در Text Parsing و استفاده از ابزارهایی مانند grep و awk مهارت داشته باشید. 

اما PowerShell سعی کرده این رویکرد را تغییر دهد. به جای اینکه مجبور باشید متن‌ها را برش دهید تا به داده مورد نظر برسید، پاورشل داده‌ها را به صورت ساختاریافته تحویل می‌دهد. اگرچه دستورات پاورشل معمولا طولانی‌تر از Bash هستند، اما خوانایی بسیار بالایی دارند و حدس زدن عملکردشان راحت‎‌تر است.

مقایسه PowerShell و Python

اگرچه پایتون یک زبان برنامه نویسی کامل است و پاورشل یک Shell، اما در دنیای خودکارسازی رقیب هم هستند. Phyton یک زبان همه منظوره است، یعنی با آن می‌توانید وب سایت بسازید، هوش مصنوعی کار کنید و اسکریپت هم بنویسید. پایتون روی ویندوز به صورت پیش فرض نصب نیست و برای ارتباط عمیق با اجزای ویندوز معمولا نیاز به نصب کتابخانه‌های اضافی دارد.

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

مثال عملی مقایسه کدهای سه ابزار

فرض کنید می‌خواهیم اطلاعات سرویسی که مربوط به آپدیت ویندوز است را پیدا کنیم، ببینید چطور هر ابزار با این درخواست برخورد می‌کند:

در CMD باید از دستور متنی استفاده کنید و سپس بین متن‌ها جستجو کنید:

				
					sc query wuauserv
				
			

در Bash لینوکس باید لیست همه سرویس‌ها را بگیرید و سپس خطی که شامل نام سرویس است را با grep بیرون بکشید:

				
					systemctl list-units --type=service | grep "ssh"
				
			

در PowerShell شما مستقیما خود شیء سرویس را صدا می‌زنید و می‌توانید هر ویژگی آن را جداگانه ببینید:

				
					Get-Service -Name wuauserv
				
			

جدول مقایسه PowerShell و دیگر ابزارها

اکنون که این ابزارها را با PowerShell مقایسه کردیم، وقت آن رسیده که به سراغ یک جدول جمع بندی برویم:

ویژگیPowerShellCommand Prompt (CMD)Bash (Linux)Python
ماهیتپوسته و زبان اسکریپت‌ نویسیمفسر خط فرمان قدیمیپوسته اصلی لینوکسزبان برنامه‌ نویسی کامل
خروجی دادهاشیا (Objects)متن ساده (Text)جریان متنی (Text Stream)انواع داده و اشیا
کاربرد اصلیمدیریت سیستم‌های ویندوزیکارهای ساده و سریعمدیریت سرور لینوکستوسعه و خودکارسازی
مثال (لیست فایل)Get-ChildItemdirlsos.listdir()

و در آخر

پاورشل از جمله ابزاری است که این امکان را برای متخصصان فناوری اطلاعات فراهم می‌آورد تا بتوانند با یک رابط خط فرمان در تعامل باشند و وظایف خود را خودکار سازند. پاورشل یک ابزار مایکروسافت بوده که به ارائه ویژگی‌های برنامه نویسی برای اتوماسیون، مدیریت و اسکریپت نویسی می‌پردازد. همچنین یک رابط منبع باز است که با ویندوز، مک او اس و لینوکس سازگاری دارد. شما می‌توانید از این ابزار استفاده کرده و در وقت خود در کارهای تکراری و یا زمان بر صرفه جویی نمایید.

سوالات متداول

پاورشل با استفاده از Object-Oriented Pipeline این امکان را فراهم می‌کند که داده‌ها به‌صورت اشیای ساختاریافته بین Cmdletها منتقل شوند. این رویکرد باعث می‌شود عملیات فیلتر، تبدیل و مدیریت داده‌ها با دقت بالا و بدون نیاز به پردازش متنی انجام شود؛ موضوعی که در مدیریت سیستم‌ها و زیرساخت‌های بزرگ اهمیت زیادی دارد.

در مقابل، Python یک زبان برنامه‌ نویسی همه‌ منظوره است که اگرچه از اشیا و ساختارهای داده قدرتمند پشتیبانی می‌کند، اما ذاتا یک ابزار Shell با Pipeline داخلی برای مدیریت سیستم محسوب نمی‌شود.

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

منابع

  • https://netwrix.com/en/resources/blog/what-is-powershell-guide/

به این مقاله امتیاز دهید!

میانگین امتیاز 4.3 / 5. تعداد رأی ها : 3

هنوز هیچ رأیی داده نشده. اولین نفر باشید!

و در ادامه بخوانید

اولین دیدگاه را اضافه کنید.

    برچسب ها

    Microsoft