在windows服务器上开机启动程序的操作指南


    目录
  • 背景
  • 前言
  • 创建「任务计划程序」
  • 没运行怎么办
  • 结语

    背景
    为了能够 24 小时运行量化程序,笔者弄了一个 Windows Server 2012 的服务器,这样就不怕断网断电什么的了。服务器其实挺贵的,于是笔者就弄了个按需付费的服务器,关机状态下每小时 5 分钱,一年下来也就 400 多块钱,比包年划算得多。
    但是,为了省钱,你就必须要每天定时开关机,很麻烦的,有没有什么办法自动化呢?
    前言
    本来笔者最开始使用的是腾讯云,但是没有在明面上找到「自动开关机」的配置(我猜一定是可以的),然后在阿里云找到了 说明文档。最关键的是阿里云有自己的 APP,可以在 APP 上远程登录,这点很关键,后文会说到。
    首先给个重要结论:
    
    一些需要前台运行的(比如打开记事本、运行个脚本弹个弹窗)这种任务,只能选择「只在用户登录试运行」
    其它能在后台运行的(比如往一个文件里输入内容、启动一个后台任务)是可以选择「不管用户是否登录都要运行」的。
    
    所以,想要打开某个可交互的程序,就必须要登录用户,也就是必须要远程登录下才能触发。这种情况下,想要每天自动开关机,然后啥也不管,还是做不到的。
    于是乎,笔者就只能退而求其次,希望能够「尽可能方便」地登录服务器。最后,发现「阿里云 APP」在保存了登录凭证之后,可以很方便的登录远程服务器,就是屏幕有点小。毕竟,我登录了也不需要做什么,只是想触发一下任务而已,所以屏幕大小也就无所谓了。
    下面就具体说说怎么搞计划任务,以及笔者踩过的坑。
    创建「任务计划程序」
    最简单的方法就是点开菜单,直接搜索「任务计划程序」,打开后如下图:
    
    第一次玩的话,推荐直接使用「创建基本任务…」就可以了,按照步骤一步一步的选,这里就不赘述了。成功创建任务后,可以在左侧的「任务计划程序库」里,看到刚创建的程序。这个时候双击,或者右键 -> 属性,就可以再次编辑任务的属性,可选的项目会更丰富。
    
    简单玩玩,熟悉了之后,下次再创建,就可以使用「创建任务…」,直接用这种模式创建任务了。
    
    还记得上文笔者说的,折腾了半天,任务就是不启动吧。说真的,笔者在这卡了有 2 天,上网查各种资料,没一个说到点子上的。最后结合这几天的经验,加上问了大模型,才把这事搞清楚。结论上面也说了,想运行有交互的程序,必须选择「只在用户登录时运行」
    没运行怎么办
    找到任务后,【右键 -> 运行】是可以直接运行任务的,不需要非得等到触发器的条件。这个时候就可以测试你的任务是否可以正常运行了。
    如果没有正常运行,可以先看一下下图的简要日志:
    
    注意,这个日志不会自动更新,你需要关掉,重新打开「任务计划程序」来看最新的记录。如果还是没法定位,那就去系统日志看一下。菜单里搜索「事件查看器」,如下图:
    
    如果还是没发现问题,修改一下设置里的「任务已运行规则」,看看是不是因为禁止新任务创建。
    
    另外就是权限问题,一般在「创建任务」第一步,勾上「使用最高权限运行」就可以了。如果还不行,那就挨个属性设置看看吧,毕竟笔者也在这坑了 2 天。
    最后说个小技巧,如果想测试自动运行的效果。那么可以把触发器弄成每天定时的,比现在时间快 1 分钟。然后等一会,重新开启「任务计划程序」,查看简要日志。
    结语
    服务器自动开关机这个,直接看阿里云的文档就可以了,写的很详细,这里就不赘述了。
    
    至于如何选操作系统,以下回复可供参考: