WinGet 使用与配置全指南

一、WinGet 简介与安装

1. 什么是 WinGet?

WinGet 是 Windows 10/11 及 Windows Server 2025 的官方命令行包管理器,支持从微软官方源或第三方源快速安装和管理应用程序。其功能类似于 Linux 的 aptyum,可显著提升软件管理效率。

2. 安装 WinGet

WinGet 默认集成在 Windows 应用安装程序中,但需满足以下条件:

  • 系统要求:Windows 10 1709(版本 16299)或更高版本。
  • 安装方式
    • 稳定版:通过 Microsoft Store 更新“应用安装程序”即可自动启用。
    • 手动安装(适用于未预装的情况):
      winget install --id Microsoft.DesktopAppInstaller
      
    • 预览版(开发者适用):需加入 Windows Insider 开发频道或从 GitHub 下载预览包。

验证安装:在 PowerShell 中运行 winget --version,显示版本号即安装成功。


二、基础使用:常用命令详解

1. 核心命令

命令 功能说明 示例
winget search 搜索软件包 winget search chrome
winget install 安装软件 winget install Git.Git
winget list 列出已安装软件 winget list --name "PowerShell"
winget upgrade 更新软件 winget upgrade --all
winget uninstall 卸载软件 winget uninstall 网易云音乐
winget show 查看软件详情 winget show Microsoft.PowerToys

2. 高级参数示例

  • 指定版本安装
    winget install --id Git.Git --version 2.42.0
  • 自定义安装路径
    winget install --id Tencent.QOMusic -l D:\Download\QOMusic
  • 批量安装
    winget install Microsoft.PowerToys Microsoft.WindowsTerminal
    

三、进阶配置:提升效率与个性化

1. 启用 Tab 补全(仅限 PowerShell)

通过修改 PowerShell 配置文件,实现命令自动补全:

notepad.exe $PROFILE
# 添加以下内容
Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)
    [Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new()
    $Local:word = $wordToComplete.Replace('"', '""')
    $Local:ast = $commandAst.ToString().Replace('"', '""')
    winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object {
        [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
    }
}

重启 PowerShell 后生效。

2. 自定义设置文件

通过修改 settings.json 文件,可配置以下内容:

  • 便携包安装路径
    "installBehavior": {
      "portablePackageUserRoot": "D:/Download/Packages"
    }
    
  • 实验性功能(如依赖管理):
    "experimentalFeatures": {
      "dependencies": true
    }
    
  • 日志级别
    "logging": { "level": "verbose" }
    

通过 winget settings 命令快速打开配置文件。

3. 多源管理

WinGet 支持添加自定义源(如企业私有仓库):

  • 添加源
    winget source add --name MySource --arg https://example.com/package-repo
  • 切换源
    winget install --source winget

四、常见场景与实战案例

1. 批量部署开发环境

编写 PowerShell 脚本一键安装常用工具:

@echo off
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

注意:WinGet 会按顺序执行安装,但需确保前一个安装完成后再启动下一个。

2. 系统迁移与备份

  • 导出已安装软件列表
    winget export -o apps.json
  • 导入并恢复
    winget import -i apps.json

3. 疑难解答

  • 日志分析:使用 --verbose 参数生成详细日志,或通过 --log <路径> 指定日志文件。
  • 依赖问题:启用实验性依赖管理功能,避免安装失败。

五、注意事项与最佳实践

  1. 权限管理

    • 非管理员运行 WinGet 时,部分软件会弹出权限提示。
    • 以管理员身份运行时需谨慎,避免安装未知来源软件。
  2. 版本兼容性

    • 使用 --version 参数锁定版本,避免自动更新导致环境问题。
  3. 沙盒环境测试

    • 在 Windows 沙盒中安装 WinGet 需手动下载包并执行 PowerShell 脚本。

六、总结

WinGet 凭借其高效的命令行操作和灵活的配置选项,已成为 Windows 生态中不可或缺的工具。无论是个人用户快速部署环境,还是企业统一管理软件,WinGet 都能显著提升效率。通过本文的指南,你可以轻松掌握其核心功能,并探索更多高级用法(如脚本自动化、私有源集成等)。

如需进一步了解,可参考以下资源:

  • WinGet 官方文档
  • GitHub 开源仓库

你可能感兴趣的:(windows)