使用 WinGet 工具安装和管理应用程序
WinGet 是一种命令行工具,使用户能够在 Windows 10、Windows 11 和 Windows Server 2025 计算机上发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服务的客户端接口。
安装 WinGet
WinGet Windows 程序包管理器在 Windows 11、新式版本的 Windows 10 和 Windows Server 2025 上作为应用安装程序的一部分提供。 应用安装程序是由 Windows 桌面版本上的Microsoft存储通过 Windows Server 2025 上的更新传递和更新的系统组件。
注意
WinGet 命令行工具仅在 Windows 10 1709(版本 16299)或更高版本上受支持。 在首次以用户身份登录 Windows 之前,WinGet 将不可用,触发 Microsoft 应用商店将Windows 程序包管理器注册为异步进程的一部分。 如果最近已经以用户身份进行了首次登录,但发现 WinGet 尚不可用,则可以打开 PowerShell 并输入以下命令来请求此 WinGet 注册:Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
。
安装 WinGet 预览版 [仅限开发人员]
WinGet 包含在 Windows 应用安装程序中。 要试用最新的 Windows 程序包管理器功能,可以通过以下方式之一安装预览版:
下载最新的 WinGet 预览版。 阅读 WinGet 预览版发行说明,了解任何新功能。 安装此包将为你提供 WinGet 客户端预览版,但它不会从 Microsoft Store 中启用新预览版的自动更新。
使用 Microsoft 帐户 (MSA)、工作、学校或 Azure Active Directory (AAD) 帐户注册 Windows 预览体验成员开发频道。 Windows 预览体验成员开发频道包括 Microsoft Store 中新预览版的自动更新。
使用 Microsoft 帐户 (MSA) 注册 Windows 程序包管理器预览体验计划。 在添加你的 Microsoft 帐户 (MSA) 后(在你收到电子邮件通知后几天),你将收到 Microsoft Store 中新预览版的自动更新。
在 Windows 沙盒上安装 WinGet
Windows 沙盒提供了一个轻型桌面环境,可以安全地独立运行应用程序。 安装在 Windows 沙盒环境中的软件保持“沙盒”状态,并独立于主机运行。 Windows 沙盒不包含 WinGet,也不包含 Microsoft Store 应用,因此你需要从 GitHub 上的 WinGet 版本页下载最新的 WinGet 包。
要在 Windows 沙盒上安装 WinGet 的稳定版本,请从 Windows PowerShell 命令提示符执行以下步骤:
$progressPreference = 'silentlyContinue'
Write-Host "Installing WinGet PowerShell module from PSGallery..."
Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Write-Host "Using Repair-WinGetPackageManager cmdlet to bootstrap WinGet..."
Repair-WinGetPackageManager
Write-Host "Done."
若要在计算机范围内安装 PowerShell 模块,可以将参数与 cmdlet 配合使用-Scope AllUsers
Install-Module
。 如果想要预览版本的 WinGet,可以使用 Repair-WinGetPackageManager cmdlet 添加 -IncludePrerelease
参数。 若要查看 Repair-WinGetPackageManager cmdlet 的可用参数,可以运行 Get-Help Repair-WinGetPackageManager -Full
。
有关 Windows 沙盒的详细信息,包括如何安装沙盒以及使用沙盒的预期结果,请参阅 Windows 沙盒文档。
管理员注意事项
安装程序的行为可能会有所不同,具体取决于你是否是以管理员权限运行 WinGet。
在没有管理员权限的情况下运行 WinGet 时,某些应用程序可能会要求提升权限才能进行安装。 当安装程序运行时,Windows 会提示你提升权限。 如果你选择不提升权限,则应用程序无法进行安装。
在管理员命令提示符下运行 WinGet 时,如果应用程序要求你提升权限,你不会看到提升权限提示。 以管理员身份运行命令提示符时请务必小心,仅安装你信任的应用程序。
使用 WinGet
安装应用安装程序后,可以通过在命令提示符下键入“WinGet”来运行 WinGet。
最常见的使用场景之一是搜索并安装你最喜欢的工具。
若要搜索某个工具,请键入
winget search <appname>
。确认你需要的工具可用后,可以通过键入
winget install <appname>
来安装该工具。 WinGet 工具会启动安装程序,将应用程序安装在你的电脑上。除了安装和搜索外,WinGet 还提供了许多其他命令,用来显示应用程序详细信息,更改源以及验证程序包。 若要获取完整的命令列表,请键入
winget --help
。
一些用户报告了客户端不在其路径上的问题。
命令
WinGet 工具的当前预览版支持以下命令。
命令 | 说明 |
---|---|
info | 显示有关系统的元数据(版本号、体系结构、日志位置等)。 有助于进行故障排除。 |
install | 安装指定的应用程序。 |
show | 显示指定应用程序的详细信息。 |
source | 添加、删除和更新 WinGet 工具访问的 Windows 程序包管理器存储库。 |
search | 搜索某个应用程序。 |
list | 显示已安装的包。 |
升级 | 升级给定的包。 |
uninstall | 卸载给定的包。 |
hash | 为安装程序生成 SHA256 哈希。 |
validate | 验证要提交到 Windows 程序包管理器存储库的清单文件。 |
设置 | 打开设置。 |
功能 | 显示试验功能的状态。 |
export | 导出已安装包的列表。 |
import | 将所有包安装到一个文件中。 |
pin | 管理包固定。 |
configure | 将系统配置为所需状态。 |
下载 | 下载指定应用程序的安装程序。 |
选项
WinGet 工具支持以下选项。
选项 | 描述 |
---|---|
-v、--version | 返回 WinGet 的当前版本。 |
--info | 提供有关 WinGet 的所有详细信息,包括许可证链接、隐私声明和配置的组策略。 |
-?、--help | 显示 WinGet 的其他帮助。 |
支持的安装程序格式
WinGet 工具支持以下类型的安装程序:
- EXE(具有 Silent 和 SilentWithProgress 标志)
- ZIP
- INNO
- NULLSOFT
- MSI
- WIX
- APPX
- MSIX
- BURN
- PORTABLE
编写 WinGet 脚本
可以使用以下语法在单个命令中安装多个应用程序。
USAGE: winget install <query1> <query2> ...
示例
winget install Microsoft.WindowsTerminal Microsoft.PowerToys Microsoft.VisualStudioCode
注意
使用脚本时,WinGet 会按指定顺序启动应用程序。 当安装程序返回成功或失败时,WinGet 会启动下一个安装程序。 如果某个安装程序启动了另一进程,它可能会提前返回到 WinGet。 这会导致 WinGet 在上一个安装程序完成之前安装下一个安装程序。
调试和故障排除
WinGet 提供日志记录来帮助诊断问题。 有关日志记录的故障排除和详细信息,请参阅调试和故障排除。
缺少工具
如果社区存储库不包含你的工具或应用程序,请将包提交到我们的存储库。 添加你最喜爱的工具后,你和其他人都可以使用它。
自定义 WinGet 设置
可以通过修改 settings.json 文件配置 WinGet 命令行体验。 有关详细信息,请参阅 https://aka.ms/winget-settings。 请注意,这些设置仍处于试验状态,并且尚未针对工具的预览版本最后确定。
开源详细信息
WinGet 工具是 GitHub 上的存储库 https://github.com/microsoft/winget-cli/ 中提供的一个开源软件。 用于构建客户端的源代码位于 src 文件夹中。
WinGet 的源代码包含在 Visual Studio 2019 C++ 解决方案中。 若要正确构建解决方案,请安装最新的包含 C++ 工作负荷的 Visual Studio。
我们鼓励你为 GitHub 上的 WinGet 源代码贡献力量。 你必须先同意并签署 Microsoft CLA。
疑难解答
WinGet-cli 存储库中有常见问题和常见错误的列表,还有相关解决方法建议: