Navicat定时任务锁屏后不执行,主因是未勾选“不管用户是否登录都要运行”且使用了navicat.exe而非navicatcmd.exe;需勾选该选项、配置正确账户权限、改用navicatcmd.exe并设置完整路径与参数。
Task Scheduler服务本身没停,但任务被会话隔离卡住
锁屏后navicat定时任务“看起来没动”,不是因为服务崩了,而是windows默认把计划任务绑定在当前交互式用户会话里。一旦锁屏、远程断开或无人值守,系统就认为这个会话“不可用”,任务直接跳过——连启动都不启动,自然没日志、没报错、也没备份文件。
“不管用户是否登录都要运行”没勾选是主因
这个选项不是锦上添花,而是跨会话执行的硬门槛。只要它没勾上,哪怕Task Scheduler服务跑得再稳,任务也只认“桌面亮着+你正 logged in”这个状态。
- 打开「任务计划程序」→ 找到你的 Navicat 任务 → 右键「属性」→ 「常规」页
- 必须勾选
不管用户是否登录都要运行 - 同时取消勾选
只在用户登录时运行(这两个互斥,勾了后者等于废掉前者) - 勾选后点「更改用户或组…」,填入完整账户名(如
DESKTOP-ABC\backupuser),再输密码保存
用navicatcmd.exe替代navicat.exe才能真后台运行
Navicat 16起,navicat.exe在无桌面会话下会尝试初始化GUI组件,导致进程卡死或静默退出;而navicatcmd.exe是纯命令行版本,专为计划任务设计,不依赖窗口句柄。
- 编辑任务时,在「操作」页的「程序/脚本」栏填:
C:\Program Files\PremiumSoft\Navicat Premium 16\navicatcmd.exe - 「添加参数」填:
--backup "MyBackupTask"(引号内任务名须与Navicat中完全一致,含大小写和空格) - 「起始于(可选)」必须填该exe所在目录的绝对路径:
C:\Program Files\PremiumSoft\Navicat Premium 16\,不能留空
账户权限缺一不可:批处理登录 + 目录写入权
即使密码正确、路径无误,非管理员账户仍可能因UAC令牌缺失或目录权限不足被拦在门外,错误码常为0xC0000022或0x80070005。
- 按Win+R输入
secpol.msc→ 「本地策略」→ 「用户权利分配」→ 找到「作为批处理作业登录」→ 双击添加你的备份账户 - 右键
navicatcmd.exe所在目录 → 「属性」→ 「安全」→ 确保该账户有「读取和执行」权限 - 备份目标路径(如
D:\backup\)需赋予该账户「修改」权限,不能只靠继承 - 若Navicat连接里存了数据库密码,非交互式账户无法调用Windows Credential Manager解密——改用IP白名单+
mysql_native_password认证更稳妥


















