lesca今天介绍一些让系统在启动时,而非登录时,加载用户自定义的应用程序或脚本的方法,推荐度从前到后依次递减。

1. Windows任务计划(task scheduler)

用户可以按以下步骤进行操作,建立一个任务计划:

  • 以管理员权限新建一个任务计划
  • 在“任务”选项卡中输入待执行的命令,去掉“仅在登录后运行”的选项。该命令将以建立这个计划任务的用户的权限运行
  • 在任务属性的“计划”选项卡-“计划任务”中选择“在登录时
  • 清除“设置”选项卡中的所有选项
  • 按“确定”保存,如果提示输入密码则输入用户密码

如果要建立定时关机任务,请确保用户能够运行at命令,即需要管理员权限。在“任务”选项卡中输入以下命令:

at 16:30 shutdown -c "System will be halted, save your works!" -s -f -t 500

at命令和shutdown将以SYSTEM权限执行。

  • 优点:该方法无需其他工具软件,依靠Windows自身工具即可实现强大的定时功能。
  • 缺点:该命令依赖于可用的管理员账户及Task Scheduler服务;如果该管理员账户被禁用或者Task Scheduler服务被禁用或启动失败,则任务将无法运行。

2. 修改注册表

还可以通过修改注册表HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices(Once)实现在系统启动时(而非用户登录时)启动程序。有关其他和自动运行相关的注册表项请参考下表:

HKCU\Software\Microsoft\Windows\CurrentVersion\Run
当前用户登录系统时运行程序
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
当前用户下次登录时运行程序,并自动移除该注册表项
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
(所有)用户登录系统时运行程序
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
(所有)用户登录系统时运行程序
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
系统启动时运行标准的NT服务或后台进程,如IIS服务
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
系统下次启动时运行标准的NT服务或后台进程,并自动移除该注册表项
  • 优点:程序直接以SYSTEM权限运行;可以同时支持应用程序和系统服务;无需额外工具
  • 缺点:依赖于系统版本,不同的Windows操作系统对此有不同限制或实现方式不同

3. nssm实用程序

nssm实用程序可以让待运行的程序以Windows服务方式加载,这样,每次系统启动时就会通过启动服务来加载程序。nssm是开源软件,普通用户可以不必担心授权问题,公司或组织也可以以非商业用途的目的使用。接下来,我们首先获得nssm实用程序:

  • 访问http://nssm.cc/,下载最新版本的nssm实用程序
  • 解压nssm,将nssm-2.14\win32\nssm.exe复制到%windir%\system32目录下
  • 打开“命令提示符”窗口,输入nssm查看帮助:
NSSM: The non-sucking service manager
Version 2.14, 2012-05-24
Usage: nssm <option> [args] To show service installation GUI: nssm install [<servicename>] To install a service without confirmation: nssm install <servicename> <app> [<args>] To show service removal GUI: nssm remove [<servicename>] To remove a service without confirmation: nssm remove <servicename> confirm

然后新建一个脚本,如:

@echo off
at /delete /yes
at 16:30 shutdown -s -f -t 500
pause

保存为D:\services\load.bat,将该脚本安装为服务:

nssm install loadService D:\services\load.bat
  • 优点:可以将非标准的Windows服务、脚本、应用程序包装成标准的Windows服务;开源软件;对个版本Windows均支持
  • 缺点:需要安装、配置,需一定时间上手

4. FireDaemon解决方案

  • 优点:FireDaemon是一个企业级的专业解决方案,可以将EXE, DLL, Perl, Python, Java, Batch, Powershell, Ruby或其他应用程序转换为Windows服务;可通过浏览器访问FireDaemon;可对CPU及内存进行实时监视;…
  • 缺点:该软件需要付费购买授权(目前每个授权售价$49),适合企业

5. sc命令

sc命令是Windows原生的服务控制命令,通过它可以方便地添加、删除标准的Windows服务程序:

# 添加服务
sc create ServiceName binpath= "D:\services\xxx.exe"
# 移除服务
sc delete ServiceName

/!\请注意:

  • binpath参数后面必须有一个空格
  • 添加完服务后,需要自行配置一下,如将启动类型设置为“自动”
  • 用户可以通过services.msc查看、管理已注册的服务

优缺点:

  • 优点:Windows原生命令;功能较多
  • 缺点:要求被加载的应用程序是标准的Windows服务;普通cmd脚本会报错;语法复杂不易上手;新增服务后仍需手动配置;

本文出自 Lesca技术宅,转载时请注明出处及相应链接。

本文永久链接: http://lesca.me/archives/start-program-on-windows-startup.html

Windows: 在系统启动时运行程序、定时计划任务、定时关机的更多相关文章

  1. Windows/Linux获取当前运行程序的绝对路径

    windows 获取当前运行程序的绝对路径(.exe) GetModuleFileNameA()函数获取绝对路径,不过文件路径中的反斜杠需要进行替换. ]; GetModuleFileNameA(NU ...

  2. spring boot 系统启动时运行代码(1)-@PostConstruct

    Application.java import org.springframework.boot.SpringApplication; import org.springframework.boot. ...

  3. Windows系统中设置Python程序定时运行方法

    Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...

  4. windows2008服务器设置系统启动时程序自动运行

    设置windows服务器启动时自动运行程序,而且不需要用户登录,就可以启动 首先准备好,程序的启动脚本文件或运行文件,如:start.bat 通过系统计划任务实现 1.开始----管理工具-----任 ...

  5. .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

    日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运 ...

  6. 关于SQL Server 安装程序在运行 Windows Installer 文件时遇到错误

    前几日安装sql server2008r2 的时候碰到这个问题: 出现以下错误: SQL Server 安装程序在运行 Windows Installer 文件时遇到错误. Windows Insta ...

  7. 使用ASP.NET实现定时计划任务,不依靠windows服务

    我们怎样才能在服务器上使用asp.net定时执行任务而不需要安装windows service?我们经常需要运行一些维护性的任务或者像发送提醒邮件给用户这样的定时任务.这些仅仅通过使用Windows ...

  8. 变身windows达人,用运行命令直接启动所有应用程序

    先看一下效果 在”运行“输入QQ,敲回车即打开登录窗口,相当于双击QQ登录快捷方式,对于码农.电脑一族这是不是一件高逼格,很酷的事?你甚至可以将任何你想设置命令启动的程序用该方式启动,比如敲chrom ...

  9. java程序在windows系统作为服务程序运行

    Java程序很多情况下是作为服务程序运行的,在Un*x 平台下可以利用在命令后加“&”把程序作为后台服务运行,但在Windows下看作那个Console窗口在桌面上,你是否一直担心别的同时把你 ...

随机推荐

  1. CPP 替代 PIL 图片处理(缩略图生成)

    python中使用PIL(Pyhton Image Library)进行图片处理,好处就是编写简单方便,但是不能很好利用机器多核的特点,于是在项目中决定使用cpp来实现图片处理. 项目中的图片处理主要 ...

  2. 3.7 TCP拥塞控制

    3.7 TCP拥塞控制 在3.5.5流量控制中有,接收方通过维护一个rwnd来控制流量,本节中考虑三个问题: 第一,  一个TCP发送方如何限制它向其他连接发送流量的速率. 第二,  一个TCP发送方 ...

  3. 【刷题】BZOJ 2260 商店购物

    Description Grant是一个个体户老板,他经营的小店因为其丰富的优惠方案深受附近居民的青睐,生意红火.小店的优惠方案十分简单有趣.Grant规定:在一次消费过程中,如果您在本店购买了精制油 ...

  4. BZOJ4104:[Thu Summer Camp 2015]解密运算——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4104 对于一个长度为N的字符串,我们在字符串的末尾添加一个特殊的字符".".之 ...

  5. 输入三个数a,b,n,输出a和b不大于n的公倍数的个数

    题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数. 这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数. ...

  6. BZOJ1069 [SCOI2007]最大土地面积 【凸包 + 旋转卡壳】

    题目链接 BZOJ1069 题解 首先四个点一定在凸包上 我们枚举对角线,剩下两个点分别是两侧最远的点 可以三分,复杂度\(O(n^2logn)\) 可以借鉴旋转卡壳的思想,那两个点随着对角线的一定单 ...

  7. linux设置开机自动启动

    有很多中方法,这里只取最简单的一种: 把启动命令放到/etc/rc.d/rc.local文件里这样就可以每次启动的时候自动启动服务了, 注意给rc.local执行权限

  8. 【bzoj3796】Mushroom追妹纸

    Portal -->bzoj3796 Description 给出字符串s1.s2.s3,找出一个字符串w,满足: 1.w是s1的子串: 2.w是s2的子串: 3.s3不是w的子串. ​ 求w的 ...

  9. 据说要写一个CTSC&APIO的收获

    就不写流水帐了,总的写一下吧.先从最浅显的地方开始——知识.大概被普及了一发带花树,算上自己的考试,还被普及了一发洲阁筛.当然更多的还是对于一些知识的强化,比如:乱搞(这东西真是太重点了啊).DP.数 ...

  10. windows如何要查看IIS连接数

    1.运行,输入,perfmon.msc 2.在系统监视器,区域点击,添加计数器. 3.在“添加计数器”窗口,“性能对象”选择Web Service,“从列表选择计数器”选中Current Connec ...