کار با افزونه‌های PowerShell: PSSnapins و ماژول‌ها

قدرت واقعی PowerShell در قابلیت توسعه‌پذیری آن نهفته است. فراتر از دستورات داخلی، مدیران می‌توانند با بارگذاری PSSnapins و ماژول‌ها قابلیت‌های جدیدی برای مدیریت فناوری‌های مختلف مانند Exchange، SQL Server، VMware و SharePoint اضافه کنند. در حالی که PSSnapins روش اولیه توسعه بودند، ماژول‌ها که از نسخه 2 معرفی شدند، اکنون روش ترجیحی هستند و در نسخه 3 به بعد از قابلیت بارگذاری خودکار (autoloading) نیز پشتیبانی می‌کنند. مدیریت افزونه‌ها شامل کشف، بارگذاری، بررسی دستورات اضافه‌شده و مدیریت تعارض‌هاست. شناخت این مکانیزم‌ها برای مدیریت کارآمد سیستم‌ها ضروری است.

PowerShell ExtensionsPSSnapinsModulesAutoloadingGet-ModuleImport-Module

~2 دقیقه مطالعه • بروزرسانی ۳۰ آذر ۱۴۰۴

1. یک شل، افزونه‌های متعدد


نسخه خاصی از PowerShell برای محصولات وجود ندارد. میانبرهایی مانند “Exchange Management Shell” در واقع PowerShell.exe را با آرگومان‌هایی اجرا می‌کنند که ماژول‌ها یا Snapinها را بارگذاری می‌کند. مدیران می‌توانند چندین افزونه را در یک شل سفارشی ترکیب کنند.


2. PSSnapins در برابر ماژول‌ها


  • PSSnapins: معرفی‌شده در نسخه 1، نوشته‌شده با زبان‌های .NET، نیازمند نصب و ثبت در سیستم.
  • ماژول‌ها: معرفی‌شده در نسخه 2، قابل حمل، اغلب قابل کپی بین سیستم‌ها، و پشتیبان بارگذاری خودکار در نسخه 3.

3. بارگذاری و بارگذاری خودکار


پیش از نسخه 3، افزونه‌ها باید به‌صورت دستی یا از طریق پروفایل بارگذاری می‌شدند. در نسخه 3، ماژول‌های ذخیره‌شده در $env:PSModulePath به‌طور خودکار هنگام اجرای دستوراتشان بارگذاری می‌شوند. PSSnapins از این قابلیت پشتیبانی نمی‌کنند.


4. کشف افزونه‌ها


  • Get-PSSnapin –Registered: نمایش Snapinهای نصب‌شده.
  • Get-Module -ListAvailable: نمایش ماژول‌های موجود در PSModulePath.
  • کشف از راه دور: استفاده از Get-Module -PSSession برای مشاهده ماژول‌های موجود روی سیستم‌های دیگر.

5. بارگذاری افزونه‌ها


  • Add-PSSnapin: بارگذاری Snapin.
  • Import-Module: بارگذاری ماژول (در صورت وجود در PSModulePath به‌طور خودکار بارگذاری می‌شود).

6. کشف دستورات افزونه‌ها


با Get-Command -Module می‌توان دستورات افزونه‌ها را مشاهده کرد. افزونه‌ها همچنین می‌توانند Provider اضافه کنند که با Get-PSProvider قابل مشاهده است.


7. مدیریت افزونه‌ها


  • Remove-Module: خروج ماژول.
  • Remove-PSSnapin: حذف Snapin.
  • Get-Module / Get-PSSnapin: نمایش افزونه‌های بارگذاری‌شده.

در صورت تعارض نام دستورات، آخرین نسخه بارگذاری‌شده اجرا می‌شود. برای رفع تعارض می‌توان از نام کامل (مانند ActiveDirectory\Get-ADUser) یا پارامتر -Prefix استفاده کرد.


8. تنظیمات بارگذاری خودکار


متغیر $PSModuleAutoLoadingPreference رفتار بارگذاری خودکار را کنترل می‌کند:


  • All: بارگذاری خودکار همه ماژول‌ها در اولین استفاده.
  • ModuleQualified: بارگذاری فقط در صورت استفاده از نام کامل ماژول.
  • None: غیرفعال‌سازی بارگذاری خودکار.

نتیجه‌گیری


افزونه‌های PowerShell ستون فقرات مدیریت پیشرفته هستند. با تسلط بر کشف، بارگذاری و مدیریت ماژول‌ها و Snapinها، مدیران می‌توانند از تمام ظرفیت PowerShell برای مدیریت فناوری‌های مختلف بهره‌برداری کنند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی