将exe可执行文件封装为服务
in 小技巧 with 0 comment

前两天在服务器和本地客户端上成功部署了内网穿透服务frp,然而运行客户端和客户端需要打开cmd或者powershell输入命令,一旦关闭了cmd窗口或者powershell,进程就会被杀死,服务不能运行了,所以我们需要将exe程序封装为Windows的系统服务,就像是Linux上的systemd一样,在用户尚未登录时就可以运行,完美实现无人值守。

环境配置

需要准备的

开始注册为服务

安装工具

instsrvsrvany这两个工具移动到C:\Windows\SysWoW64C:\Windows\System32这两个目录,方便我们后期进行调用工具

安装服务

打开cmd窗口,并以管理员身份运行,输入命令

instsrv frpc C:\WINDOWS\SysWOW64\srvany.exe

如果提示The service was successfully added!这样的字样,就表示你的服务已经成功添加了,然而需要注意的是这里注册的这个frpc的服务只是一个皮,我们还需要后续在注册表内进行配置,将这个服务指向我们需要执行的可执行文件

配置注册表

使用快捷键Win+R,打开运行窗口,输入regedit并回车,打开注册表编辑器

依次展开注册表,到这个目录下

计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\

在左边寻找自己创建的服务名,例如我是frpc的服务,只需要找到frpc这一项


然后右键,新建项

把这一项改名为Parameters

然后单击Parameters这个项,在右边的窗口里新建几个字符串值

  • AppDirectory这个项,是你要运行的exe文件的目录
  • Application这个项,是你要运行的exe文件的具体路径
  • AppParameters这个项,是你要运行exe文件的参数,可以为空

例如我的frpc服务的配置

写完这几项后,就完成了对这个服务的配置了

启动服务

使用快捷键Win+R打开运行窗口,输入services.msc打开服务窗口,在列表中找到你刚刚创建的服务名,启动即可

注意

如果最后一步启动服务提示失败,大概率是因为注册表中的那三项配置有问题,建议重新检查一下

Responses