Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

จัดการ Windows Server Roles & Features ด้วย PowerShell

Windows Server 2012R2/2016/2019 จัดการ Roles/Features ผ่าน Server Manager GUI ได้ แต่ PowerShell เร็วกว่ามาก

List Installed Roles & Features

Get-WindowsFeature แสดงทั้งหมด (Display Name, Name, Install State: Installed/Available/Removed)

จัดการ Windows Server Roles & Features ด้วย PowerShell

Removed = ไฟล์ถูกลบจาก Component Store (WinSxS) ติดตั้งใหม่ต้อง Internet หรือ ISO

Uninstall-WindowsFeature –Name DHCP –Remove
Install-WindowsFeature DHCP  # ต้อง Internet
Install-WindowsFeature DHCP -Source E:\sources\sxs  # จาก ISO

List Installed Only:

Get-WindowsFeature | Where-Object {$_.installstate -eq "installed"} | ft Name,Installstate
จัดการ Windows Server Roles & Features ด้วย PowerShell

Wildcard: Get-WindowsFeature -Name web-* | Where installed (IIS Components)

จัดการ Windows Server Roles & Features ด้วย PowerShell

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

จัดการ Windows Server Roles & Features ด้วย PowerShell

ค้นหา Server ใน AD OU ที่มี Role เฉพาะ:

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 Server Roles & Features ด้วย PowerShell

Install Roles & Features

Install-WindowsFeature

# DNS + Management Tools
Install-WindowsFeature DNS -IncludeManagementTools

# Check Dependencies
Install-WindowsFeature -Name UpdateServices -WhatIf

Output แสดง Dependencies (WSUS ต้อง IIS Components ฯลฯ)

# RDS Session Host + Licensing + Mgmt Tools + Auto Restart
Install-WindowsFeature -ComputerName lon-rds3 RDS-RD-Server, RDS-Licensing –IncludeAllSubFeature –IncludeManagementTools –Restart
จัดการ Windows Server Roles & Features ด้วย PowerShell

Pipeline: Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature

Deploy Roles บนหลาย Server

Export Installed Roles จาก Reference Server:

Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\PS\InstalledRoles.csv -NoTypeInformation –Verbose
จัดการ Windows Server Roles & Features ด้วย PowerShell

Import ติดตั้งบน Server อื่น:

Import-Csv C:\PS\Roles.csv | foreach{ Install-WindowsFeature $_.name }
จัดการ Windows Server Roles & Features ด้วย PowerShell

Already Installed → NoChangeNeeded ข้ามต่อ

Multiple Remote Servers:

$servers = ('ny-rds1', 'ny-rds2', 'ny-rds3', 'ny-rds4')
foreach ($server in $servers) { Install-WindowsFeature RDS-RD-Server -ComputerName $server }

Uninstall Role/Feature

Remove-WindowsFeature

Remove-WindowsFeature Print-Server -Restart