PowerShell برای مدیریت Roleها و Featureهای ویندوز سرور، بهویژه در Server Core، مسیر سریعتری نسبت به کنسولهای گرافیکی فراهم میکند. این راهنما گردشکار عملی بررسی وضعیت، نصب، حذف و بازتولید پیکربندی را پوشش میدهد.
۱. پیشنیازها و شناسایی نامها
در یک نشست PowerShell با مجوز مدیریتی کار کنید. Cmdletهای این راهنما باید روی Windows Server اجرا شوند و برای عملیات راه دور، دسترسی مدیریتی و ارتباط با سیستم مقصد لازم است. ابتدا فهرست Roleها و Featureهای قابل شناسایی را ببینید:
Get-WindowsFeatureخروجی، نام نمایشی، نام سیستمی و وضعیت هر مورد را نشان میدهد. برای نصب یا حذف، مقدار ستون Name را استفاده کنید. وضعیتها معمولاً شامل Installed، Available و Removed هستند.
۲. بررسی وضعیت نصب
برای محدود کردن خروجی به موارد نصبشده:
Get-WindowsFeature | ? Installed -eq $trueاگر نام دقیق را نمیدانید، از الگو استفاده کنید؛ برای نمونه، جستوجوی اجزای IIS:
Get-WindowsFeature -Name web-* | Where installedوضعیت یک سرور راه دور را نیز میتوان مستقیماً خواند:
Get-WindowsFeature -ComputerName ny-spool1 | Where installed | ft Name,Installstateبرای بررسی چند سرور، میتوانید فهرست نامها را در متغیر قرار دهید یا با Get-ADComputer، رایانههای فعال دارای سیستمعامل Windows Server را از یک OU انتخاب کنید. نتیجه را پیش از هر تغییر ذخیره و بازبینی کنید.
۳. نصب Role یا Feature
برای افزودن مؤلفه از Install-WindowsFeature استفاده کنید. نمونه نصب DNS همراه با ابزارهای مدیریتی:
Install-WindowsFeature DNS -IncludeManagementToolsوابستگیها بهصورت پیشفرض نصب میشوند. برای مشاهده اثر احتمالی پیش از اجرا، از -WhatIf استفاده کنید:
Install-WindowsFeature -Name UpdateServices -WhatIfبرای نصب روی سرور دیگر میتوان نام مقصد و چند Role را مشخص کرد. گزینههای -IncludeAllSubFeature و -IncludeManagementTools بهترتیب زیر Featureها و ابزارهای مدیریتی را اضافه میکنند. استفاده از -Restart ممکن است پس از نصب، سرور را خودکار راهاندازی کند؛ آن را فقط در پنجره نگهداری مناسب به کار ببرید.
برخی Featureها ممکن است در Component Store موجود نباشند. در این حالت، منبع نصب باید با نسخه سیستم سازگار باشد؛ نمونه زیر از مسیر SXS یک ISO استفاده میکند:
Install-WindowsFeature NET-Framework-Core -Source E:\sources\sxs۴. صدور و استفاده مجدد از پیکربندی
برای تهیه الگوی Roleهای نصبشده، خروجی XML بگیرید:
Get-WindowsFeature | ? { $_.Installed } | Export-Clixml .\SRV1_InstalledRoles.xmlفهرست متنی نیز برای بازبینی دستی سادهتر است:
Get-WindowsFeature | ? { $_.Installed } | Select Name | ForEach-Object { $_.Name } | Out-File .\SRV1_InstalledRoles.txtپس از انتقال فایل به سرور مقصد، موارد را اعمال کنید:
$(Get-Content .\SRV1_InstalledRoles.txt) | Add-WindowsFeatureقبل از اجرای این روش در چند سرور، فایل و نتیجه هر مقصد را جداگانه بررسی کنید؛ تفاوت نسخه، وابستگیها یا وضعیت قبلی میتواند پیکربندی نهایی را تغییر دهد. اجرای همزمان Jobها نیز نیازمند مسیر اشتراکی قابل دسترس و آزمون آزمایشگاهی است.
۵. حذف و راستیآزمایی
برای حذف یک Role یا Feature از Remove-WindowsFeature استفاده کنید:
Remove-WindowsFeature Print-Server -Restartراهاندازی مجدد را فقط پس از بررسی اثر سرویس و وابستگیهای آن انجام دهید. بعد از نصب یا حذف، دوباره فهرست وضعیت را اجرا کنید و خروجی عملیات را بررسی کنید. اگر مؤلفه از قبل نصب باشد، نتیجه میتواند NoChangeNeeded باشد.
جمعبندی عملی
الگوی امن کار این است: نام سیستمی را با Get-WindowsFeature پیدا کنید، وابستگیها را با -WhatIf بررسی کنید، تغییر را در محیط آزمایشی اجرا کنید، سپس وضعیت مقصد و نیاز به Restart را کنترل کنید. برای حذف گروهی یا همسانسازی چند سرور، فهرست مرجع را پیش از اعمال تطبیق دهید و خروجی هر سرور را جداگانه ثبت کنید.
