用途与实际影响
这项功能怎样使用
为什么需要它
新装机最容易乱的是恢复顺序,以及旧配置仍指向原机器的位置。新用户名、Documents目录或盘符不同本身不是故障,直接照搬旧绝对路径才会让软件读错位置;微信覆盖非空目标还可能冲掉新数据。
举个实际例子
比如我换到一台干净电脑:AI先按清单补软件,并和PCConfig核对新机实际用户、Documents与应用目录,再把兼容配置映射过去并检查是否加载。只有我选择沿用原布局才恢复E盘指向;微信仍先预检、保留目标,实际登录后验收,旧任务逐项重建。
最后我会得到什么
得到一份先检查、再选择、最后逐应用试用的换机恢复计划。包能解开只证明文件在,不代表新机登录、微信历史和自动任务都已恢复。
正常时
选中配置包先完整核对,再恢复到独立目录;应用与自动任务实际可用另行确认。
发现问题时
旧路径指向不存在的用户或目录时按新电脑实际位置调整;微信目标有文件先保留可回退副本。
入口不可用或证据不足时
清单缺失、文件损坏、来源与目标重叠或微信仍在运行时停止写入,不暗中换包或覆盖。
从哪里开始
在已接入的 AI 对话中说“先预检这份 DevConfig 包恢复到新电脑”;微信恢复须另外指明原件和目标。
需要准备什么
- 完整日期包及附属清单
- 新机用户名和应用目录
- 目标已有文件及想恢复的范围
从开始到拿到结果
- 1
确认这份包能用在新电脑
先只读核对包与随附清单,再将旧机路径映射到新机真实用户和软件目录。
- 2
保留当前目标后选择回填
明确执行和覆盖范围时解到独立目录,再逐项映射配置;微信目标非空须有回滚副本并确认客户端关闭。
- 3
逐应用重建
按当前 PCConfig 手册重建任务并检查软件加载和微信登录;包完整不证明任务或应用已经可用。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
配置包隔离解包全树哈希已由来源验收;默认预检与任务恢复边界已实现,完整新机和微信应用仍未验收关键规则与设计选择
README 用 7 个阶段组织恢复:装基础工具、取包、补软件、选择性回填配置、逐项恢复系统设置、处理微信、最后重挂任务与远端。
原机“文档”位于E:\Documents,这是备份事实。新机先读取实际Documents位置并映射配置,只有明确保留旧布局时才重定向到E,不能把旧盘符当作恢复前提。
原机用户名为10979;新机可以采用不同用户名。AI按实际用户根有界更新已知旧路径并回读,保留原文件和未解决映射,不要求本人逐条手改。
Restore-WeChat.ps1 默认只读预检,显式执行时目标非空必须强制生成 .pre-restore-* 回滚目录。
标记状态 COPY_COMPLETE_AWAITING_HUMAN_ACCEPTANCE,由用户登录官方客户端确认历史,绝不用脚本退出码冒充恢复。
四个常规任务的 Action 固定为 wscript.exe;隐藏 VBS 优先 PowerShell 7,找不到才用 Windows PowerShell 5.1。独立临时监控安装器才固定 5.1。
本模块用到的名词
- Idempotent Task Registration(幂等任务注册)
- 无论运行多少次,只更新或确保计划任务处于正确配置,不产生重复实例或脏状态。
- Human Acceptance Gate(人工在场验收门)
- 对于专有通讯软件,文件拷贝完成不等于数据可用,必须由真人登录官方应用最终确认。
- Pre-restore Rollback(恢复前回滚隔离)
- 在写入前把已有目标移到 .pre-restore-*;若复制失败,部分结果再移到 .failed-restore-*,随后尽力把原目录恢复。
专业定义
配置包先核验再隔离解包,微信先预检再明确回填;已有目标和任务定义都留恢复前像,应用登录另验。
解决什么
防止重装新系统后盲目覆盖导致已有数据丢失,防止因 Documents 路径或用户名不一致导致软件配置失效。
当前怎样实现
- Restore-DevConfig 默认 Plan,要求 package-receipt.v2、payload-manifest.v1、包 SHA-256、内部路径和 manifest(清单);Execute 先解到独立 incoming 并全树核对,才保留旧目标并切换。Restore-WeChat 另有客户端与原生目录约束,DriveOnly 仍需真实联网恢复验收。
- 路径检查拒绝盘符根目录、source/target 相同或互为父子目录,以及任一路径或父级上的 reparse point(重解析点)。
- Setup-ScheduledTasks.ps1与ScheduledTask-Registration.Common.ps1支持只收敛选定的已登记任务,保留既有时序和设置;微信Hot使用当前交互用户Highest,其余Limited。临时小时监控仍由独立安装器管理,本轮未重装任何任务。
- 注册器先拒绝别人的同名任务,保存精确 XML、动作与启停前像;任何更新或回读失败按原定义恢复,用户原来暂停的任务不能被重新启用。
- Hidden VBS 启动脚本(Backup-DevConfig-Hidden.vbs 等)隐藏黑框并完整保留并透传退出码。
- 恢复测试分别验证包哈希/清单、危险路径、替换前像、逐文件内容与应用验收状态;源码回归、源 Owner 隔离恢复和网页本轮只读状态三个证据层互不替代。
执行流程
- 1
先准备Git与DevConfig源码,再按Git总索引和目标机器找到PCConfig的实际规范位置,取得获准的恢复指南。原机E:\PCConfig只是路径线索;暂时缺这份资料只暂停依赖它的机器配置、任务与H冷备步骤。
- 2
选择带对应 .sha256、.receipt.json、.manifest.json 的成功日期包;运行 Restore-DevConfig 默认只读核验,不再依赖原电脑 state/latest.sha256,散失附属文件的旧包不能冒充完整恢复集。
- 3
明确 Execute 后解到独立目录并逐文件核对;需要替换非空目标时先指定 ReplaceExisting,原目标保留。再按软件清单补齐可下载组件,不自动导入所有旧系统配置。
- 4
按新系统和应用版本,把home/、appdata-roaming/、appdata-local/与extra/Scoop-persist/映射到目标机器实际目录;AI核对Documents、用户名和盘符差异,处理已知引用后再看应用是否正常加载。
- 5
环境变量、Xshell、Wi-Fi、hosts和任务按实际PCConfig根内docs/recovery/START_RECOVERY.md与scheduled_tasks_rebuild.md逐项处理;先运行现有任务重建计划检查,不通配导入旧XML,也不照搬原机盘符。
- 6
微信先用默认 G 源或明确的 -BackupRoot 本地/USB 目录做只读预检;确认路径与客户端状态后才 Execute,最后登录官方客户端验收。-DriveOnly 仍是未完成真实联网验收的兼容路径。
- 7
Local 打包时会把已有的 state/rclone-remote-binding.json 复制进包内 _manifests(只含非秘密别名,不含 OAuth/token)。新机重新执行 rclone config 后,再把这份别名选择回填到 state,运行 Setup-ScheduledTasks.ps1 并逐项查看四任务状态。
边界
- 新电脑恢复先核对实际用户、Documents与应用目录;原机E盘和10979作为旧路径线索,恢复任务负责映射与回读,不能把保持旧布局设为默认要求。
- 严禁通配批量导入历史任务计划 XML,必须按 PCConfig 重建手册逐项核对。
- Restore-WeChat.ps1 在未经用户显式确认官方微信关闭前严禁写入,目标非空必须保留回滚副本。
- 备份源与目标不能是盘根、同一路径、互为父子目录或经过重解析点;这些条件任何一个不清楚就不执行。
- -DriveOnly 只说明存在兼容实现,本轮没有真实联网下载恢复证据,不能替代已验的本地/G 路线。
- 随包强哈希缺口已解决,但恢复者必须带走同一代必要文件并完整核验;7z CRC、文件名或单份旧 state 不代替成功回执与全树清单。
- 文件复制完成仅标记 COPY_COMPLETE_AWAITING_HUMAN_ACCEPTANCE,严禁冒充微信恢复成功。
失败与恢复
- 恢复目标目录已存在非空 xwechat_files 且未传 -ReplaceExisting
- 脚本立即拒绝写入并 fail-closed(失败关闭),防止意外覆盖现有聊天记录。
- 源与目标重叠、互为父子目录、指向盘根或路径链包含重解析点
- 预检直接拒绝;不会靠猜测选择 USB、Drive 或另一个目录。
- 已把旧目标移到 .pre-restore-* 后复制失败
- 部分结果移到 .failed-restore-*,再恢复原目录;若回滚自身也失败,同时报告原始错误和回滚错误。
- 旧配置引用的用户名或Documents路径在目标机器上不可用
- 当前恢复任务通过PCConfig确认实际路径并处理已知引用,回读应用加载情况;不要求改成旧盘符,未能确定的精确目标才交本人决定。
- 目标同名任务不是本项目的隐藏启动器
- 注册器拒绝覆盖;不会为了让测试变绿接管别人的任务。
- 四个任务更新到一半失败或最终回读不一致
- 注册器用执行前抓取的精确 XML 恢复原任务;新建任务也只有在仍匹配本次定义时才撤销。
- PowerShell 7 不在 Program Files 固定路径
- 隐藏 VBS 在启动前选择 Windows PowerShell 5.1;这是真实启动分支,不是任务运行失败后的二次重试。
真实入口
Restore-WeChat.ps1微信灾难恢复总线,提供只读预检与回滚保护
WeChat-Recovery.Common.ps1路径规范化、盘根/重叠/重解析点拒绝、客户端进程检查、复制与失败回滚
Setup-ScheduledTasks.ps1Windows 任务计划程序常规任务幂等注册器
ScheduledTask-Registration.Common.ps1任务计划 XML 解析与安全注册通用逻辑
tests/Assert-WeChatNativeRecovery.ps1预检、回滚与人工验收状态断言自动化测试
tests/Assert-ScheduledTaskRegistrationSafety.ps1任务注册事务性与执行器路径安全测试
Restore-DevConfig.ps1可携带恢复集只读核验、独立目标解包、全树比对与原目标保留
如何验证
- 9 月 18 日来源验收已执行配置包隔离恢复,8,640 文件、8,531,705,353 字节的全树 SHA-256 一致;没有据此声称微信官方客户端已恢复。
- 当前源测试覆盖任务所有权、精确前像、失败回滚和恢复合同;本轮只回读已发布证据,不重新注册或启停任何生产任务。
- 本轮没有在干净 Windows 上导入注册表、Wi-Fi 或整套任务,也没有测量恢复耗时。
与其他模块的关系
把备份材料变成一套可以逐层检查的恢复顺序;它负责工具脚本,机器路径、任务恢复次序和 H 盘冷备仍由 PCConfig 决定。
