必须以管理员身份运行Windows终端并执行winget export -o installed-packages.json --include-unknown命令导出含所有来源(winget/msstore等)及未知安装软件的结构化清单,再校验JSON有效性后备份。

重装 Windows 11 后,想在新系统上一键恢复所有已装软件,必须先从旧电脑导出完整、准确、可复用的软件清单——这个清单不是靠“记住哪些软件”或截图凑数,而是由 winget 自动生成的结构化文本,包含每个软件的唯一 ID 和来源,确保跨设备安装零偏差。
确认 winget 已就绪并获取管理员权限
按下 Win + X → 选择【Windows 终端(管理员)】。这一步不能跳过普通终端,否则导出时可能因权限不足漏掉商店应用或系统级工具。
输入 winget --version 回车。若返回类似 v1.8.21211 的版本号,说明 winget 已激活;若提示“不是内部或外部命令”,需先运行:Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe → 重启终端再验证。
【关键前提】 必须以管理员身份运行终端,否则 winget 无法读取 Microsoft Store 安装的应用(如 Xbox、Your Phone),导出列表将严重缺失。
导出全量已安装软件清单(含商店应用)
在已获管理员权限的终端中,执行以下命令:
winget export -o installed-packages.json --include-unknown
该命令会扫描所有已知来源(winget、msstore、scoop、choco 等)安装的软件,并把完整 ID 列表写入当前目录下的 installed-packages.json 文件。加 --include-unknown 参数是关键——它强制 winget 把那些未被任何包管理器注册、但实际存在于“设置→应用→已安装应用”里的程序(如部分 MSI 安装的国产软件)也纳入导出范围,避免遗漏。
导出完成后,检查文件内容:打开 installed-packages.json,确认其中包含 "source": "msstore"、"source": "winget" 等不同来源条目,且数量与你记忆中的已装软件基本吻合。若只有寥寥几行,大概率是没开管理员权限或漏了 --include-unknown。
导出后立即备份并校验文件有效性
将生成的 installed-packages.json 文件复制到 U 盘、OneDrive 或微信文件传输助手——不要只留在桌面,重装时原系统盘会被格式化。
双击用记事本打开该 JSON 文件,快速扫一眼前 3 行:必须看到 "version"、"created"、"imports" 三个顶层字段,且 "imports" 是一个非空数组。如果文件开头是乱码、空白或报错提示“JSON parse error”,说明导出过程被中断或磁盘写入失败,需重新执行上一步命令。
这一步操作起来很简单,直接把文件拖进去就行。但若跳过校验,等到重装后运行导入命令才发现 JSON 损坏,就得回退到旧系统重导,浪费至少十分钟。


















