Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

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

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

สารบัญ:

  • แสดงรายการบทบาทและคุณลักษณะของเซิร์ฟเวอร์ Windows ที่ติดตั้งทั้งหมดผ่าน PowerShell
  • จะติดตั้งบทบาทและคุณสมบัติของเซิร์ฟเวอร์ Windows โดยใช้ PowerShell ได้อย่างไร
  • จะปรับใช้บทบาทบนเซิร์ฟเวอร์ Windows ระยะไกลหลายเครื่องได้อย่างไร
  • จะถอนการติดตั้งบทบาทหรือคุณลักษณะบน Windows Server ด้วย PowerShell ได้อย่างไร

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

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

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

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

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

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

Uninstall-WindowsFeature –Name DHCP –Remove

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

Install-WindowsFeature DHCP (คุณจะต้องเชื่อมต่ออินเทอร์เน็ตโดยตรง)

หรือคุณสามารถกู้คืนไฟล์ไบนารีคอมโพเนนต์จากอิมเมจ ISO ของ Windows Server:

Install-WindowsFeature DHCP -Source E:\sources\sxs

คุณสามารถแสดงรายการคุณลักษณะเซิร์ฟเวอร์ที่ติดตั้ง:

Get-WindowsFeature | Where-Object {$_. installstate -eq "installed"} | ft Name,Installstate

ตามภาพหน้าจอด้านล่าง เซิร์ฟเวอร์นี้ใช้เป็นไฟล์เซิร์ฟเวอร์ (ติดตั้งบทบาท FileAndStorage-Services, Storage-Services) ส่วนประกอบอื่นๆ ส่วนใหญ่ใช้เพื่อจัดการหรือตรวจสอบเซิร์ฟเวอร์

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

หากคุณไม่ทราบชื่อบทบาทที่แน่นอน คุณสามารถใช้สัญลักษณ์แทนได้ ตัวอย่างเช่น หากต้องการตรวจสอบว่ามีการติดตั้งคอมโพเนนต์เว็บของบทบาท IIS ใดบ้าง ให้เรียกใช้คำสั่งนี้ (ไวยากรณ์จะสั้นลงเล็กน้อย):

Get-WindowsFeature -Name web-* | Where installed

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

คุณสามารถรับรายการส่วนประกอบที่ติดตั้งบนเซิร์ฟเวอร์ Windows ระยะไกล:

Get-WindowsFeature -ComputerName ny-spool1 | Where installed | ft Name,Installstate

เมื่อพิจารณาจากบทบาท Print-Services และ Print-Server ที่ติดตั้งไว้ เซิร์ฟเวอร์นี้จะถูกใช้เป็นเซิร์ฟเวอร์การพิมพ์

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

คุณสามารถใช้ 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=woshub,DC=com’ |select name
Foreach ($server in $Servers)
{
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
}

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

จะติดตั้งบทบาทและคุณลักษณะของเซิร์ฟเวอร์ Windows โดยใช้ PowerShell ได้อย่างไร

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

ในการติดตั้งบทบาทเซิร์ฟเวอร์ 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

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

หากคุณเพิ่ม –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

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

จากนั้น คุณจะสามารถใช้ไฟล์ CSV นี้เพื่อติดตั้งชุดบทบาทเดียวกันบนเซิร์ฟเวอร์ทั่วไปอื่นๆ:

Import-Csv C:\PS\Roles.csv | foreach{ Install-WindowsFeature $_.name }

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

หากมีการติดตั้งบทบาทหรือคุณลักษณะแล้ว คำสั่งจะส่งคืน 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 Remove-WindowsFeature ใช้ cmdlet

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

Remove-WindowsFeature Print-Server -Restart