视频加载失败

Windows 开机自启动的多种方式

1070 字
5 分钟
Windows 开机自启动的多种方式

引言#

每次开机都要手动打开一堆程序?效率太低了。Windows 提供了多种开机自启动机制,从简单的注册表到强大的计划任务,各有适用场景。

本文系统地梳理了所有开机自启动方式,文末还附带了跳过 UAC 弹窗的实用方案。

1. 注册表启动项(最常用)#

最常见也最简单的自启方式,适合普通应用程序。

位置一览#

位置路径作用域
系统级HKLM\...\Run所有用户
32 位系统级HKLM\...\Wow6432Node\Run32 位程序的系统级启动
用户级HKCU\...\Run当前用户
新用户默认HKCU\DEFAULT\...\Run新建用户的模板
Session 管理器HKLM\SYSTEM\...\Session Manager系统服务级别的启动

完整路径:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

启动目录(当前用户):

%UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

用法#

在注册表 Run 键下新建一个字符串值,名称随意,值为程序的完整路径。或者直接把快捷方式拖到启动目录里。

2. 计划任务(schtasks)— 跳过 UAC#

如果你需要程序以管理员权限开机自启,但不想每次都看到 UAC 弹窗,计划任务是最优雅的解法。

基础命令#

Terminal window
SchTasks /Create /TN "任务名称" /SC 频率 /TR "程序路径" /RL 运行级别

参数详解#

参数作用
/SC触发频率:ONLOGON(登录时)、ONSTART(开机时)、ONCE(一次性)等
/RL HIGHEST以最高权限运行,关键就在于这个参数
/TR要执行的程序路径
/TN任务名称
/F强制覆盖已存在的任务
/DELAY mmmm:ss延迟执行时间
/IT仅在用户登录时交互运行
/NP不存储密码
/RU指定运行账户
/ST HH:mm指定开始时间

实战例子#

Terminal window
;登录时启动 cmd(跳过 UAC)
SchTasks /Create /TN "cmdSkipUAC" /SC ONLOGON /TR "C:\Windows\System32\cmd.exe" /RL HIGHEST
;登录时启动 MouseInc
SchTasks /Create /TN "MouseIncSkipUAC" /SC ONLOGON /TR "E:\PortableApp\0\MouseInc\MouseInc.exe" /RL HIGHEST
;开机时启动风扇控制
SchTasks /Create /TN "MyFanControl" /SC ONSTART /TR "E:\PortableApp\0\MyFanControl\MyFanControl.exe" /RL HIGHEST
;登录时启动 Ditto(剪贴板工具)
SchTasks /Create /TN "DittoSkipUAC" /SC ONLOGON /TR "E:\PortableApp\0\Ditto\Ditto.exe" /RL HIGHEST

其他计划任务操作#

Terminal window
;手动运行
schtasks /run /TN "任务名称"
;查询所有任务
schtasks /query
;更改任务属性
schtasks /change
;删除任务
schtasks /delete /TN "任务名称"
;中止运行中的任务
schtasks /end /TN "任务名称"

3. 创建系统服务#

可以把程序注册为 Windows 服务实现开机自启,但不推荐。

Terminal window
sc create 服务名称 binPath= 文件路径 start= auto type= own displayname= 显示名称

参数说明:

参数可选值
type=own、share、interact、kernel、filesys
start=auto(自动)、demand(手动)、disabled(禁用)、delayed-auto(延迟启动)
binPath=.exe 文件的完整路径
DisplayName=在服务管理器里看到的名称

删除服务:

Terminal window
sc delete 服务名称

⚠️ 为什么不推荐? Windows 服务由系统账户启动,权限较高。普通程序(尤其是带 GUI 的)在服务环境下运行可能会有账户交互问题,而且不容易被普通用户管理。

除非你知道自己在做什么,否则优先考虑计划任务或注册表启动。

4. 服务启动类型详解#

通过注册表直接管理服务的启动类型:

HKLM\SYSTEM\ControlSet001\Services\<服务名称>
启动类型Start 值说明
延迟自动Start=2, DelayedAutostart=1系统启动后稍等再启动
自动Start=2随系统启动
手动Start=3按需启动
禁用Start=4不启动

强行停止服务(当服务管理器灰色不可用时)#

Terminal window
;获取 PID
sc queryex <服务名称>
;杀掉进程
taskkill /F /PID <PID>
;修改启动类型
reg add "HKLM\SYSTEM\ControlSet001\Services\AppXSvc" /v Start /t REG_DWORD /d 4
;删除失败恢复动作
reg delete "HKLM\SYSTEM\ControlSet001\Services\AppXSvc" /v FailureActions

方法对比总结#

方法适合场景能否跳过 UAC复杂度
注册表 Run普通桌面程序❌⭐
启动目录快速添加❌⭐
计划任务需要管理员权限的程序✅⭐⭐
服务后台守护程序✅⭐⭐⭐

技巧:开机自启的服务推荐关闭#

  • Connected User Experiences and Telemetry(DiagTrack)— 诊断跟踪,可以禁用

小结#

选择哪种自启方式取决于你的需求:普通程序放注册表 Run,需要管理员权限又想跳过 UAC 就用计划任务,只有真正的后台服务才考虑注册为 Windows 服务。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Windows 开机自启动的多种方式
https://blog.cn3.top/posts/开机自启动的多种方式/
作者
CC
发布于
2026-06-23
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
CC
嘻嘻.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
32
分类
7
标签
54
总字数
29,119
运行时长
0 天
上次更新
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.9
文章许可
CC BY-NC-SA 4.0
文章目录