--- title: Checkpoint 2026-08-24 08:20:59 UTC [5d3eb69216] type: checkpoint permalink: main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/checkpoint-2026-08-24-08-20-59-utc-5d3eb69216 stable_id: 8db18267-0c12-4446-bfe8-f2f755752c09 scope: project project_id: ea207d36-693c-4349-b3c8-7c40c8c889f5 memory_type: checkpoint status: active revision: 1 restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 created_at: '2026-09-23T15:11:37.281771+00:00' updated_at: '2026-09-23T15:11:37.281845+00:00' tags: - vm-test - build-verified - handoff --- # VM 端到端测试前复验(2026-08-24) ## 当前状态 - 工作区 `E:\code\WinUnLock`,分支 `main`,HEAD `09662c8`,Git 工作区干净,无远程。 - 当前安装方式为 Rust 安装器 `winunlock-admin.exe`,不使用 PowerShell 安装脚本。 - 工具链:`rustc 1.94.1`、`cargo 1.94.1`、`stable-x86_64-pc-windows-msvc`。 ## 本次验证 - `cargo test --release --target x86_64-pc-windows-msvc` 成功:14 个测试通过,0 失败(common 13、provider 1)。 - `cargo build --release --target x86_64-pc-windows-msvc` 成功。 - 四个产物存在:`provider.dll` 586752 B、`client.exe` 518656 B、`setup.exe` 647680 B、`winunlock-admin.exe` 279552 B。 - `winunlock-admin.exe --help` 与 `setup.exe --help` 均退出码 0,中文输出正常。 ## VM 测试下一步 1. Windows 10/11 x64 VM 内先确认账户的文本密码可以手动解锁,不能使用 PIN 代替密码;建议使用本地测试账户并准备第二个管理员账户。 2. 安装 Credential Provider 前创建 VM 快照。 3. 可在宿主机编译后只复制四个 release 产物到 VM;`cred.bin` 必须在 VM 内运行 setup 生成,不能跨机器复制。 4. 在 VM 管理员终端运行 `winunlock-admin.exe install --unlock-time HH:MM`,再从管理员终端运行 `%PROGRAMDATA%\WinUnLock\bin\setup.exe --account ".\用户名"` 并交互输入密码。 5. 将触发时间设为约 3 分钟后,执行 `Win+L`,观察自动解锁;成功/失败后检查 `client.log` 与 `provider.log`。 6. 失败时按日志分层判断:无 provider 日志=DLL 未加载/未注册;client 退出码 10=管道未出现;provider 收到凭据但未提交=CredentialsChanged/GetCredentialCount 链路;提交后失败=账户格式、密码或认证包问题。 7. 卸载从构建产物目录以管理员运行 `winunlock-admin.exe uninstall`;锁屏异常时恢复 VM 快照,或在安全模式/WinRE 删除两个 CLSID 注册项。 ## 注意 安装器会把 `%PROGRAMDATA%\WinUnLock` ACL 收紧为仅 SYSTEM/Administrators,因此 setup 应在管理员终端运行。