本主题描述了如何使用 Uninstall-WindowsFeature cmdlet 在“按需功能”配置中删除功能文件。
“按需功能”是 Windows 8 和 Windows Server 2012 中引入的功能,它支持从操作系统移除角色和功能文件(有时被称为功能“负载”),以节省磁盘空间,并从远程位置或安装媒体而非本地计算机安装角色和功能。 你可以从运行中的物理或虚拟计算机删除功能文件。 你也可以对 Windows 映像 (WIM) 文件或脱机虚拟硬盘 (VHD) 进行添加或删除功能文件,为“按需功能”配置创建一个可复制的副本。
在“按需功能”配置过程中,如果功能文件在计算机上不可用,而安装需要那些功能文件,则可以引导 Windows Server 2012 R2 或 Windows Server 2012 从来自 Windows 更新或来自安装媒体的并排功能存储区(一个包含功能文件并对网络上的计算机可用的共享文件夹)获取文件。 默认情况下,当功能文件不在目标服务器上时,“按需功能”就会按照所示顺序执行下列任务,来搜索丢失的功能文件。
在“添加角色和功能”向导的用户或 DISM 安装命令指定的位置中搜索
评估“组策略”设置的配置,“计算机配置”\“管理模板”\“系统”\“指定可选组件安装和组件修复的设置”
搜索 Windows 更新
你可以采用下列任意方法覆盖默认的“按需功能”行为。
通过添加
Install-WindowsFeature
参数指定一个备用源路径,作为Source
cmdlet 的一部分使用“添加角色和功能”向导安装功能时,在“确认安装选项”页面上指定备用源路径
配置“组策略”设置,“指定可选组件安装和组件修复的设置”
本主题包含以下各节:
创建功能文件或并排存储区
本节介绍如何设置远程功能文件共享文件夹(也称为并排存储区),用于存储在运行 Windows Server 2012 R2 或 Windows Server 2012 的服务器上安装角色、角色服务和功能所需的文件。 在设置功能存储区后,可以在运行这些操作系统的服务器上安装角色、用户服务和功能,并指定功能存储区为安装源文件位置。
创建功能文件存储区的步骤
在网络的服务器上创建一个共享文件夹。 例如,\\network\share\sxs。
验证是否给功能存储区分配了恰当的权限。 源路径或文件共享必须将“读取”权限授予“所有人”组(出于安全原因不推荐这样做),或授予计划使用此功能存储区在其上安装功能的服务器的计算机帐户(DOMAINSERverNAME$);授予用户帐户访问权限是不够的。
你可以通过在 Windows 桌面上进行以下任意一种操作,来访问文件共享和权限设置。
右键单击共享文件夹,单击“属性”,然后在“安全”选项卡上更改允许的用户及其访问文件夹的权限。
右键单击共享文件夹,指向“共享给”,然后单击“特定用户”。
注意
即使工作组服务器的计算机帐户具有外部共享“读取”权限,位于工作组中的服务器也无法访问外部文件共享。 为工作组服务器服务的备用源位置包括安装媒体、Windows 更新和存储在本地工作组服务器上的 VHD 或 WIM 文件。
将 Sources\SxS 文件夹从 Windows Server 安装媒体复制到步骤 1 中创建的共享文件夹中。
安装 .NET Framework 3.5 和其他按需功能
从 Windows Server 2012 和 Windows 8 开始,.NET Framework 3.5 的功能文件(包括 .NET Framework 2.0 和 .NET Framework 3.0)默认在本地计算机上不可用。 文件已删除。 已在按需功能配置中删除的功能的文件以及 .NET Framework 3.5 的功能文件通过 Windows 更新提供。 默认情况下,如果功能文件不可用于运行 Windows Server 2012 或更高版本的目标服务器,则安装进程将通过连接到 Windows 更新来搜索缺少的文件。 通过在安装期间配置组策略设置或指定备用源路径,可以覆盖默认行为,不管你是使用“添加角色和功能”向导 GUI 或命令行安装。
通过执行以下一项操作,可以安装 .NET Framework 3.5。
安装 .NET Framework 3.5 的方法是使用 运行 Install-WindowsFeature cmdlet 来添加
Source
参数,并指定一个获取 .NET Framework 3.5 功能文件的源。 如果未添加Source
参数,安装进程先确定组策略设置是否指定了功能文件路径,并在找到此类路径后,使用 Windows 更新搜索缺少的功能文件。使用使用“添加角色和功能”向导安装 .NET Framework 3.5,在“添加角色和功能”向导的“确认安装选项”页上指定备用源文件位置。
使用 使用 DISM 安装 .NET Framework 3.5 来从 Windows 更新中默认获取文件,或通过指定到安装媒体的源路径来实现获取。
如果本地计算机上找不到功能文件,请在组策略中为 .NET Framework 3.5 或其他功能配置功能文件的备用源。
重要
从远程来源安装功能文件时,源路径或文件共享必须将“读取”权限授予“任何人”组(出于安全原因,不建议这样做),或授予目标服务器的计算机(本地系统)帐户;授予用户帐户访问权限并不足够。
即使工作组服务器的计算机帐户具有外部共享“读取”权限,位于工作组中的服务器也无法访问外部文件共享。 为工作组服务器服务的备用源位置包括安装媒体、Windows 更新和存储在本地工作组服务器上的 VHD 或 WIM 文件。
当你在运行的物理服务器上安装角色、角色服务和功能时,可以指定 WIM 文件作为替换功能文件源。 WIM 文件的源路径应采用以下格式, WIM 作为前缀,以及功能文件作为后缀的索引: WIM:e:\sources\install.wim:4。 但是,无法直接使用 WIM 文件作为将角色、角色服务和功能安装到脱机 VHD 的源;必须安装脱机 VHD 并指向其源文件的安装路径,或必须指向包含 WIM 文件内容副本的文件夹。
通过运行 Install-WindowsFeature cmdlet 来安装 .NET Framework 3.5
使用提升的用户权限执行以下操作之一打开 Windows PowerShell 会话。
注意
如果要在远程服务器中安装角色和功能,则无需使用提升的用户权限运行 Windows PowerShell。
在 Windows 桌面上,右键单击任务栏上的 Windows PowerShell,然后单击“以管理员身份运行”。
在 Windows 的“开始”屏幕上,右键单击“Windows PowerShell”磁贴,然后单击应用栏上的“以管理员身份运行”。
在运行 Windows Server 2012 R2 或 Windows Server 2012 的服务器核心安装选项的服务器上,将 PowerShell 键入命令提示符,然后按 Enter。
输入以下命令,然后按 Enter。 在以下示例中,源文件位于驱动器 D 上的安装介质中的并排存储(缩写为 SxS)。
Install-WindowsFeature NET-Framework-Core -Source D:\Sources\SxS
如果想要命令使用 Windows 更新作为缺少的功能文件的源,或已使用组策略配置默认源,则无需添加
Source
参数,除非要指定不同源。
若要使用“添加角色和功能”向导安装 .NET Framework 3.5,请执行以下操作
在服务器管理器的“管理”菜单上单击“添加角色和功能”。
选择一台运行 Windows Server 2016 的目标服务器。
在“添加角色和功能”向导中的“选择功能”页面上,选择“.NET Framework 3.5”。
如果组策略设置允许本地计算机这样做,安装进程将尝试使用 Windows 更新获取缺少的功能文件。 单击“安装”;你无需继续执行下一步。
如果组策略设置不允许这样做,或你想要使用 .NET Framework 3.5 功能文件的其他来源,请在向导的“确认安装所选内容”页面上单击“指定备用源路径”。
提供并排存储区(称为 SxS)在安装介质的路径或 WIM 文件的路径。 在以下示例中,安装介质位于驱动器 D。
D:\Sources\SxS\
若要指定 WIM 文件,请添加 WIM: 前缀,并添加在 WIM 文件中用作后缀的图像索引,如以下示例所示。
WIM:\\server_name\share\install.wim:3
单击“ 确定”,然后单击“ 安装”。
使用 DISM 安装 .NET Framework 3.5
使用提升的用户权限执行以下操作之一打开 Windows PowerShell 会话。
注意
如果要在远程服务器中安装角色和功能,则无需使用提升的用户权限运行 Windows PowerShell。
在 Windows 桌面上,右键单击任务栏上的 Windows PowerShell,然后单击“以管理员身份运行”。
在 Windows 的“开始”屏幕上,右键单击“Windows PowerShell”磁贴,然后单击应用栏上的“以管理员身份运行”。
在运行服务器核心安装选项的服务器上,将 PowerShell 键入命令提示符,然后按“Enter”。
运行以下 DISM 命令之一。
如果计算机可访问 Windows 更新或已在组策略中配置默认源文件位置,请运行以下命令。
DISM /online /Enable-Feature /Featurename:NetFx3 /All
如果计算机可访问安装介质,请运行如下命令。 在以下示例中,操作系统安装介质位于驱动器 D。
LimitAccess
参数可防止命令尝试联系 Windows 更新或运行 WSUS 的服务器。DISM /online /Enable-Feature /Featurename:NetFx3 /All /LimitAccess /Source:d:\sources\sxs
注意
DISM 命令区分大小写。
在组策略中为功能文件配置备用来源
本节中介绍的组策略设置指定 .NET Framework 3.5 文件及已在按需功能配置中删除的其他功能文件的授权源位置。 策略设置“指定可选组件安装和组件修复的设置”位于组策略管理控制台或本地组策略编辑器的“计算机配置\管理模板\系统”文件夹中。
注意
你必须是管理员组成员,才能在本地计算机上更改组策略设置。 如果你想要管理的计算机的组策略设置在域级别控制,则你必须是域管理员组成员,才能更改组策略设置。
在组策略中配置默认备用源路径
在本地组策略编辑器或组策略管理控制台中,打开以下策略设置。
计算机配置\管理模板\系统\指定可选组件安装和组件修复的设置
选择“已启用”以启用策略设置(如果尚未启用)。
在“选项”区域的“备用源路径”文本框中,指定共享文件夹或 WIM 文件的完全限定路径。 若要将 WIM 文件指定为备用源文件位置,请将前缀 WIM: 添加到路径,并添加要在 WIM 文件中用作后缀的图像索引。 以下是你可以指定的值示例:
共享文件夹的路径: \\server_name\share\folder_name
WIM 文件的路径,其中 3 表示在其中找到功能文件的图像的索引: WIM:\\server_name\share\install.wim:3
如果不想让本策略设置控制的计算机在 Windows 更新中搜索缺少的功能文件,请选择“从不尝试从 Windows 更新下载负载”。
如果此策略设置控制的计算机通常通过 WSUS 接收更新,但你首选通过 Windows 更新而非 WSUS 查找缺少的功能文件,请选择“联系 Windows 更新直接下载修复内容,而非 Windows Server 更新服务 (WSUS)”。
更改此策略设置后,单击“确定”,再关闭组策略编辑器。
删除功能文件的方法
在“按需功能”配置中,有两种方法可用来从 Windows Server 删除功能文件。
remove
cmdlet 的Uninstall-WindowsFeature
参数让你从运行 Windows Server 2012 R2 或 Windows Server 2012 的服务器或脱机虚拟硬盘 (VHD) 删除功能文件。remove
参数的有效值为角色、角色服务和功能的名称。部署映像服务和管理 (DISM) 命令让你创建自定义 WIM 文件,通过删除不需要的或是可从其他远程数据源获取的功能文件,来节省磁盘空间。 有关使用 DISM 准备自定义映像的详细信息,请参阅 如何启用或禁用 Windows 功能。
使用 Uninstall-WindowsFeature 删除功能文件
你既可以使用 Uninstall-WindowsFeature cmdlet 从运行 Windows Server 2012 R2 或 Windows Server 2012 的服务器和脱机 VHD 卸载角色、角色服务和功能,也可以使用它删除功能文件。 如果需要的话,你可以在同样的命令中同时卸载和删除同样的角色、角色服务和功能。
重要
删除角色、角色服务或功能的功能文件时,也会删除依赖于要移除的文件的角色、角色服务和功能。 如果你要删除一个角色服务或子功能的功能文件,而父角色或父功能下没有安装其他的角色服务或子功能,那么整个父角色或父功能的文件都将被删除。 若要查看将由 Uninstall-WindowsFeature -remove
命令删除的所有功能文件,请将 whatif
参数添加到命令,再运行命令并查看结果,无需真正删除功能文件。
使用 Uninstall-WindowsFeature 删除角色和功能文件的步骤
使用提升的用户权限执行以下操作之一打开 Windows PowerShell 会话。
注意
如果要从远程服务器中卸载角色和功能,则无需使用提升的用户权限运行 Windows PowerShell。
在 Windows 桌面上,右键单击任务栏上的 Windows PowerShell,然后单击“以管理员身份运行”。
在 Windows 的“开始”屏幕上,右键单击“Windows PowerShell”磁贴,然后单击应用栏上的“以管理员身份运行”。
在运行服务器核心安装选项的服务器上,将 PowerShell 键入命令提示符,然后按“Enter”。
键入以下命令,然后按 Enter。
Uninstall-WindowsFeature -Name <feature_name> -computerName <computer_name> -remove
例如:“远程桌面授权”是“远程桌面服务”中安装的最后一个角色服务。 此命令卸载“远程桌面授权”,然后从指定的服务器 contoso_1 上删除整个“远程桌面服务”角色的功能文件。
Uninstall-WindowsFeature -Name rdS-Licensing -computerName contoso_1 -remove
例如:在下面的例子中,此命令从脱机 VHD 上移除“Active Directory 域服务”和“组策略管理”。 首先卸载角色和功能,然后从离线 VHD Contoso.vhd 完全删除其功能文件。
注意
如果从运行 Windows 8.1 或 Windows 8 的计算机运行该 cmdlet,则必须添加
computerName
参数。如果从网络共享输入 VHD 文件的名称,则该共享必须将“读取”和“写入”权限授予选择装载 VHD 的服务器的计算机帐户。 仅用户帐户访问权限是不够的。 该共享可向“所有人”组授予“读取”和“写入”权限,以允许访问 VHD,但出于安全原因,不建议这样做。
Uninstall-WindowsFeature -Name AD-Domain-Services,GPMC -VHD C:\WS2012VHDs\Contoso.vhd -computerName ContosoDC1
另请参阅
安装或卸载角色、角色服务或功能Windows Server 安装选项如何启用或禁用 Windows 功能部署映像服务和管理 (DISM) 概述