如何用 WinUtil 通过 Config 选项卡启用 WSL、Hyper-V 等 Windows 可选功能组件?
【免费下载链接】winutilChris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates项目地址: https://gitcode.com/GitHub_Trending/wi/winutil
在 Windows 11 系统上启用 WSL、Hyper-V、Windows Sandbox 这类可选功能组件时,传统做法是手动执行 DISM 命令逐一启用功能名。WinUtil 把这些操作收进了Config选项卡的Windows Features区域:勾选功能复选框后点击Install Features,由 WinUtil 代为调用Enable-WindowsOptionalFeature完成安装。本文按「启动 WinUtil → 勾选功能 → 执行安装 → 判断完成」的顺序走一遍这条路径。
前提条件(来自官方文档 Getting Started):
- 操作系统:Windows 11。WinUtil 不支持 Windows 10(Windows 10 已于 2025 年 10 月 14 日结束支持)。
- PowerShell:5.1 或更高版本(Windows 11 自带)。
- 管理员权限:系统级变更需要管理员。
- 网络连接:部分功能依赖从 Microsoft 下载组件时需要联网。
准备:以管理员身份启动 WinUtil
WinUtil 不需要传统安装,直接从 PowerShell 运行。以管理员身份打开 PowerShell(开始菜单右键 Windows 开始按钮选 “Terminal (Admin)”,或搜索 Terminal 后按Ctrl + Shift + Enter),然后执行稳定版启动命令:
irm "https://christitus.com/win" | iexirm负责下载脚本,iex负责执行。文档同时提供开发分支命令irm "https://christitus.com/windev" | iex,该分支包含实验性改动,仅建议在非生产系统上用于测试,本文主路径使用稳定版。
首次运行 WinUtil 需要几秒到几十秒下载最新版本、初始化界面并加载所有功能。看到带Install / Tweaks / Config / Updates / Win11 Creator选项卡的窗口后,进入Config选项卡。
启动前有一个与本文直接相关的已知限制:通过 Microsoft Store(MSIX 包)安装的 PowerShell 7 会导致Get-WindowsOptionalFeature、Enable-WindowsOptionalFeature等 DISM cmdlet 报Class not registeredCOM 错误(详见 Known Issues)。如果你用的是 Store 版 PowerShell 7,需先改用 winget(winget install --id Microsoft.PowerShell --source winget --installer-type wix)或 GitHub Releases 的 MSI 安装方式,再运行 WinUtil。
在 Config 选项卡的 Windows Features 区域勾选功能
Config 选项卡对应文档中的 Features 指南,其中Windows Features区域列出以下可勾选功能:
- All .NET Frameworks (2, 3, 4)
- Hyper-V Virtualization
- Legacy Media (WMP, DirectPlay)
- NFS - Network File System
- Enable Daily Registry Backup Task 12:30 AM
- Enable Legacy F8 Boot Recovery
- Disable Legacy F8 Boot Recovery
- Windows Subsystem for Linux
- Windows Sandbox
每个复选框背后对应的一组 Windows 可选功能名定义在 config/feature.json 中,两个常用项如下:
| WinUtil 复选框 | 实际启用的 Windows 功能 |
|---|---|
| Windows Subsystem for Linux (WSL) - Enable | VirtualMachinePlatform、Microsoft-Windows-Subsystem-Linux |
| Hyper-V - Enable | Microsoft-Hyper-V-All |
按需勾选目标功能即可——例如同时勾选 WSL 和 Hyper-V。注意 Enable/Disable Legacy F8 Boot Recovery 是互斥的两个开关,只勾选符合意图的一项。
执行安装:点击 Install Features
勾选完成后点击Install Features按钮。该按钮绑定Invoke-WPFFeatureInstall(见 Invoke-WinUtilFeatureInstall.ps1),对每个被选中的功能逐项执行:
Enable-WindowsOptionalFeature -Online -FeatureName <功能名> -All -NoRestart执行过程中控制台会逐行输出Installing <功能名>(如Installing VirtualMachinePlatform),并写入 WinUtil 日志组件Feature的记录。
个别功能除了启用 Windows 功能外还会追加执行InvokeScript。例如 NFS 功能在启用ServicesForNFS-ClientOnly、ClientForNFS-Infrastructure、NFS-Administration三个功能后,还会依次运行nfsadmin client stop、设置AnonymousUID/AnonymousGID注册表值、nfsadmin client start及一条nfsadmin client localhost config命令。WSL 和 Hyper-V 的InvokeScript为空数组,仅执行功能启用本身。如果你只需要 WSL/Hyper-V,不需要为 NFS 的附加命令做准备。
判断安装是否完成、何时需要重启
文档明确说明:部分操作立即完成,另一些可能弹出提示、从 Microsoft 下载文件,或在变更完全生效前要求重启。具体判断依据文档给出的现象描述:
- 功能依赖 Windows 安装介质或可选下载时,完成时间会更长,Windows 可能请求重启——看到下载/重启提示时按其引导操作即可;
- 安装命令本身携带
-NoRestart参数,即命令执行阶段不会主动触发重启,但 Windows 侧仍可能在此后要求重启才能使功能完全可用。
也就是说,以「控制台输出逐个Installing ...行 + Windows 的下载/重启提示是否按预期走完」作为本次操作的完成信号;重启后功能才完全可用。
限制与排查
- 报错
Class not registered:这是从 Microsoft Store 安装的 PowerShell 7(MSIX 包)与 DISM cmdlet 的已知冲突,处理方式是按 Known Issues 改用 winget 或 MSI 方式安装 PowerShell 7,再重试功能安装。 - 适用环境:整个过程仅针对 Windows 11;Windows 10 上 WinUtil 本身无法运行。
- 各功能复选框的组件列表与说明以 config/feature.json 为准,文档站点上的 WSL 参考页 和 Hyper-V 参考页 均由该文件生成,内容不一致时应以配置文件为准。
功能启用完成后的后续配置(如 WSL 内安装发行版)不属于 WinUtil 文档覆盖的范围,本文到此结束。
【免费下载链接】winutilChris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates项目地址: https://gitcode.com/GitHub_Trending/wi/winutil
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考