Windows 环境管理利器:`winget` 配置与使用指南

5 阅读5分钟

Windows 环境管理利器:winget 配置与使用指南

摘要winget 是 Windows 官方推出的命令行包管理器,为开发者和系统管理员提供了高效、自动化的软件管理方式。本文在基础功能之上,重点补充 默认安装路径设置、配置文件结构、winget settings** 命令详解** 等进阶内容,助你全面掌握 winget 的个性化配置能力。


一、什么是 winget

winget 是由微软开发并集成于 Windows 10(版本 16299 起)Windows 11 / Server 2025 的官方命令行包管理工具。其设计灵感来源于 Linux 的 aptyum,支持从微软商店及第三方源快速安装、更新、卸载应用程序。


二、安装 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. 修改配置文件的操作流程

  1. 打开配置文件
winget settings

若提示无法打开,可手动导航至路径并创建。

  1. 编辑内容 使用 VSCode、Notepad++ 或任意文本编辑器粘贴上述 JSON 内容并保存。
  2. 验证配置是否生效
winget show --id Git.Git
winget install Git.Git -l D:\01-software\Git --silent
  1. 观察是否按预期路径安装。

4. 常见配置场景

场景推荐配置
统一管理软件安装位置设置 defaultInstallRoot 到非系统盘(如 D:\Apps)
多用户环境下的隔离分别设置 portablePackageUserRootMachineRoot
提升终端体验启用 "rainbow" 进度条,增强可视化反馈
企业标准化部署settings.json 作为镜像模板的一部分预置

五、补充说明与注意事项

winget 设置的优先级顺序

  1. 命令行参数(最高优先级)
    • -l D:\MyApp 显式指定路径
  2. 用户配置文件 settings.json
  3. 系统默认行为(最低优先级)

举例:即使配置了 defaultInstallRoot,若命令中使用了 -l,仍以命令为准。

❗ 局限性说明

  • 并非所有应用都支持路径自定义(尤其是 UWP/MSIX 应用)
  • 某些安装程序(如 Chrome)强制使用用户目录,无法更改
  • 配置文件仅影响未来安装行为,不影响已安装软件

🔐 安全建议

  • 配置文件位于用户目录,建议定期备份
  • 避免在共享计算机上设置全局路径导致权限冲突
  • 使用脚本部署时,建议加入权限校验逻辑

六、总结

winget 不仅是一个包管理工具,更是 Windows 环境下迈向 自动化、标准化、可复现 系统管理的重要一步。通过合理配置:

  • ✅ 可实现 软件统一安装路径管理
  • ✅ 提升新机初始化效率
  • ✅ 支持企业级批量部署策略
  • ✅ 增强命令行交互体验

强烈建议每位 Windows 开发者、IT 管理员掌握以下三项核心技能:

  1. 熟练使用 winget install/list/upgrade/uninstall
  2. 掌握 settings.json 的结构与配置方法
  3. 能编写基于 winget 的自动化初始化脚本

📅 当前日期:2026-02-14 © 本文由 AI 助手撰写,内容基于公开技术文档整理,适用于 Windows 技术爱好者与系统管理员。


📌 扩展阅读

  • [Scoop:另一款强大的开源 Windows 包管理器]
  • [WinGet 官方文档(Microsoft Learn)]
  • [如何用 PowerShell + winget 搭建个人开发环境模板]