microsoft/winget-cli

开发工具

在 Windows 上用一条命令搜索、安装和更新桌面应用的官方包管理器。

26,539
1,817
C++
MIT
上线 7 年

如果你已经在用脚本配置 Windows 机器,WinGet 值得一试:它把逐个去官网下载安装包、一路点下一步的过程收敛成一条命令。它是 Windows 桌面应用的包管理器,不管理语言层面的库或运行时,且由微软官方维护。

解决什么问题

过去装一台 Windows 机器,要挨个访问厂商网站、挑对应安装包、走完安装向导,换一台机器再来一遍,更新还得自己记着。用 WinGet 时,你按包名执行一条命令,客户端在仓库里找到对应包并调起厂商安装程序,之后可以一次性更新通过它安装的应用。真正改变的是“获取并启动安装包”这一步;权限提升仍由 Windows 自己弹出提示。

有什么不同

客户端默认接入两个源:Microsoft Store,仅限评为“e”(所有人可用)的免费应用;以及社区维护的 winget-pkgs 仓库。这是两个独立目录,收录规则不同,某个应用出现在其中一个,不代表另一个也有。PowerShell 模块把同样的操作暴露成 cmdlet,对用脚本批量配置机器的人来说,这是它相对纯终端用法最实际的差别。此外还有 COM API,方便把客户端嵌进其他软件。

主要权衡在权限。以管理员身份运行 WinGet 与否,会改变安装器的行为:没有管理员权限时,部分安装器会触发 Windows 的提权提示,拒绝提权则安装失败。这是厂商安装器的行为透过 WinGet 呈现出来,客户端并没有把它抹平。分发方式同样值得注意:客户端主要随 Microsoft Store 的 App Installer 包分发;手动安装 Release 页面上的构建不会启用来自 Store 的自动更新,除非你加入了 Windows Package Manager Insider 计划。

谁值得试

适合:经常重装 Windows、希望用 CLI 或 PowerShell cmdlet 把安装清单脚本化的开发者或 IT 管理员,在每台机器上重复同一份包列表。不适合:需要管理语言级依赖或可复现构建环境的人,以及维护 Linux、macOS 机群的人——WinGet 只面向 Windows 桌面应用。

使用条件与边界

客户端要求 Windows 10 1809(build 17763)、Windows 11、Windows Server 2025 或更高版本。Windows Server 2019 和 2022 只能通过解压 .msixbundle 实验性运行,且明确不受支持;Windows Server Core 和更早的 Windows 版本完全无法运行,因为它硬依赖 IsWow64Process2 和 MSIX。较旧的 Windows 10 构建在提示缺少框架包时,可能还需要安装 VC++ v14 Desktop Framework Package。

首次安装之后的维护同样重要:如果你手动安装 Release 构建,不加入 Insider 计划就收不到由 Store 驱动的更新,客户端版本需要自己跟进。从源码构建客户端是有文档的,但微软表示尚未准备好为官方分发渠道之外的客户端提供完整支持,来自这类构建的 issue 优先级可能较低。安装出问题时,可参考故障排查指南。

HotRepo 点评

HotRepo 的记录始于 2026-10-24,当天 26,537 stars、+8;2026-10-25 又有一次日榜记录,26,539 stars、+7。两个记录日期不足以判断关注度是在上升、消退还是持续,只能当作带日期的快照看。采用前,先确认你要的应用确实出现在 winget 或 msstore 源里,而不是默认它一定被收录。

Hacker News 讨论

Windows package manager does not permit opting out of telemetry
▲ 428 · 316 条评论 · 2020年5月21日
Windows package manager is down
▲ 13 · 0 条评论 · 2025年10月28日
Windows Package Manager (Winget)
▲ 7 · 1 条评论 · 2020年5月19日

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。