آموزش پاورشل (Powershell)

دسته بندی: آموزش ویندوز

پاورشل

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

معرفی پاورشل

پاورشل یک فریمورک اتوماسیون وظیفه و مدیریت پیکربندی مایکروسافت است که از یک پوسته خط فرمان و یک زبان نوشتاری مرتبط تشکیل شده است. در واقع ویندوز پاورشل زبان برنامه نویسی مبتنی بر وظیفه است که به خصوص برای مدیریت سیستم طراحی شده است. ویندوز 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 دستور زبان اصلی ابزار را بر روی پوسته 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

آیا این نوشته را دوست داشتید؟