跳转到内容
Argus
开发版
下载GitHub
文档/架构/管理员启动

管理员启动

“管理员运行”默认关闭。具有管理员身份的当前 Windows 账户经一次 UAC 确认后可建立启动授权。特权服务、PawnIO 和系统任务管理器替换分别授权。

持久的管理员启动任务仅供发布构建使用。

启动通道

argus-service::admin 管理受保护的 Program Files\Argus Runtime\<应用标识>\<账户 SID>。目录中有稳定的 argus-launcher.exe、按版本生成名称的界面程序、普通启动记录和管理员授权记录。普通账户不能替换这些文件。管理员启动不依赖特权服务是否运行,也不随服务卸载而取消。

计划任务绑定当前账户,以 InteractiveToken 和 HighestAvailable 运行。启动器通过 RunEx 指定交互会话。账户有权读取和执行任务,管理员与 SYSTEM 可修改。任务动作指向受保护的 Argus 程序,助手参数仅编码窗口显隐、更新标记和任务管理器就绪握手。

登录启动仍使用现有的 Run 项和 Windows“启动应用”开关,目标改为稳定启动器并带 --hidden。普通快捷方式和固定图标使用同一策略,窗口的 AppUserModelID 保持应用标识。系统任务管理器替换先创建普通权限入口,该入口在创建单实例与主窗口之前按管理员授权路由。常驻快捷键显示已经运行的管理员实例。

计划任务将用户 SID 规范化为账户名后,校验仍按用户 SID 进行。裸账户名命中同名计算机或域对象时,使用查询返回的域限定账户名重新解析,并确认结果为用户账户。授权任务和记录提交后,快捷方式迁移失败保留已生效的授权;不可用的桌面或开始菜单目录按具体步骤记录到诊断日志。

参考:任务安全上下文、RunEx 的会话与参数。

启动任务采用优先级 4,使启动助手使用普通 CPU、I/O 与内存优先级,符合交互应用的启动用途。数值映射见 Task Scheduler 的 Priority 定义。

权限切换与失败处理

启动请求使用随机名称事件和有界数据。助手核对请求者的 PID、创建时间、账户、会话和完整性级别,拒绝受限令牌。原进程确认并退出后,助手启动目标权限的界面。

已有普通窗口时,管理员副本通过单实例消息提出交接。接收方核对进程的管理员令牌、账户、会话、创建时间和受保护的程序路径后退出。新进程取得单实例锁,再读取设置、启动采样与历史记录并创建窗口。已有管理员窗口时只传递显示和就绪请求。

首帧绘制后确认启动成功。准备失败时保留原界面,目标启动失败时清理本次启动的进程并恢复普通权限界面。自动启动发现任务失效时在设置中提示修复,修复操作重新申请授权。由任务管理器替换启动时可回退到 Windows 任务管理器。

设置、引导与维护

设置分别显示授权状态和当前进程权限。需要切换权限时,在设置中的准备完成后重启;引导中的授权先保存,在完成或跳过引导并保存引导状态后切换。关闭授权删除计划任务,保留登录启动偏好、设置和历史。关闭 UAC 等没有分离令牌的管理员账户没有可切换的普通令牌,撤销授权后保留账户默认权限,不等待普通权限启动助手;界面仍显示当前进程的实际权限。

安装后钩子更新已有受保护记录和任务动作,不为其他账户新增授权。卸载先结束界面副本、删除授权任务,再删除管理员启动文件。清理不依赖完整的授权或启动记录,也会清除中断安装留下的临时文件;文件仍被占用时保留失败状态,释放后可重试,不删除未知文件或递归处理目录。普通启动器与任务动作的程序路径不依赖免安装版原位置。

手动更新免安装版时,先关闭管理员运行并退出,替换文件,再从新版重新开启。发现受保护副本较旧时,新版以普通权限启动,在用户授权后更新受保护副本。

同一版本号的重建按程序内容识别。比较结果按文件路径、大小和修改时间缓存,源程序更换后重新比较。