Windows中让程序开机自启的方法

在部署像 frpc 这样的服务时,会遇到如何让它开机自启的问题。在这篇文章中我会总结一下我尝试过的几种方法,以及它们的优缺点。

开始菜单的启动文件夹

Windows 的开始菜单中有一个启动文件夹。这个文件夹中的程序都会在用户登录时自动启动。具体操作很简单,打开启动文件夹,放入对应程序的快捷方式即可。而找到启动文件夹可以有两种方法:

  1. 前往 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
  2. 按下 Win + R,输入 shell:Common Startup

这种方法的优点是操作简单,无需额外的软件,缺点是程序只会在用户登录时启动,无法在开机时就自动启动,对于远控一类服务来说非常不方便

WinSW服务打包器

WinSW 是一款开源的 Windows 服务打包器,它可以将任何 EXE 程序都打包成一个系统级服务。理论上来说,系统服务会在系统启动后自动启动,无需用户登录。但是在实际测试中,我发现 WinSW 打包的 frpc 服务在用户登录后仍然没有启动,无法实现自动启动。

这种方法的优点是比较优雅,缺点是效果不稳定,需要额外软件

任务计划程序

Windows 自带的任务计划程序也可以实现程序开机自启。首先打开任务计划程序,选择“创建任务……”。

在“常规”选项卡中,输入任务名称,确保底部的“配置”选择的是“Windows Vista、Windows Server 2008”这一项(测试发现选择其他选项不能开机自启),选择“更改用户或组……”。

在弹出的窗口中,输入“SYSTEM”,选择“检查名称”,选择“确认”。

在“触发器”选项卡中,选择“新建……”。

在弹出的窗口中,“开始任务”选择“启动时”,选择“确认”。

在“操作”选项卡中,选择“新建……”。

在弹出的窗口中,“程序或脚本”输入程序的路径,也可以选择“浏览”找到程序,“添加参数”输入启动程序的参数,如果使用了相对路径,“起始于”也需要指定。注意,“程序或脚本”中的路径如果包含空格,需要用引号包裹整个路径;而“起始于”中的路径不需要。配置错误会导致程序无法开机自启。

这个方法的优点是无需额外的软件,无需用户登录即可启动,缺点是步骤较为繁琐,可能存在不稳定因素(实际使用中发现,在升级 Win 11 后,出现了自启失效的问题,重新配置后恢复)

参考文章

  1. win10开机启动文件夹路径是什么