Windows Server 2012R2/2016/2019-এ, আপনি গ্রাফিক্যাল Server Manager কনসোল ব্যবহার করে সার্ভার রোল এবং ফিচার ইনস্টল ও রিমুভ করতে পারেন। তবে, অধিকাংশ ক্ষেত্রে আপনি একই কাজ PowerShell কনসোল থেকে অনেক দ্রুত করতে পারেন। এই আর্টিকেলে আমরা আধুনিক Windows Server ভার্সনগুলিতে PowerShell দিয়ে রোল এবং ফিচার ম্যানেজ করার পদ্ধতি বিবেচনা করব।
বিষয়সূচি:
- PowerShell দিয়ে ইনস্টল করা সকল Windows Server Roles & Feature তালিকা করা
- PowerShell ব্যবহার করে Windows Server Roles & Features ইনস্টল করার পদ্ধতি?
- একাধিক রিমোট Windows Server-এ রোল ডিপ্লয় করার পদ্ধতি?
- PowerShell দিয়ে Windows Server-এ রোল বা ফিচার আনইনস্টল করার পদ্ধতি?
PowerShell দিয়ে ইনস্টল করা সকল Windows Server Roles & Feature তালিকা করা
Get-WindowsFeature ক্যাডলেট ব্যবহার করুন সকল উপলব্ধ Windows Server রোল এবং ফিচারের তালিকা দেখতে। আপনি যদি এটি প্যারামিটার ছাড়া চালান, তবে আপনি সকল Windows Server কম্পোনেন্ট সম্পর্কে তথ্য দেখবেন।
একটি কম্পোনেন্টের নাম (Display Name), এর সিস্টেম নাম (Name) এবং স্টেট (Install State: Installed, Available or Removed) প্রদর্শিত হয়। রোল এবং ফিচারের তালিকা একটি ট্রি আকারে থাকে নেস্টেড রোলসহ, ঠিক সেভাবেই যা আপনি Server Manager GUI-এ রোল ইনস্টল করার সময় দেখেন। PowerShell ব্যবহার করে যেকোনো রোল বা ফিচার ইনস্টল ও রিমুভ করতে, আপনাকে Name কলামে তালিকাভুক্ত তাদের সিস্টেম নাম জানতে হবে।

হিন্ট. যদি একটি রোল বা ফিচার Removed হয়, তবে এর মানে এর ইনস্টলেশন ফাইলগুলো সিস্টেম কম্পোনেন্ট স্টোর থেকে রিমুভ করা হয়েছে (WinSxS ফোল্ডারের আকার কমাতে)। আপনি ডায়রেক্ট ইন্টারনেট অ্যাক্সেস বা Windows Server ইনস্টলেশন ISO ছাড়া রোলটি ইনস্টল করতে পারবেন না (উদাহরণস্বরূপ .Net 3.5 ইনস্টলেশনের উদাহরণ দেখুন)।
আপনি অনলাইন আপনার ইমেজ থেকে রোল বা কম্পোনেন্ট রিমুভ করতে পারেন এভাবে:
Uninstall-WindowsFeature –Name DHCP –Remove
Removed DHCP রোল ইনস্টল করতে এই ক্যাডলেটটি ব্যবহার করুন:
Install-WindowsFeature DHCP (আপনাকে ডায়রেক্ট ইন্টারনেট অ্যাক্সেস দরকার)
অথবা আপনি আপনার Windows Server ISO ইমেজ থেকে কম্পোনেন্ট বাইনারি ফাইলগুলো রিস্টোর করতে পারেন:
Install-WindowsFeature DHCP -Source E:\sources\sxs
আপনি ইনস্টল করা সার্ভার ফিচারগুলো তালিকা করতে পারেন:
Get-WindowsFeature | Where-Object {$_. installstate -eq "installed"} | ft Name,Installstate
নিচের স্ক্রিনশট অনুযায়ী, এই সার্ভারটি ফাইল সার্ভার হিসেবে ব্যবহৃত হচ্ছে (FileAndStorage-Services, Storage-Services রোল ইনস্টল করা আছে)। অধিকাংশ অন্যান্য কম্পোনেন্ট সার্ভার ম্যানেজ বা মনিটর করার জন্য ব্যবহৃত হচ্ছে।

আপনি যদি রোলের সঠিক নাম না জানেন, তবে ওয়াইল্ডকার্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, IIS রোলের কোন ওয়েব কম্পোনেন্টগুলো ইনস্টল করা আছে তা চেক করতে এই কমান্ডটি চালান (সিনট্যাক্স একটু সংক্ষিপ্ত):
Get-WindowsFeature -Name web-* | Where installed

আপনি রিমোট Windows Server-এ ইনস্টল করা কম্পোনেন্টের তালিকা পেতে পারেন:
Get-WindowsFeature -ComputerName ny-spool1 | Where installed | ft Name,Installstate
ইনস্টল করা Print-Services এবং Print-Server রোল লক্ষ্য করলে, এই সার্ভারটি প্রিন্ট সার্ভার হিসেবে ব্যবহৃত হচ্ছে।

আপনি Get-WindowsFeature ক্যাডলেট ব্যবহার করে আপনার ডোমেনে সেই সার্ভারগুলো খুঁজে বের করতে পারেন যeken নির্দিষ্ট রোল ইনস্টল করা আছে। আপনি আপনার সার্ভারগুলো একটি নির্দিষ্ট Active Directory OU-এ Get-ADComputer ক্যাডলেট ব্যবহার করে PowerShell ActiveDirectory মডিউল থেকে বা সরাসরি সার্ভার লিস্ট দিয়ে ($servers = ('server1', 'server2')) সার্চ করতে পারেন।
উদাহরণস্বরূপ, আপনি নির্দিষ্ট AD অর্গানাইজেশনাল ইউনিটে FileAndStorage-Services রোলযুক্ত সকল ফাইল সার্ভার খুঁজে বের করতে চান (আমি Visual Studio Code ব্যবহার করছি PowerShell এডিটর হিসেবে)। নিচের স্ক্রিপ্টটি ব্যবহার করুন:
import-module activedirectory
$Servers=get-adcomputer -properties * -Filter {Operatingsystem -notlike "*2008 R2*" -and enabled -eq "true" -and Operatingsystem -like "*Windows Server*"} -SearchBase ‘OU=Servers,OU=UK,DC=woshub,DC=com’ |select name
Foreach ($server in $Servers)
{
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
}
আউটপুটে, আপনি সেই সার্ভারগুলোর তালিকা পাবেন যeken নির্দিষ্ট রোলটি ইনস্টল করা আছে।

PowerShell ব্যবহার করে Windows Server Roles & Features ইনস্টল করার পদ্ধতি?
Windows Server-এ রোল এবং ফিচার ইনস্টল করতে, Install-WindowsFeature ক্যাডলেট ব্যবহার করা হয়।
বর্তমান সার্ভারে DNS সার্ভার রোল এবং ম্যানেজমেন্ট টুলস (PowerShell DNSServer মডিউল সহ) ইনস্টল করতে এই কমান্ডটি চালান:
Install-WindowsFeature DNS -IncludeManagementTools
ডিফল্টভাবে, ক্যাডলেটটি সকল ডিপেন্ডেন্ট রোল এবং ফিচার ইনস্টল করে। ইনস্টলেশনের আগে ডিপেন্ডেন্সি লিস্ট দেখতে WhatIf অপশন ব্যবহার করুন:
Install-WindowsFeature -Name UpdateServices -WhatIf
উদাহরণস্বরূপ, WSUS রোল ইনস্টল করতে হলে, আপনাকে কিছু IIS কম্পোনেন্টও ইনস্টল করতে হবে।
What if: Continue with installation? What if: Performing installation for "[Windows Server Update Services] Windows Server Update What if: Performing installation for "[Windows Server Update Services] WID Database". What if: Performing installation for "[Windows Server Update Services] WSUS Services". What if: Performing installation for "[Web Server (IIS)] Windows Authentication". What if: Performing installation for "[Web Server (IIS)] Dynamic Content Compression". What if: Performing installation for "[Web Server (IIS)] Performance". What if: Performing installation for "[Web Server (IIS)] Static Content". What if: Performing installation for "[Windows Internal Database] Windows Internal Database". What if: The target server may need to be restarted after the installation completes.
Remote Desktop Session Host রোল, RDS লাইসেন্সিং রোল এবং RDS রিমোট ম্যানেজমেন্ট টুলস ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
Install-WindowsFeature -ComputerName lon-rds3 RDS-RD-Server, RDS-Licensing –IncludeAllSubFeature –IncludeManagementTools –Restart

আপনি যদি –Restart প্যারামিটার যোগ করেন, তবে প্রয়োজনে আপনার সার্ভার অটোমেটিক্যালি রিস্টার্ট হবে।
আপনি নিচের কমান্ডও ব্যবহার করে কম্পোনেন্ট ইনস্টল করতে পারেন। উদাহরণস্বরূপ, SMTP সার্ভার রোল ইনস্টল করতে:
Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature
একাধিক রিমোট Windows Server-এ রোল ডিপ্লয় করার পদ্ধতি?
টিপিক্যাল সার্ভার ডিপ্লয় করার সময় একটি আরো আকর্ষণীয় অপশন আছে। আপনি একটি রেফারেন্স Windows Server-এ আপনার চাওয়া ফিচারগুলো ইনস্টল করে, ইনস্টল করা রোলের তালিকা একটি CSV ফাইলে এক্সপোর্ট করতে পারেন:
Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\PS\InstalledRoles.csv -NoTypeInformation –Verbose

তারপর আপনি এই CSV ফাইলটি ব্যবহার করে অন্য টিপিক্যাল সার্ভারগুলিতে একই সেট রোল ইনস্টল করতে পারেন:
Import-Csv C:\PS\Roles.csv | foreach{ Install-WindowsFeature $_.name }

যদি একটি রোল বা ফিচার ইতিমধ্যে ইনস্টল করা থাকে, তবে কমান্ডটি NoChangeNeeded রিটার্ন করবে এবং পরবর্তী রোল ইনস্টলেশনের সাথে এগিয়ে যাবে।
অথবা একই রোল সেট একাধিক রিমোট সার্ভারে ইনস্টল করতে আপনি এই কমান্ডটি ব্যবহার করতে পারেন:
$servers = ('ny-rds1', 'ny-rds2',’ny-rds3’,’ny-rds4’)
foreach ($server in $servers) {Install-WindowsFeature RDS-RD-Server -ComputerName $server}
PowerShell দিয়ে Windows Server-এ রোল বা ফিচার আনইনস্টল করার পদ্ধতি?
Windows Server রোল বা ফিচার রিমুভ করতে, Remove-WindowsFeature ক্যাডলেট ব্যবহার করা হয়।
উদাহরণস্বরূপ, প্রিন্ট সার্ভার রোল রিমুভ করতে কমান্ডটি চালান:
Remove-WindowsFeature Print-Server -Restart