Initial commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# 架构说明
|
||||
|
||||
## 项目组成
|
||||
|
||||
```text
|
||||
WindowsToolbox.App
|
||||
WPF 界面、MVVM、UAC 客户端
|
||||
|
||||
WindowsToolbox.ElevatedHost
|
||||
固定命令白名单、管理员权限系统修改
|
||||
|
||||
WindowsToolbox.Cli
|
||||
当前用户桌面归档计划任务入口
|
||||
|
||||
WindowsToolbox.Infrastructure
|
||||
注册表、进程、任务计划、快照、各功能实现
|
||||
|
||||
WindowsToolbox.Core
|
||||
命令、状态、结果、快照和配置模型
|
||||
|
||||
WindowsToolbox.Verification
|
||||
不修改系统的自动验证程序
|
||||
```
|
||||
|
||||
## 执行流程
|
||||
|
||||
```text
|
||||
用户点击功能
|
||||
→ 主程序生成强类型 ToolboxCommand
|
||||
→ 普通文件操作直接执行
|
||||
→ 系统操作写入 Pending 目录并请求 UAC
|
||||
→ ElevatedHost 验证路径、时效和命令类型
|
||||
→ 首次操作保存基线快照
|
||||
→ 执行固定实现
|
||||
→ 读取实际状态进行验证
|
||||
→ 写入结果和操作历史
|
||||
→ 主程序刷新系统状态
|
||||
```
|
||||
|
||||
管理员执行器只接受枚举中的命令以及经过各模块验证的参数,不提供任意 CMD、PowerShell 或脚本执行入口。
|
||||
|
||||
## 扩展新功能
|
||||
|
||||
新增功能时应按以下顺序:
|
||||
|
||||
1. 在 `ToolboxCommandKind` 中添加固定命令。
|
||||
2. 在基础设施项目中实现模块服务。
|
||||
3. 确定原始状态的完整快照范围。
|
||||
4. 在 `ToolboxCommandDispatcher` 注册执行分支和提权要求。
|
||||
5. 在 WPF ViewModel 暴露命令,在页面添加状态、风险说明、应用和恢复入口。
|
||||
6. 向 Verification 项目增加非破坏性验证。
|
||||
|
||||
每个修改操作必须满足幂等、可验证和尽可能可恢复;不能只根据进程退出码显示成功。
|
||||
@@ -0,0 +1,46 @@
|
||||
# 系统操作边界
|
||||
|
||||
## 右键菜单与快捷方式箭头
|
||||
|
||||
经典菜单使用当前用户 Shell 类注册项,并在修改后由普通权限主程序自动重启 Explorer。检测到 Atlas OS 时,同时维护 Atlas Toolbox 使用的状态镜像,实际状态仍以 Explorer 读取的 CLSID 项为准。快捷方式箭头使用系统 `Shell Icons` 覆盖值和工具生成的透明 ICO。
|
||||
|
||||
## Windows 更新
|
||||
|
||||
强力关闭模式管理:
|
||||
|
||||
- Windows Update 自动更新策略。
|
||||
- `wuauserv`、`UsoSvc` 和 `WaaSMedicSvc` 的可控制启动状态。
|
||||
- Update Orchestrator 与 Windows Update 中存在且允许修改的计划任务。
|
||||
- `WindowsToolbox\UpdateGuard` 每日守护任务。
|
||||
|
||||
部分服务和任务在不同 Windows 构建中受系统保护。模块会保留每一步结果,不把拒绝访问伪装成成功。
|
||||
|
||||
暂停模式写入开始和结束时间,最长限制为 35 天。自动续期任务每天重新请求所选暂停长度并再次验证。
|
||||
|
||||
## Windows 安全
|
||||
|
||||
模块使用 Defender 和防火墙的 Windows PowerShell Cmdlet。它不会停止 Security Center 核心服务,不会修改系统文件所有权,也不会绕过防篡改保护。恢复时按基线快照逐项恢复 Defender 偏好、三个防火墙配置和通知策略。
|
||||
|
||||
## 桌面归档
|
||||
|
||||
枚举桌面根目录中的文件和文件夹。默认排除:
|
||||
|
||||
- `desktop.ini`
|
||||
- `.lnk` 和 `.url`
|
||||
- 带 System 属性的文件或文件夹
|
||||
- 重解析点、目录联接及其他可能指向桌面外部的特殊目录
|
||||
|
||||
普通隐藏文件会归档。虚拟的“此电脑”“回收站”等系统图标不属于文件系统枚举范围,因此不会移动。同名目标采用 `名称 (1).扩展名` 或 `文件夹 (1)` 递增。每次执行都生成恢复清单;撤销只移动仍然存在于归档目录中的项目。
|
||||
|
||||
## KMS
|
||||
|
||||
密钥目录位于 `data\kms-keys.json`,可以手动维护。激活顺序为:
|
||||
|
||||
1. 验证版本、密钥格式、主机和端口。
|
||||
2. TCP 测试本地 KMS 主机。
|
||||
3. 保存原 KMS 主机和端口。
|
||||
4. 安装所选 GVLK。
|
||||
5. 设置 KMS 主机。
|
||||
6. 请求 Windows 激活。
|
||||
|
||||
如果连接测试失败,不修改产品密钥。
|
||||
Reference in New Issue
Block a user