可通过任务计划程序、注册表、组策略或日志封装方案实现Windows 10开机自动运行脚本;其中任务计划程序法最通用,支持家庭版,配置触发器为“计算机启动时”并设最高权限与失败重试。

如果您希望在Windows 10系统启动后自动运行某个脚本(如PowerShell或批处理文件),但又不依赖用户登录、不局限于专业版组策略,可通过任务计划程序的高级配置实现稳定可靠的开机执行。以下是解决此问题的步骤:
一、使用任务计划程序创建高权限开机任务
该方法通过“创建任务”高级界面设定系统级触发与执行权限,确保脚本在内核初始化完成后、用户登录前即运行,适用于家庭版与专业版,且支持失败重试与环境条件控制。
1、按下Win + R组合键,输入taskschd.msc并按回车,打开任务计划程序。
2、在右侧【操作】面板中,点击“创建任务…”(注意非“基本任务”)。
3、在【常规】选项卡中,输入任务名称(例如“开机运行监控脚本”),勾选使用最高权限运行,并在【配置为】下拉菜单中选择“Windows 10”。
4、切换至【触发器】选项卡,点击【新建…】,在“开始任务”处选择“当计算机启动时”,可勾选延迟任务时间:5分钟以避免与系统服务资源争抢。
5、切换至【操作】选项卡,点击【新建…】,在【操作】下拉菜单中选择“启动程序”;在【程序或脚本】栏填写:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe;在【添加参数(可选)】栏填入:-ExecutionPolicy Bypass -File "C:\Scripts\startup.ps1";在【起始于(可选)】栏填入脚本所在目录,例如:C:\Scripts\。
6、切换至【条件】选项卡,取消勾选只有在计算机使用交流电源时才启动此任务(保障笔记本电池模式下仍可执行)。
7、切换至【设置】选项卡,勾选如果任务失败,重新运行每:5分钟,最多尝试:3次,并勾选如果正在运行另一个实例,则下列规则适用:停止现有实例。
二、通过注册表实现无交互式开机脚本启动
该方法将脚本路径直接写入系统运行键,无需图形界面干预,脚本在用户会话初始化阶段自动调用,适合轻量级、无GUI依赖的批处理任务,且兼容所有Windows 10版本。
1、按下Win + R组合键,输入regedit并按回车,启动注册表编辑器。
2、导航至以下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(对所有用户生效)或HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run(仅当前用户)。
3、在右侧空白区域右键 → 新建 → 字符串值,命名为有意义的名称(如“AutoScript”)。
4、双击该字符串值,在“数值数据”栏中输入完整命令行:cmd /c start /min "" "C:\Scripts\launch.bat"(确保路径不含空格或使用英文引号包裹)。
5、关闭注册表编辑器,重启计算机验证脚本是否在登录界面出现前已静默启动。
三、利用组策略编辑器配置系统级启动脚本
该方法将脚本注册为计算机启动策略的一部分,由系统在登录前统一调度,不依赖用户上下文,适用于Windows 10专业版、企业版及教育版,支持.ps1、.bat、.vbs等多种格式。
1、按下Win + R组合键,输入gpedit.msc并按回车,启动本地组策略编辑器(若提示未找到,请确认系统版本)。
2、依次展开左侧路径:计算机配置 → Windows设置 → 脚本(启动/关机)。
3、双击右侧“启动”项,打开“启动属性”窗口。
4、点击“添加”按钮,在弹出对话框中点击“浏览”,定位并选择您的脚本文件(例如C:\Scripts\startup.ps1)。
5、若脚本为PowerShell格式,需预先以管理员身份运行命令:Set-ExecutionPolicy RemoteSigned -Scope LocalMachine,否则脚本将被阻止执行。
6、点击“确定”保存设置,重启后脚本将在Windows登录屏幕出现前执行。
四、部署带日志记录的可靠启动脚本封装方案
该方法通过包装原始脚本为可审计的批处理容器,自动捕获执行时间、退出码与标准输出,便于排查开机阶段的静默失败问题,提升运维可观测性。
1、新建文本文件,重命名为wrapped_startup.bat,内容如下:
@echo off
echo [%date% %time%] 开始执行启动脚本 >> C:\Scripts\log\startup.log
PowerShell.exe -ExecutionPolicy Bypass -File "C:\Scripts\startup.ps1" >> C:\Scripts\log\startup.log 2>&1
echo [%date% %time%] 脚本执行结束,退出码:%errorlevel% >> C:\Scripts\log\startup.log
2、确保C:\Scripts\log\目录存在且当前用户具有写入权限。
3、将该批处理文件作为目标程序,通过前述任一方法(任务计划程序或注册表)注册为开机启动项。
4、重启后检查C:\Scripts\log\startup.log文件是否生成,并包含时间戳与执行结果。










