ค้นหาเว็บไซต์

การจัดการบทบาทและคุณสมบัติของ Windows Server ด้วย PowerShell


ใน Windows Server 2012R2/2016/2019 คุณสามารถใช้คอนโซลตัวจัดการเซิร์ฟเวอร์แบบกราฟิกเพื่อติดตั้งและลบบทบาทและคุณลักษณะของเซิร์ฟเวอร์ อย่างไรก็ตาม ในกรณีส่วนใหญ่ คุณสามารถทำสิ่งเดียวกันจากคอนโซล PowerShell ได้เร็วกว่ามาก ในบทความนี้ เราจะพิจารณาวิธีจัดการบทบาทและฟีเจอร์ใน Windows Server เวอร์ชันใหม่ด้วย PowerShell

แสดงรายการบทบาทและคุณลักษณะเซิร์ฟเวอร์ Windows ที่ติดตั้งทั้งหมดผ่าน PowerShell

ผู้ใช้

Get-WindowsFeature

cmdlet เพื่อแสดงรายการบทบาทและคุณสมบัติของ Windows Server ที่มีอยู่ทั้งหมด หากคุณเรียกใช้โดยไม่มีพารามิเตอร์ คุณจะเห็นข้อมูลเกี่ยวกับคอมโพเนนต์ Windows Server ทั้งหมด

ชื่อของคอมโพเนนต์ (ชื่อที่แสดง) ชื่อระบบ (ชื่อ) และสถานะ (สถานะการติดตั้ง: ติดตั้ง พร้อมใช้งาน หรือลบออก) จะแสดงขึ้น รายการของบทบาทและคุณลักษณะมีลักษณะเหมือนต้นไม้ที่มีบทบาทซ้อนกันคล้ายกับที่คุณเห็นเมื่อคุณติดตั้งบทบาทใน Server Manager GUI ในการติดตั้งและลบบทบาทหรือคุณสมบัติโดยใช้ PowerShell คุณต้องทราบชื่อระบบที่แสดงอยู่ในคอลัมน์ ชื่อ

คำใบ้ หากบทบาทหรือคุณสมบัติถูกลบออก หมายความว่าไฟล์การติดตั้งถูกลบออกจากคอมโพเนนต์ระบบ (เพื่อลดขนาดของโฟลเดอร์ WinSxS) และคุณจะไม่สามารถติดตั้งบทบาทได้หากไม่มี การเข้าถึงอินเทอร์เน็ตโดยตรงหรือการติดตั้ง Windows Server ISO (ดูตัวอย่างการติดตั้ง .Net 3.5)

คุณสามารถลบบทบาทหรือส่วนประกอบออกจากรูปภาพของคุณทางออนไลน์ได้ดังนี้:

Uninstall-WindowsFeature -Name DHCP -Remove

หากต้องการติดตั้งบทบาท DHCP ที่ถูกลบ ให้ใช้ cmdlet นี้:

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 cmdlet เพื่อค้นหาเซิร์ฟเวอร์ในโดเมนของคุณ ซึ่งมีการติดตั้งบทบาทเฉพาะไว้ คุณสามารถค้นหาเซิร์ฟเวอร์ของคุณใน Active Directory OU เฉพาะได้โดยใช้ Get-ADComputer cmdlet จากโมดูล PowerShell ActiveDirectory หรือตามรายการเซิร์ฟเวอร์ที่ให้มา (

$servers = ('server1', 'server2')

).

ตัวอย่างเช่น คุณต้องการค้นหาไฟล์เซิร์ฟเวอร์ทั้งหมดที่มีบทบาท FileAndStorage-Services ในหน่วยองค์กร AD ที่ระบุ (ฉันใช้ Visual Studio Code เป็นตัวแก้ไข PoweShell) ใช้สคริปต์ต่อไปนี้:

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=a-d,DC=com’ |select name
Foreach ($server in $Servers)
{
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
}

ในผลลัพธ์ คุณจะได้รับรายชื่อเซิร์ฟเวอร์ที่ติดตั้งบทบาทเฉพาะ

จะติดตั้งบทบาทและคุณสมบัติของ Windows Server โดยใช้ PowerShell ได้อย่างไร

ในการติดตั้งบทบาทและคุณสมบัติบน Windows Server จะใช้ cmdlet Install-WindowsFeature

ในการติดตั้งบทบาทเซิร์ฟเวอร์ DNS และเครื่องมือการจัดการ (รวมถึงโมดูล Powershell DNSServer) บนเซิร์ฟเวอร์ปัจจุบัน ให้รันคำสั่งนี้:

Install-WindowsFeature DNS -IncludeManagementTools

ตามค่าเริ่มต้น cmdlet จะติดตั้งบทบาทและคุณลักษณะที่เกี่ยวข้องทั้งหมด หากต้องการแสดงรายการการพึ่งพาก่อนการติดตั้ง ให้ใช้ตัวเลือก

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.

ในการติดตั้งบทบาทโฮสต์เซสชันเดสก์ท็อประยะไกล บทบาทสิทธิ์การใช้งาน 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 ระยะไกลหลายตัวได้อย่างไร

มีตัวเลือกอื่นที่น่าสนใจเมื่อคุณปรับใช้เซิร์ฟเวอร์ทั่วไป คุณสามารถติดตั้งคุณลักษณะที่คุณต้องการบน 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}

จะถอนการติดตั้งบทบาทหรือคุณลักษณะบน Windows Server ด้วย PowerShell ได้อย่างไร

หากต้องการลบบทบาทหรือคุณสมบัติของ Windows Server จะใช้ cmdlet Remove-WindowsFeature

ตัวอย่างเช่น หากต้องการลบบทบาทเซิร์ฟเวอร์การพิมพ์ ให้รันคำสั่ง:

Remove-WindowsFeature Print-Server -Restart

บทความที่เกี่ยวข้อง