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 项目增加非破坏性验证。
|
||||
|
||||
每个修改操作必须满足幂等、可验证和尽可能可恢复;不能只根据进程退出码显示成功。
|
||||
Reference in New Issue
Block a user