暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows中实现不依赖账户登录的开机启动程序

一个程序员的修炼之路 2021-04-18
2990

在Windows中很多的任务,我们希望能够在Windows 启动之后自动运行。本文要讲的开机启动的程序,是在用户还没有登录的情况下实现启动的。换句话说,本文描述的开机启动的程序运行在Session 0 。比如你的软件/程序在Windows服务器上运行,偶尔会升级进行重启,重启后不需要依赖于客户登录windows系统,在系统启动后自动启动你的软件/程序。本文主要介绍了两种常用的方法, 大家可以选择合适的方法去实现。

Windows Service

当Windows 启动的时候,还没有登录账号的时候,此时Windows中设置为auto状态的Service 将会在Session 0中启动。可以按照如下步骤去实现Windows Service:

  • 如果还没有实现过Windows Service 程序的同学,可以参考笔者之前写的《手把手教你实现Windows服务》这篇文章去实现。

  • 通过命令行创建Service的时候, 要设置参数start= auto
    表明Service为开机启动。

    sc create “SERVICE_NAME” binpath= "SERVICE_PROGRAM" displayname= "SERVICE_DESCRIPTION" start= aut

    Windows Schedule Task

    Windows定时任务管理器,提供了强大的功能:可以定时的执行任务,除了按照时间去触发定时任务,也提供了开机启动触发程序运行的功能,你可以通过图形界面的方式配置,也可以通过命令方式。

    通过windows窗口配置的方法:

    • 依次打开Control Panel
      ->Administrative Tools
      ->Task Scheduler
      ,然后新建任务:这里要注意运行的账号修改为SYSTEM。

    • 设置触发的条件为"At startup", 系统启动后便触发这个任务。

    • 配置启动的任务"Start a program", 如下图,配置你要启动的程序路径。


    但是作为程序部署,需要实现自动化的,一般都通过命令去直接创建的,使用如下命令行,达到了和上述图形配置一样的效果:

      schtasks create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"


      文章转载自一个程序员的修炼之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论