用途与实际影响
这项功能怎样使用
为什么需要它
手工记着备份容易遗漏;采集也不能把正在修改的文件冲掉,更不能误把“有快照”当作已重装好全部程序。
举个实际例子
“恢复上一份Steam配置前,先告诉我会改什么;不合适还能撤回。”先取得只读计划,核对程序版本与资源,确认并退出Steam后再回填;完成后得到回滚编号,打开Steam检查实际效果。
最后我会得到什么
状态窗口分别显示本地快照、最近尝试与成功、独立副本和任务状态。恢复只回填支持的配置,程序、主题资源和最终 Steam 界面仍要另验。
可以怎么用
快照文件与清单一致;恢复按已确认的计划完成并保留撤回依据,随后在 Steam 看实际效果。
需要处理什么
采集未完成、来源不全或有人改过目标时停止覆盖,保留文件和记录供恢复。
什么时候不可用
找不到当前安装、用户未登录或缺程序资源时,这次采集或界面恢复不能完成;旧快照仍保留。
从哪里开始
运行 tools/Show-MillenniumBackupStatus.ps1 看任务或立即采集;命令行可用 tools/Invoke-MillenniumBackup.ps1 -Mode Snapshot。恢复先用 -Mode RestorePlan 选版本。
需要准备什么
- 这次要查状态、立即采集还是恢复
- 恢复时想选哪天的版本
- 是否已退出 Steam
从开始到拿到结果
- 1
先看快照真的留到了哪里
周任务或手动采集分别报告本地结果与独立副本;提交到版本库和冷备是另外的证据。
- 2
恢复前看清范围
选确实存在的日期和版本,预览要改的设置,并确认所需插件或主题已安装。
- 3
合并后在 Steam 里看
保留撤回依据,只回填支持的配置,再打开 Steam 核对外观和插件;工具不替人安装程序。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
最近任务成功;可验证代际和恢复命令已实现,真实Steam效果另验关键规则与设计选择
复用 Windows 任务计划与小 VBS,不增加常驻备份服务。
没有七天节流和脏目标绕过;无变化仍验证,默认保留4份已验证代际。
恢复是单独的RestorePlan/Restore/Rollback流程,不能反向运行采集脚本;中断用原事务Recover。
恢复按现有分步规程进行,用户可选择具体快照,并核对新装程序是否与旧配置对应。
本模块用到的名词
- Verified generation(已验证代际)
- 一组文件及对应完整性清单,验证后才成为当前;无变化不创建重复代。
- Interactive Logon(交互登录)
- 现役任务依赖该用户已经登录;不是保证无人登录时运行的服务。
- staging(暂存区)
- 先保存待发布文件和原值,再逐文件提交、最后发布清单;可恢复中断但不是全文件系统原子切换。
专业定义
无变化不重复留代,恢复先预检、保留原值;任务与G/H各自报告
解决什么
任务存在不代表采集成功,本地采集不等于 GitHub 已更新,文件复制也不等于恢复完成。
当前怎样实现
- PowerShell7.2+调用Python3.11+核心,显式来源或注册表/常见目录定位;只有机器名与实际仓库均匹配才消费PCConfig机器绑定,拒绝在该绑定下替换采集源。
- 目标与上一份已生成清单比较;手动、定时及其他进程受同一固定目标锁保护。未知文件、真实快照修改或Git读取失败停止覆盖,源或目标/运行根重叠、链接路径拒绝。
- 支持目录完整且前后稳定才生成候选,先保存持久前像和计划,再逐文件写入,清单最后提交与回读;未完成记录阻断正式读入口,Recover检查记录和当前资源后处理,保留外来改动。
- 现役任务仍为周日当地19:30、Interactive/Limited、错过补跑、3次15分钟重试、10分钟上限和IgnoreNew;隐藏VBS调用PowerShell7,启停只管理该任务未来触发。
- RestorePlan只读验证备份和目标;Restore要求ExpectedPlan,合并支持配置并保留网络/未知字段,资源或版本不匹配停止。真实安装目标需Steam已退出,不自动结束进程、下载或运行插件。
- 恢复结果带rollback_id,Rollback只撤回仍匹配本轮postimage的修改。恢复历史默认保留4条已完成、回滚或中止记录,未完成记录不自动清掉。
- G副本先核验PCConfig卷身份和路径,再复制当前及保留历史并验证;G失败仍保留本地但自动任务非零。H使用原PCConfig冷备集合,无新任务、无自动解锁。
执行流程
- 1
原周任务或明确人工Snapshot进入实际来源与机器绑定。
- 2
检查源稳定性、目标清单、固定锁和是否有未完成事务。
- 3
生成并验证候选,逐文件写入、最后发布清单;无变化不增加代际。
- 4
独立验证G副本并分别报告最近尝试与最近成功;Git发布与H冷备另行执行。
- 5
恢复先只读计划,核对版本和资源;明确执行后保留回滚点,最后在Steam内验证。
边界
- 不自动Git提交或推送,采集、G副本、H和实际应用分层判断。
- 有持久前像的多文件事务不等于任意断电和硬件损坏均已验证;不抹去外部修改或未知旧记录。
- 受控恢复只回填支持的配置,不安装插件、不启停Steam、不覆盖主题程序和私有数据。
失败与恢复
- 源与目标重叠或不同的手工改动仍未处理
- 保留源与目标,处理精确冲突;当前入口不提供脏目标绕过。
- 本次内容没有变化
- 验证现有清单和文件后保持,不新建重复代;仍分开检查G副本与任务状态。
- 写入中断或恢复版本不匹配
- 同一事务检查后Recover,恢复版本/资源不匹配则停止回填;已提交恢复若清理失败保持真实提交结果,不回滚掉已成功内容。
真实入口
tools/snapshot-millennium-config.ps1真实采集与失败处理。
tools/register-millennium-config-snapshot-task.ps1注册及任务参数。
tools/snapshot-millennium-config-hidden.vbs隐藏调用与退出码传递。
runtime/snapshot-state.json / README.md / tests/run-snapshot-tests.ps1现行清单、绑定成功状态、操作指南与隔离回归;9月8日19项仅是历史。
如何验证
- 原有 19 项断言全部通过;重试参数的两项检查属于源码断言,不是实际失败重试演练。
- 2026-09-18只读回读:任务Ready,最近结果0,成功状态绑定20260918T044109Z-3baa6bc2e6e9及清单哈希;没有再次触发真实采集。
- 9月8日20文件隔离采集与回填字节一致,19 JSON解析成功,3个虚构已安装资源/私有设置保留;本次未做真实Steam恢复。
与其他模块的关系
负责前三类配置的定期留存和恢复操作;Steam、Millennium 及插件主题各自负责实际运行。
