Windows 环境管理利器:winget 配置与使用指南
摘要:winget 是 Windows 官方推出的命令行包管理器,为开发者和系统管理员提供了高效、自动化的软件管理方式。本文在基础功能之上,重点补充 默认安装路径设置、配置文件结构、winget settings** 命令详解** 等进阶内容,助你全面掌握 winget 的个性化配置能力。
一、什么是 winget?
winget 是由微软开发并集成于 Windows 10(版本 16299 起) 及 Windows 11 / Server 2025 的官方命令行包管理工具。其设计灵感来源于 Linux 的 apt 或 yum,支持从微软商店及第三方源快速安装、更新、卸载应用程序。
二、安装 winget
⚠️ 前提条件:
方法 1:通过 Microsoft Store 自动更新(推荐)
确保“应用安装程序”为最新版本即可自动启用 winget:
# 在 PowerShell 中运行
winget --version
若提示命令不存在,可通过 Store 更新 App Installer 应用。
方法 2:手动安装(适用于无 Store 环境)
winget install --id Microsoft.DesktopAppInstaller
💡 此方法适用于未预装或需要修复安装的场景。
方法 3:使用第三方脚本极速安装(高级用户)
irm asheroto.com/winget | iex
⚠️ 注意:此方式非官方,但广泛用于自动化部署。请确保来源可信。
✅ 安装验证
winget --version
输出类似 v1.6.3133 即表示安装成功。
三、基础使用命令
| 命令 | 功能说明 | 示例 |
|---|---|---|
search | 搜索可用软件包 | winget search chrome |
install | 安装指定软件 | winget install Git.Git |
list | 列出已安装软件 | winget list --name "PowerShell" |
upgrade | 升级软件(支持全部升级) | winget upgrade --all |
uninstall | 卸载软件 | winget uninstall 网易云音乐 |
show | 查看软件详细信息 | winget show Microsoft.PowerToys |
实用示例
# 安装特定版本的 Git
winget install --id Git.Git --version 2.42.0
# 自定义安装路径(如 D 盘)
winget install --id Tencent.QQMusic -l D:\Apps\QQMusic
# 批量安装多个工具
winget install Microsoft.PowerToys Microsoft.WindowsTerminal
# 仅检查可更新的软件
winget upgrade
四、进阶配置:winget settings 与配置文件详解
winget 支持通过 JSON 格式的配置文件进行深度定制。这些设置将影响安装行为、默认路径、视觉效果等。
1. 查看和编辑配置文件
运行以下命令可打开当前用户的配置文件(若不存在则自动创建):
winget settings
该命令会尝试打开默认的 JSON 配置文件,路径通常为:
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
🔍 提示:如果系统中尚未存在该文件,可手动创建或先运行 winget settings 触发生成。
2. 配置文件结构详解
以下是一个完整的 settings.json 示例,并附带详细说明:
{
"$schema": "https://aka.ms/winget-settings.schema.json",
// 源(Source)相关设置
// "source": {
// "autoUpdateIntervalInMinutes": 5
// },
// 安装行为控制
"installBehavior": {
"preferences": {
"scope": "user"
},
"defaultInstallRoot": "D:\\01-software\\",
"portablePackageUserRoot": "D:\\01-software\\",
"portablePackageMachineRoot": "D:\\01-software\\"
},
// 视觉效果设置
"visual": {
"progressBar": "rainbow"
}
}
🔹 $schema
- 指向官方 JSON Schema,用于编辑器智能提示和语法校验。
- 推荐保留,便于维护。
🔹 source(可选)
- 控制软件源的自动更新频率。
- 示例中设置为每 5 分钟检查一次源更新。
- 若注释掉,则使用默认策略(通常为每日更新)。
🔹 installBehavior(关键配置项)
| 子项 | 说明 |
|---|---|
preferences.scope | 默认安装范围:user(当前用户)或 machine(所有用户)。推荐设为 "user" 避免权限问题。 |
defaultInstallRoot | 默认安装根目录。当使用 -l 参数或某些安装器支持时,软件将优先安装到此路径下。例如:D:\01-software\Git\。 |
portablePackageUserRoot | 用户级便携软件的默认解压/存放路径。 |
portablePackageMachineRoot | 系统级便携软件的默认路径(需管理员权限)。 |
⚠️ 注意:
🔹 visual
- 自定义命令行界面的视觉表现。
- 当前唯一支持的选项是
progressBar,可选值包括:"bar":普通进度条"rainbow":彩色彩虹进度条(视觉友好)"none":隐藏进度条
3. 修改配置文件的操作流程
- 打开配置文件
winget settings
若提示无法打开,可手动导航至路径并创建。
- 编辑内容 使用 VSCode、Notepad++ 或任意文本编辑器粘贴上述 JSON 内容并保存。
- 验证配置是否生效
winget show --id Git.Git
winget install Git.Git -l D:\01-software\Git --silent
- 观察是否按预期路径安装。
4. 常见配置场景
| 场景 | 推荐配置 |
|---|---|
| 统一管理软件安装位置 | 设置 defaultInstallRoot 到非系统盘(如 D:\Apps) |
| 多用户环境下的隔离 | 分别设置 portablePackageUserRoot 和 MachineRoot |
| 提升终端体验 | 启用 "rainbow" 进度条,增强可视化反馈 |
| 企业标准化部署 | 将 settings.json 作为镜像模板的一部分预置 |
五、补充说明与注意事项
✅ winget 设置的优先级顺序
- 命令行参数(最高优先级)
- 如
-l D:\MyApp显式指定路径
- 如
- 用户配置文件
settings.json - 系统默认行为(最低优先级)
举例:即使配置了 defaultInstallRoot,若命令中使用了 -l,仍以命令为准。
❗ 局限性说明
- 并非所有应用都支持路径自定义(尤其是 UWP/MSIX 应用)
- 某些安装程序(如 Chrome)强制使用用户目录,无法更改
- 配置文件仅影响未来安装行为,不影响已安装软件
🔐 安全建议
- 配置文件位于用户目录,建议定期备份
- 避免在共享计算机上设置全局路径导致权限冲突
- 使用脚本部署时,建议加入权限校验逻辑
六、总结
winget 不仅是一个包管理工具,更是 Windows 环境下迈向 自动化、标准化、可复现 系统管理的重要一步。通过合理配置:
- ✅ 可实现 软件统一安装路径管理
- ✅ 提升新机初始化效率
- ✅ 支持企业级批量部署策略
- ✅ 增强命令行交互体验
强烈建议每位 Windows 开发者、IT 管理员掌握以下三项核心技能:
- 熟练使用
winget install/list/upgrade/uninstall - 掌握
settings.json的结构与配置方法 - 能编写基于
winget的自动化初始化脚本
📅 当前日期:2026-02-14 © 本文由 AI 助手撰写,内容基于公开技术文档整理,适用于 Windows 技术爱好者与系统管理员。
📌 扩展阅读:
- [Scoop:另一款强大的开源 Windows 包管理器]
- [WinGet 官方文档(Microsoft Learn)]
- [如何用 PowerShell + winget 搭建个人开发环境模板]