每个维护 Windows 机器的人,都攒过那么一个文件夹,里面塞满零散的 .bat 和 .ps1 脚本——每个解决一件事,彼此却互不相通。SysDoctor 的诞生,正是为了把这些经验汇聚到一款连贯统一的控制台工具中:用 C# 12 / .NET 10 完成 Windows 的诊断与优化,配上一套无需死记命令、任何技术人员都能使用的终端界面。这篇文章将带你了解它背后的工程设计。
为什么选控制台,为什么选 C#
系统维护需要一款能在任何机器上运行的工具,既不必安装一大堆依赖,也没有沉重的界面。一个自包含(self-contained)的控制台应用(win-x64)恰好解决了这个问题:单个可执行文件,零配置。基于 .NET 10 的 C# 12 通过 System.Management(WMI)提供对 Windows 的原生访问,并拥有成熟的异步 I/O 生态;而 Spectre.Console 则带来了带有表格、色彩与状态显示的 TUI,让终端看起来像一款产品,而非光秃秃的命令提示符。
模块化架构
其核心简洁而有意为之:一个仅负责编排菜单的 Program.cs,以及一个 Scripts/ 文件夹,其中每项操作都是一个独立模块(InfoMachine.cs、ClearDisk.cs、ClearRAM.cs……)。新增一项功能只需创建一个文件并注册一个条目——无需触碰其余部分。一个 GlobalUsings.cs 集中管理命名空间,让每个模块保持精简。
17 项操作
这款工具将十七项操作分为两栏——这一划分把了解机器与操作机器区分开来:
- 诊断——硬件/操作系统、Windows 完整性检查、网速测试、ping、处理器温度、还原点、更新以及网络连接映射。
- 优化与维护——清理临时文件、释放 RAM、清理网络缓存、优化延迟、Wi-Fi 调整、Windows 调优、安装后配置以及运行 Windows Defender。
工程决策
- 默认异步——I/O 操作(网络、磁盘、WMI)使用
async/await,因此在运行网速测试或清理任务时,TUI 绝不会卡死。 - 权限受控——应用会检测自身是否已提权并显示状态;无需管理员权限即可运行,而那些借助提权能发挥更大作用的功能会主动提示,而非无声失败。
- 妥善处理错误,而非任其抛出——
UnauthorizedAccessException及类似异常都会被捕获并给出清晰提示;用户能明白发生了什么,而不是看到一堆堆栈跟踪。 - UTF-8 与特殊字符——输出经过专门设计,能正确渲染重音符号与各类符号,而这恰恰是大多数维护脚本所忽略的。
这与 Meta Dados 有什么关系
SysDoctor 是一个开源项目,但它秉承着我在 Meta Dados 生产系统中同样贯彻的原则:将编排与执行分离,把错误处理视为契约的一部分,并为操作者而设计——而不仅仅是为写代码的人。好的工具,是那种会隐于无形、只让问题浮现出来的工具。
常见问题
必须以管理员身份使用吗?
大多数操作并不需要——SysDoctor 无需提权即可运行,并会检测权限级别,以可视化方式显示状态。部分功能(更深入的调优、某些网络调整)在拥有管理员权限时效果更佳,遇到这种情况时应用会主动提示,而非无声无息地失败。
它是开源的吗?运行在什么技术栈上?
是的,它是开源的。它以自包含控制台应用的形式运行于 win-x64,基于 .NET 10 的 C# 12 打造,使用 Spectre.Console 构建终端界面,并通过 System.Management(WMI)访问系统信息。需要 Windows 10+ 与 PowerShell 5.1+。