Task Scheduler服务未运行是Navicat定时备份不执行的最常见原因;需确认其状态为“正在运行”、启动类型为“自动(延迟启动)”,并勾选任务属性中“不管用户是否登录都要运行”,同时禁用“只在用户登录时运行”。
Task Scheduler 服务没在运行,是 Navicat 定时备份“看起来配置好了却从不执行”的最常见原因。Navicat 自己不带后台进程,它只是把任务写进 Windows 的任务计划库,真正唤醒和执行的,是系统级的 Task Scheduler 服务。
为什么手动点“运行”能成功,但定时就不动?
因为手动触发绕过了调度器的启动逻辑,直接调用一次navicat.exe;而定时执行完全依赖 Task Scheduler 按时拉起进程。如果该服务是“已停止”或“启动类型=手动”,哪怕任务状态显示“准备就绪”,它也永远不会被触发。
检查方法很简单:
- 按
Win + R,输入services.msc回车 - 在服务列表中找到
Task Scheduler - 确认「状态」列是「正在运行」,且「启动类型」设为「自动(延迟启动)」
如果状态是「已停止」,右键 → 「启动」;如果启动类型是「手动」或「禁用」,双击它 → 改为「自动(延迟启动)」→ 点「确定」。
任务计划程序里显示“已运行”,但没生成备份文件
这说明调度器确实触发了任务,但后续环节失败了——此时错误码往往藏在「历史记录」里,而不是 Navicat 界面中。关键操作:
- 打开「任务计划程序」→ 找到你的 Navicat 任务 → 右键 → 「属性」→ 「历史记录」选项卡 → 勾选「启用该任务的历史记录」(如果还没开)
- 等下次预定时间过去,再回来点「查看」→ 「历史记录」,重点看最后几条记录的「操作代码」
- 常见失败码:
0x1(命令未找到或路径错)、0xC0000022(权限拒绝)、0x41301(任务注册但未启动,多因用户未登录)
任务属性里“不管用户是否登录都要运行”没勾选
这是跨会话执行的硬性前提。Windows 默认只在当前用户交互式会话中运行任务;一旦你锁屏、远程桌面断开、或服务器以 service account 启动,任务就静默挂起。务必检查:
- 任务属性 → 「常规」选项卡 → 勾选「不管用户是否登录都要运行」
- 同时取消勾选「只在用户登录时运行」——这两个选项互斥,勾了后者就等于废掉前者
- 勾选后会提示输入运行账户密码(如
NT AUTHORITY\SYSTEM或指定域账户),必须正确填写并保存
容易被忽略的一点:如果你用的是非管理员账户(比如专用的 navicat-backup 用户),该账户还必须拥有「作为批处理作业登录」的权限,否则即使密码正确,任务也会因 UAC 令牌限制而无法加载上下文。这个权限需通过 secpol.msc → 「本地策略」→ 「用户权利分配」里添加。


















