Windows定时强制重启后启动脚本未自动运行问题求助
解决Windows无登录自动重启+开机运行脚本问题
一、问题根源
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup下的脚本仅在用户成功登录系统(包括RDP登录)后才会执行,黑屏未登录状态下不会触发。- 原重启任务的配置未适配无登录场景,导致重启后脚本无法自动运行。
二、解决方案步骤
1. 用任务计划创建系统级开机触发任务(替代Startup文件夹)
创建无需用户登录即可执行的脚本启动任务:
- 打开「任务计划程序」,点击「创建任务」
- 常规选项卡:
- 勾选「不管用户是否登录都要运行」
- 勾选「使用最高权限运行」
- 取消勾选「隐藏」(调试阶段用,确认正常后可再勾选)
- 触发器选项卡:
- 点击「新建」,触发条件选择「启动时」,确认保存
- 操作选项卡:
- 点击「新建」,操作类型选「启动程序」
- 程序或脚本:填入你的.bat文件完整路径,比如
C:\Scripts\your_startup_script.bat - 起始于:填入.bat文件所在的文件夹路径(避免脚本依赖文件找不到)
- 设置选项卡:
- 勾选「如果任务失败,每隔X分钟重试」(根据需求设置重试间隔)
- 取消勾选「只有在计算机使用交流电源时才启动此任务」(服务器可忽略)
- 保存任务,输入管理员密码确认。
2. 修正每10分钟自动重启的任务配置
确保重启任务稳定执行,且适配无登录场景:
- 打开原重启任务的属性
- 常规选项卡:同样勾选「不管用户是否登录都要运行」和「使用最高权限运行」
- 操作选项卡:确认PowerShell命令正确性,建议使用:
(Restart-Computer -Force -Timeout 60-Timeout 60给系统预留60秒处理进程的缓冲时间) - 设置选项卡:
- 勾选「如果任务失败,每隔X分钟重试」
- 勾选「如果任务运行时间超过X小时,停止任务」(可选)
3. 验证效果
- 在.bat脚本中添加日志输出,比如
echo %date% %time% 脚本执行成功 >> C:\script_run_log.txt,方便验证 - 手动触发重启任务,等待系统重启后,无需RDP登录,查看日志文件确认脚本是否执行
- 观察后续每10分钟的重启逻辑,确认每次重启后脚本自动运行
补充说明
- 确保.bat脚本不依赖用户登录后的环境变量、桌面资源等,否则可能执行失败
- 若服务器重启后停在登录界面,可设置自动登录:按下
Win+R输入netplwiz,取消勾选「要使用本计算机,用户必须输入用户名和密码」,输入自动登录的账号密码后确认
内容的提问来源于stack exchange,提问作者Basavannappa Balikai
相关产品推荐
相关产品推荐

