Access360دانشنامه

مدیریت Role و Featureهای ویندوز سرور با PowerShell

با PowerShell، Roleها و Featureهای ویندوز سرور را فهرست کنید، نصب یا حذف کنید و پیکربندی نصب‌شده را برای استفاده در سرورهای دیگر صادر کنید.

مدیریت Roleها و Featureهای ویندوز سرور با PowerShell

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 را کنترل کنید. برای حذف گروهی یا همسان‌سازی چند سرور، فهرست مرجع را پیش از اعمال تطبیق دهید و خروجی هر سرور را جداگانه ثبت کنید.

منابع