پاورشل

آنچه در این صفحه می خوانید:

معرفی پاورشل

پاورشل یک فریمورک اتوماسیون وظیفه و مدیریت پیکربندی مایکروسافت است که از یک پوسته خط فرمان و یک زبان نوشتاری مرتبط تشکیل شده است. در واقع ویندوز پاورشل زبان برنامه نویسی مبتنی بر وظیفه است که به خصوص برای مدیریت سیستم طراحی شده است. ویندوز PowerShell که در فریمورک دات نت ساخته شده است، به متخصصان IT و کاربران قدرت کمک می کند تا مدیریت سیستم عامل و برنامه های Windows را که در ویندوز اجرا می شود، کنترل و خودکار کنند.

در PowerShell، وظایف اداری عموماً توسط cmdlets انجام می شود (دستورات تلفظ شده)، که به صورت تخصصی کلاس های دات نت برای اجرای یک عملیات خاص هستند. این کارها با دسترسی به داده ها در مخزن های داده مختلف، مانند سیستم فایل یا رجیستری، که از طریق ارائه دهندگان در دسترس PowerShell قرار دارند، کار می کنند. توسعه دهندگان شخص ثالث می توانند cmdlets و ارائه دهندگان را به PowerShell اضافه کنند. Cddlets ممکن است توسط اسکریپت ها استفاده شود و اسکریپت ها ممکن است در ماژول ها بسته بندی شوند.

PowerShell امکان دسترسی کامل به COM و WMI را فراهم می کند و به مدیران این امکان را می دهد تا وظایف اداری را در هر دو سیستم ویندوز محلی و از راه دور و همچنین مدیریت WS و مدیریت CIM سیستم های از راه دور لینوکس و دستگاه های شبکه را انجام دهند. PowerShell همچنین یک API هاستینگ فراهم می کند که با استفاده از آن می توان زمان اجرای PowerShell را در برنامه های دیگر تعبیه کرد. سپس این برنامه ها می توانند از قابلیت PowerShell برای اجرای برخی عملیات ها، از جمله مواردی که از طریق رابط گرافیکی در معرض دید قرار گرفته اند، استفاده کنند. این قابلیت توسط مایکروسافت Exchange Server 2007 برای افشای عملکرد مدیریتی خود به عنوان cmdlet و ارائه دهندگان PowerShell و اجرای ابزارهای مدیریت گرافیکی به عنوان میزبان های PowerShell که به فراخور cmdlet های لازم به کار رفته اند، استفاده شده است. سایر برنامه های مایکروسافت از جمله Microsoft SQL Server 2008 همچنین رابط مدیریت خود را از طریق cmdlets PowerShell در معرض نمایش قرار می دهند.

PowerShell شامل راهنمایی گسترده و کنسولی مبتنی بر خود (مشابه صفحات انسان در پوسته های یونیکس) است که از طریق Get-Help قابل دسترسی است. محتویات محلی راهنما را می توان از طریق cmdlet بروزرسانی و راهنمایی ها را از اینترنت بازیابی کرد. از طرف دیگر، کمک از وب می تواند به صورت مورد به مورد از طریق سوئیچ online- به Get-Help بدست آید.

به عنوان یک زبان اسکریپت نویسی، PowerShell معمولا برای خودکارسازی مدیریت سیستم ها استفاده می شود. همچنین برای ساخت، تست و استقرار راه حل ها، اغلب در محیط های CI/CD استفاده می شود. PowerShell بر روی زمان اجرای زبان مشترک دات نت (CLR) ساخته شده است. تمام ورودی ها و خروجی ها اشیاء دات نت هستند. بدون نیاز به تجزیه خروجی متن برای استخراج اطلاعات از خروجی. زبان اسکریپت نویسی PowerShell شامل ویژگی های زیر است:

  • از طریق توابع، کلاس ها، اسکریپت ها و ماژول ها قابل توسعه است.
  • سیستم قالب بندی قابل توسعه برای خروجی آسان
  • سیستم نوع توسعه پذیر برای ایجاد انواع پویا
  • پشتیبانی داخلی از فرمت های داده رایج مانند CSV، JSON و XML

پلت فرم اتوماسیون

ماهیت توسعه پذیر PowerShell اکوسیستمی از ماژول های PowerShell را قادر ساخته است که تقریباً هر فناوری را که با آن کار می کنید استقرار و مدیریت کند. مثلا:

  • مایکروسافت
    • آژور
    • ویندوز
    • Exchange
    • SQL
  • شخص ثالث
  • AWS
  • VMWare
  • Google Cloud

مدیریت پیکربندی

PowerShell Desired State Configuration (DSC) یک فریمورک مدیریتی در PowerShell است که به شما امکان می دهد زیرساخت سازمانی خود را با پیکربندی به عنوان کد مدیریت کنید. با DSC می توانید:

  • پیکربندی های اعلامی و اسکریپت های سفارشی برای استقرارهای تکرار شونده ایجاد کنید.
  • تنظیمات پیکربندی را اعمال کنید و در مورد تغییر پیکربندی گزارش دهید.
  • پیکربندی را با استفاده از مدل‌های push یا pull اجرا کنید.

معماری پاورشل

توسعه دهندگان PowerShell دستور زبان اصلی ابزار را بر روی پوسته POSIX 1003.2 Korn قرار دادند. Windows PowerShell می تواند چهار نوع دستورات نامگذاری شده را اجرا کند:

  • cmdlets (برنامه های فریمورک دات نت طراحی شده برای تعامل با PowerShell)
  • اسکریپت های PowerShell (فایل هایی با پسوند ps1.)
  • توابع PowerShell
  • برنامه های اجرایی مستقل

اگر دستور یک برنامه اجرایی مستقل باشد، PowerShell آن را در فرآیند جداگانه راه اندازی می کند. اگر cmdlet باشد، در فرآیند PowerShell اجرا می شود. پاور شل رابط خط فرمان تعاملی فراهم می کند، که در آن می توان دستورات را وارد کرد و خروجی آنها نمایش داده شد. رابط کاربری، بر اساس کنسول win32، تکمیل برگه قابل تنظیم را ارائه می دهد. PowerShell امکان ایجاد نام های مستعار برای cmdlets را فراهم می کند، که پاور شل به صورت متنی به فراخوانی دستورات اصلی تبدیل می کند. PowerShell از پارامترهای نامگذاری شده و موقعیتی برای دستورات پشتیبانی می کند. در اجرای یک cmdlet، کار اتصال مقدار آرگومان به پارامتر توسط خود پاور شل انجام می شود، اما برای اجرا های خارجی، آرگومان ها توسط مجری خارجی مستقل از تفسیر پاور شل تجزیه می شوند.

PowerShell Extended Type System مبتنی بر نوع سیستم دات نت است، اما با معنای گسترده (به عنوان مثال مجموعه دارایی و قابلیت توسعه شخص ثالث). به عنوان مثال، با افشای تنها زیرمجموعه ای از فیلدهای داده، خصوصیات و روش ها و همچنین با مشخص کردن قالب بندی و رفتار مرتب سازی، امکان ایجاد نماهای مختلف از اشیا را فراهم می کند. این نماها با استفاده از فایلهای پیکربندی مبتنی بر XML به شی اصلی منتقل می شوند.

Cmdlets

Cmdlets دستورات تخصصی در محیط PowerShell هستند که عملکردهای خاصی را پیاده سازی می کنند. این دستورات نیتیو در پشته پاور شل هستند. Cmdlets از الگوی نامگذاری Verb-Pron مانند Get-ChildItem پیروی می کنند و به آنها در توصیف خود کمک می کند. Cmdlets نتایج خود را به عنوان اشیاء به دست می آورد و همچنین می تواند اشیا را به عنوان ورودی دریافت کند و آنها را برای استفاده به عنوان گیرنده در pipeline مناسب می کند. اگر cmdlet از اشیاء مختلفی خارج شود، هر شی از مجموعه، قبل از پردازش جسم بعدی از طریق کل pipeline منتقل می شود.

کاربرد پاورشل

PowerShell یک Windows Shell جدید است که توسط مایکروسافت ساخته شده است و تقریباً در هر سیستم عامل ویندوز (کلاینت و سرور) این روزها در دسترس است. این موارد کاربردهای مهم زیر را دارد:

  • PowerShell به شما در اتوماسیون کارهای مختلف کمک می کند. فرض کنید اگر مایل هستید ساعت 12 نیمه شب ماشین هایتان را به طور خودکار خاموش کنید، می توانید از اسکریپت PowerShell استفاده کنید. یک اسکریپت PowerShell بنویسید و آن را با استفاده از برنامه ریز کار تنظیم کنید.
  • PowerShell به مهندسان سیستم در کارهای روزمره خود کمک می کند و زندگی آنها را در صورت انجام کارهای تکراری و تکراری فرض می کند که تصور می کند هزاران کاربر AD یا ایجاد غیرفعال یا حذف حساب کاربری خود ایجاد می کند.
  • پیکربندی پیچیده را می توان در چند cmdlet PowerShell انجام داد. فرض کنید شما صدها دستگاه مشتری دارید و دوست دارید آنها را به دامنه فهرست فعال بپیوندید یا دوست دارید همه دستگاههای حذف شده متصل به سیستمهای خود را بدانید. شما می توانید آن را در چند سانتی متر انجام دهید، بدون PowerShell ممکن است مجبور شوید تعدادی از ویندوزها را برای انجام کار انجام دهید.
  • PowerShell از cmdlets استفاده می کند، نه از دستورات. اکنون، cmdlets فقط روش دیگری برای فراخوانی همان چیز نیست، بلکه آنها عملکردهای پیچیده مدیریت سیستم مانند مدیریت رجیستری و ابزار مدیریت ویندوز (WMI) را در اختیار کاربر قرار می دهند. این امر آنها را بسیار مفیدتر از اعلان فرمان می کند.
  • PowerShell شی گرا است. داده های حاصل از cmdlets اشیا هستند (نمونه ای از چگونگی جهت گیری شی باعث می شود PowerShell جذاب شود) و نه فقط متن. این انعطاف پذیری بیشتری را برای بازی با داده های پیچیده فراهم می کند.
  • PowerShell با استفاده از فریمورک دات نت توسعه داده شده است. این به اسکریپت های PowerShell اجازه می دهد تا از رابط های دات نت استفاده کنند و ویژگی هایی را که به صورت پیش فرض از طریق cmdlet ارائه نمی شوند، گسترش دهند. راه دیگر نیز از طریق تعبیه اسکریپت های PowerShell با کد NET. امکان پذیر است.

دستورات پاورشل

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

مثال اسکریپت پاورشل

PowerShell کشف ویژگی های آن را آسان می کند. به عنوان مثال، برای یافتن لیستی از cmdlet هایی که سرویس های ویندوز را مشاهده و تغییر می دهند:

Get-Command *-Service

بعد از اینکه بفهمید کدام cmdlet یک کار را انجام می دهد، می توانید با استفاده از cmdlet Get-Help اطلاعات بیشتری کسب کنید. به عنوان مثال، برای نمایش راهنمایی در مورد cmdlet Get-Service تایپ کنید:

Get-Help Get-Service

بیشتر cmdlet ها اشیایی را که می توانند دستکاری شده و سپس به عنوان متنی برای نمایش داده شوند، باز می گردانند برای درک کامل خروجی یک mdlet، خروجی را به cmdlet Get-Member وصل کنید. به عنوان مثال، دستور زیر اطلاعات مربوط به اعضای شیء را توسط cmdlet Get-Service نمایش می دهد.

Get-Service | Get-Member

پیش نیازهای یادگیری پاورشل چیست؟ 

پیش‌ نیاز های یادگیری نرم‌ افزار PowerShell به شما کمک می‌ کنند تا با بهترین شکل از این ابزار برای انجام وظایف مدیریتی و اتوماسیون در محیط‌ های ویندوز استفاده کنید. در زیر پیش‌ نیاز هایی که می‌ توانند در یادگیری PowerShell مفید باشند، آورده شده است:

  • آشنایی با مفاهیم پایه کامپیوتر و سیستم‌عامل ویندوز: آشنایی با مفاهیم پایه کامپیوتر و عملکرد سیستم‌ عامل ویندوز می‌ تواند به شما کمک کند تا اصول مبانی ویندوز را در PowerShell به کار ببرید.
  • آشنایی با فرمان های ویندوز: آشنایی با فرمان های معمولی ویندوز و کار با خط فرمان Command Prompt (CMD) می‌ تواند به شما در یادگیری و استفاده از فرمان های PowerShell کمک کند.
  • مفاهیم پایه خط فرمان و اسکریپت نویسی: آشنایی با مفاهیم پایه خط فرمان و اصول اسکریپت نویسی می‌ تواند در درک ساختار فرمان های PowerShell و ایجاد اسکریپت‌ های پیچیده مفید باشد.
  • زبان برنامه‌ نویسی: درک مفاهیم اولیه زبان‌ های برنامه‌ نویسی مانند متغیرها، حلقه‌ ها، شرطی‌ ها و توابع می‌ تواند در نوشتن اسکریپت‌ های پیشرفته با PowerShell به کمکتان بیاید.
  • آشنایی با سیستم‌ عامل‌ های مبتنی بر ویندوز: آشنایی با اصول مدیریت سیستم‌ عامل‌ های مبتنی بر ویندوز و تغییرات ممکن در آن‌ ها با استفاده از PowerShell می‌ تواند در انجام وظایف مدیریتی کمک کند.
  • آموزش مبانی PowerShell: اگر تازه با PowerShell آشنا می‌ شوید، ممکن است به آموزش مبانی و اصول این ابزار نیاز داشته باشید. آموزش‌ های آنلاین و منابع آموزشی می‌ توانند به شما کمک کنند تا با ابزارها و فرمان های پایه‌ ای PowerShell آشنا شوید.
  • مهارت‌ های اسکریپت‌ نویسی: در صورتی که تجربه اسکریپت‌ نویسی دارید، این مهارت می‌ تواند در ایجاد اسکریپت‌ های پیچیده‌ تر با PowerShell به شما کمک کند.
  • با توجه به این پیش‌ نیازها و با تمرین مداوم و ایجاد اسکریپت‌ های مختلف، می‌ توانید مهارت‌ های خود در استفاده از PowerShell را بهبود دهید و وظایف مدیریتی و اتوماسیون را با این ابزار انجام دهید.
  • آشنایی اولیه با استفاده از پوسته خط فرمان مانند Command Prompt یا Git Bash
  • نصب ویژوال استودیو کد
  • امکان نصب پسوندهای Visual Studio Code
  • امکان نصب نرم افزار بر روی کامپیوتر، در صورتی که از سیستم عامل ویندوز استفاده نمی کنید.
نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود