当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

作者:精品下载站 日期:2024-12-14 20:10:29 浏览:16 分类:玩电脑

使用 PowerShell 管理 Windows Server 角色和功能


在 Windows Server 2012R2/2016/2019 中,您可以使用图形服务器管理器控制台来安装和删除服务器角色和功能。但是,在大多数情况下,您可以更快地从 PowerShell 控制台执行相同的操作。在本文中,我们将考虑如何使用 PowerShell 管理现代 Windows Server 版本中的角色和功能。

通过 PowerShell 列出所有已安装的 Windows Server 角色和功能

用户

Get-WindowsFeature

cmdlet 显示所有可用的 Windows Server 角色和功能的列表。如果不带参数运行它,您将看到有关所有 Windows Server 组件的信息。

显示组件的名称(显示名称)、其系统名称(名称)和状态(安装状态:已安装、可用或已删除)。角色和功能列表看起来像一棵树,其中的嵌套角色与您在服务器管理器 GUI 中安装角色时看到的类似。要使用 PowerShell 安装和删除任何角色或功能,您必须知道名称列中列出的其系统名称。

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

提示。如果角色或功能被删除,则意味着其安装文件已从系统组件存储区中删除(以减小 WinSxS 文件夹的大小),并且如果没有直接 Internet 访问或 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

根据下面的屏幕截图,该服务器用作文件服务器(安装了文件和存储服务、存储服务角色)。大多数其他组件用于管理或监视服务器。

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

如果您不确切知道角色名称,可以使用通配符。例如,要检查安装了 IIS 角色的哪些 Web 组件,请运行以下命令(语法有点缩短):

Get-WindowsFeature -Name web-* | Where installed

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

您可以获取远程 Windows Server 上已安装组件的列表:

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

从安装的打印服务和打印服务器角色来看,该服务器用作打印服务器。

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

您可以使用 Get-WindowsFeature cmdlet 查找域中安装了特定角色的服务器。您可以使用 PowerShell ActiveDirectory 模块中的 Get-ADComputer cmdlet 或通过提供的服务器列表来搜索特定 Active Directory OU 中的服务器 (

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

)。

例如,您想要查找指定 AD 组织单位中具有 FileAndStorage-Services 角色的所有文件服务器(我使用 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
}

在输出中,您将获得安装了特定角色的服务器列表。

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

如何使用 PowerShell 安装 Windows Server 角色和功能?

为了在 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

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

如果您添加

-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

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

然后您将能够使用此 CSV 文件在其他典型服务器上安装相同的角色集:

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

[玩转系统] 使用 PowerShell 管理 Windows Server 角色和功能

如果已安装角色或功能,该命令将返回 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 cmdlet。

例如,要删除打印服务器角色,请运行以下命令:

Remove-WindowsFeature Print-Server -Restart

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯