问题描述
目前 start.bat 在以下场景下会静默失败或用户体验差:
1. 未检测管理员权限
Windows 10/11 下,当用户以标准权限运行时,部分目录写入操作可能失败,但脚本无任何提示。
2. 未检测端口占用
GATEWAY_PORT=18789 被硬编码,如果该端口已被占用,程序启动失败,错误信息不够直观。
3. 缺少退出时的“零痕迹”机制
README 宣称“零痕迹运行”,但岚无:
- 清除系统层级居少进程列表中的进程残留信息
- 清除 Windows 事件日志中的启动记录
- 清除 Windows 最近访问文件列表(MRU)中的记录
- 管理
%TEMP% 下可能的临时文件
建议实施方案
Fix 1:在 start.bat 头部添加权限检测
rem === 权限检测(如需则提权)===
net session >nul 2>&1
if errorlevel 1 (
echo [INFO] 当前不是管理员权限。
echo [INFO] 尝试以管理员身份重新启动...
powershell -NoProfile -Command "Start-Process '%~f0' -Verb RunAs"
exit /b
)
注意:仅在首次安装阶段需要管理员权限,如果依赖已预置(即实现离线包后)应完全不需要管理员权限。
Fix 2:启动前检测端口可用性
rem === 端口冲突检测 ===
netstat -aon 2>nul | findstr ":%GATEWAY_PORT%" | findstr "LISTENING" >nul
if not errorlevel 1 (
echo [WARN] 端口 %GATEWAY_PORT% 已被占用。
echo [INFO] 尝试使用备用端口 18790...
set GATEWAY_PORT=18790
rem 或提示用户手动指定端口
)
Fix 3:在 stop.bat 中增加痕迹清理逻辑
rem === 痕迹清理 ===
echo [INFO] 清理临时文件...
rem 清除最近访问列表中的登记(需要进一步调研 Windows MRU 机制)
rem 将相关实现标记为 TODO 并单独开 issue 追踪
echo [OK] 清理完成。
关于“零痕迹”的现实建议
完全零痕迹在 Windows 上极难实现,建议将 README 中的表述修改为更准确的说法:
✅ 最小化系统痕迹 - 数据存储在 U 盘,无注册表写入,无系统目录安装
而非当前的“零痕迹”。
优先级
🟡 P1 - 影响安全声称的准确性,和目标用户对项目的信任感。
本 issue 由 AI 代码审阅自动生成,如有疑问欢迎讨论。
问题描述
目前
start.bat在以下场景下会静默失败或用户体验差:1. 未检测管理员权限
Windows 10/11 下,当用户以标准权限运行时,部分目录写入操作可能失败,但脚本无任何提示。
2. 未检测端口占用
GATEWAY_PORT=18789被硬编码,如果该端口已被占用,程序启动失败,错误信息不够直观。3. 缺少退出时的“零痕迹”机制
README 宣称“零痕迹运行”,但岚无:
%TEMP%下可能的临时文件建议实施方案
Fix 1:在
start.bat头部添加权限检测注意:仅在首次安装阶段需要管理员权限,如果依赖已预置(即实现离线包后)应完全不需要管理员权限。
Fix 2:启动前检测端口可用性
Fix 3:在
stop.bat中增加痕迹清理逻辑关于“零痕迹”的现实建议
完全零痕迹在 Windows 上极难实现,建议将 README 中的表述修改为更准确的说法:
而非当前的“零痕迹”。
优先级
🟡 P1 - 影响安全声称的准确性,和目标用户对项目的信任感。