本主题描述了如何使用 Uninstall-WindowsFeature cmdlet 在“按需功能”配置中删除功能文件。
按需功能是在 Windows 8 和 Windows Server 2012 中引入的一项功能,可用于从作系统中删除角色和功能文件(有时称为功能 有效负载),以节省磁盘空间,以及从远程位置或安装媒体而不是本地计算机安装角色和功能。 你可以从运行中的物理或虚拟计算机删除功能文件。 你也可以对 Windows 映像 (WIM) 文件或脱机虚拟硬盘 (VHD) 进行添加或删除功能文件,为“按需功能”配置创建一个可复制的副本。
在“按需功能”配置过程中,如果功能文件在计算机上不可用,而安装需要那些功能文件,则可以引导 Windows Server 2012 R2 或 Windows Server 2012 从来自 Windows 更新或来自安装媒体的并排功能存储区(一个包含功能文件并对网络上的计算机可用的共享文件夹)获取文件。 默认情况下,当功能文件不在目标服务器上时,“按需功能”就会按照所示顺序执行下列任务,来搜索丢失的功能文件。
- 在“添加角色和功能”向导的用户或 DISM 安装命令指定的位置中搜索 
- 评估“组策略”设置的配置,“计算机配置”\“管理模板”\“系统”\“指定可选组件安装和组件修复的设置” 
- 搜索 Windows 更新 
你可以采用下列任意方法覆盖默认的“按需功能”行为。
- 通过添加 - Install-WindowsFeature参数指定一个备用源路径,作为- Sourcecmdlet 的一部分
- 使用“添加角色和功能”向导安装功能时,在“确认安装选项”页面上指定备用源路径 
- 配置“组策略”设置,“指定可选组件安装和组件修复的设置” 
本主题包含以下各节:
创建功能文件或并排存储
本节介绍如何设置远程功能文件共享文件夹(也称为并排存储区),用于存储在运行 Windows Server 2012 R2 或 Windows Server 2012 的服务器上安装角色、角色服务和功能所需的文件。 在设置功能存储区后,可以在运行这些操作系统的服务器上安装角色、用户服务和功能,并指定功能存储区为安装源文件位置。
创建功能文件存储区的步骤
- 在网络的服务器上创建一个共享文件夹。 例如, \\network\share\sxs。 
- 验证是否给功能存储区分配了恰当的权限。 源路径或文件共享必须授予读取权限给Everyone组(由于安全原因不推荐),或者授予计划使用此功能存储来安装功能的服务器的计算机帐户(DOMAIN\$);仅授予用户帐户访问权限是不够的。 - 你可以通过在 Windows 桌面上进行以下任意一种操作,来访问文件共享和权限设置。 - 右键单击共享文件夹,单击“ 属性”,然后更改允许的用户及其对 “安全 ”选项卡上文件夹的访问权限。 
- 右键单击共享文件夹,指向“共享”,然后单击“特定人员”。 
 - Note - 工作组中的服务器无法访问外部文件共享,即使工作组服务器的计算机帐户对外部共享具有 读取 权限也是如此。 为工作组服务器服务的备用源位置包括安装媒体、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 或其他功能配置功能文件的备用源。
Important
从远程源安装功能文件时,源路径或文件共享必须向“每个人”组(出于安全原因不建议)或目标服务器的计算机(本地系统)帐户授予读取权限;授予用户帐户访问权限是不够的。
工作组中的服务器无法访问外部文件共享,即使工作组服务器的计算机帐户对外部共享具有 读取 权限也是如此。 为工作组服务器服务的备用源位置包括安装媒体、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 会话。 - Note - 如果要在远程服务器中安装角色和功能,则无需使用提升的用户权限运行 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 功能文件的其他来源,请在向导的“确认安装所选内容”页面上单击“指定备用源路径”。 
- 在安装介质或 WIM 文件中提供并存存储(称为 SxS)的路径。 在以下示例中,安装介质位于驱动器 D。 - D:\Sources\SxS\ - 若要指定 WIM 文件,请添加 WIM: 前缀,并添加在 WIM 文件中用作后缀的图像索引,如以下示例所示。 - WIM:\\server_name\share\install.wim:3 
- 单击“ 确定”,然后单击“ 安装”。 
使用 DISM 安装 .NET Framework 3.5
- 使用提升的用户权限执行以下操作之一打开 Windows PowerShell 会话。 - Note - 如果要在远程服务器中安装角色和功能,则无需使用提升的用户权限运行 Windows PowerShell。 - 在 Windows 桌面上,右键单击任务栏上的 Windows PowerShell ,然后单击“ 以管理员身份运行”。 
- 在 Windows 开始 屏幕上,右键单击 Windows PowerShell 磁贴,然后在应用栏上单击“ 以管理员身份运行”。 
- 在运行 Server Core 安装选项的服务器上,在命令提示符下键入 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
 - Note - DISM 命令区分大小写。 
在组策略中为功能文件配置备用来源
本节中介绍的组策略设置指定 .NET Framework 3.5 文件及已在按需功能配置中删除的其他功能文件的授权源位置。 策略设置“指定可选组件安装和组件修复的设置”位于组策略管理控制台或本地组策略编辑器的“计算机配置\管理模板\系统”文件夹中。
Note
你必须是管理员组成员,才能在本地计算机上更改组策略设置。 如果你想要管理的计算机的组策略设置在域级别控制,则你必须是域管理员组成员,才能更改组策略设置。
在组策略中配置默认备用源路径
- 在本地组策略编辑器或组策略管理控制台中,打开以下策略设置。 - 计算机配置\管理模板\系统\指定可选组件安装和组件修复的设置 
- 选择 “已启用” 以启用策略设置(如果尚未启用)。 
- 在“选项”区域的“备用源路径”文本框中,指定共享文件夹或 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 删除功能文件。
- removecmdlet 的- 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 卸载角色、角色服务和功能,也可以使用它删除功能文件。 如果需要的话,你可以在同样的命令中同时卸载和删除同样的角色、角色服务和功能。
Important
删除角色、角色服务或功能的功能文件时,也会删除依赖于要移除的文件的角色、角色服务和功能。 如果你要删除一个角色服务或子功能的功能文件,而父角色或父功能下没有安装其他的角色服务或子功能,那么整个父角色或父功能的文件都将被删除。 若要查看将由 Uninstall-WindowsFeature -remove 命令删除的所有功能文件,请将 whatif 参数添加到命令,再运行命令并查看结果,无需真正删除功能文件。
使用 Uninstall-WindowsFeature 删除角色和功能文件的步骤
- 使用提升的用户权限执行以下操作之一打开 Windows PowerShell 会话。 - Note - 如果要从远程服务器中卸载角色和功能,则无需使用提升的用户权限运行 Windows PowerShell。 - 在 Windows 桌面上,右键单击任务栏上的 Windows PowerShell ,然后单击“ 以管理员身份运行”。 
- 在 Windows 开始 屏幕上,右键单击 Windows PowerShell 磁贴,然后在应用栏上单击“ 以管理员身份运行”。 
- 在运行 Server Core 安装选项的服务器上,在命令提示符下键入 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 域服务和组策略管理。 首先卸载角色和功能,然后将其功能相关文件完全从脱机VHDContoso.vhd中删除。 - Note - 如果从运行 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) 概述