Windows: 在系统启动时运行程序、定时计划任务、定时关机

摘要:
1.Windows任务计划用户可以通过以下步骤创建任务计划:创建具有管理员权限的新任务计划,在“任务”选项卡中输入要执行的命令,并删除“仅在登录后运行”选项。

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. 修改注册表

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

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

3. nssm实用程序

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

  • 访问http://nssm.cc/,下载最新版本的nssm实用程序
  • 解压nssm,将nssm-2.14win32 ssm.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:servicesload.bat,将该脚本安装为服务:

nssm install loadService D:servicesload.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:servicesxxx.exe"
# 移除服务
sc delete ServiceName

/!请注意:

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

优缺点:

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

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

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

免责声明:文章转载自《Windows: 在系统启动时运行程序、定时计划任务、定时关机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql的索引以及优化如何将jsp页面的table报表转换到excel报表导出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【精彩回顾】第二届微医前端技术沙龙(附PPT下载)

5 月 25 日,以「无界」为主题的第二届微医前端技术沙龙成功举办。本届沙龙的演讲题目涵盖了前端技术几个主要的应用场景,包括服务端、桌面端以及跨平台的开发。最近几年前端技术发展非常快,各种可以提高开发效率的新技术和框架层出不穷,让原来的前端工程师蜕变成了新一代的全端工程师,技术之间的界限被打破,相互碰撞、融合和进化。 活动伊始,本届沙龙活动主持人,来自...

Mysql 10053 SocketException 你的主机中的软件中止了一个已建立的连接。

问题:存数据库失败 错误信息: Mysql 1053 SocketException 你的主机中的软件中止了一个已建立的连接。 解决方法:修改数据库最大数据传输量【max_allowed_packet】 1:查询【max_allowed_packet】:show variables like '%max_allowed_packet%';   结果只有10...

nodejs中使用node-sass

在原生nodejs中使用Sass 1.创建根目录文件名称为demo,运行 cnpm install(淘宝源安装)安装node_modules 2.安装express:cnpm install express 3.创建js文件命名为 app.js 并编写如下代码 var express = require('express'); var app = expr...

彻底去除2345好压的广告方法

1.到好压软件的安装目录下。 2.将Protect文件夹选中属性=> 安全=>设置此目录的访问权限为拒绝,最后确定关闭,就可以了。 把Users的用户也设置成为拒绝 最后应用=>确定。以后2345好压以后再没有任何什么弹窗广告了,也不会更新任何广告,因为没有Protect文件夹的访问权限,不能更新,不能替换,也不能删除这个目录。...

软件测试人员如何进行软件质量把控

1、质量控制 软件质量控制对开发过程中的软件产品的质量特性进行连续的收集和反馈,通过质量管理和配置管理等机制,使软件开发过程向着既定的质量目标发展。质量控制是质量管理的的路标和动力,质量管理是质量控制的执行机制。 问题1:软件质量控制应该注意哪些方面? 建议: (1)在整个软件生命周期中都该进行质量控制; (2)不同阶段活动不同,应采用不同的技术; (3)...

转:苹果手机同步阿里云邮箱日历

场景: 安装阿里云邮箱IOS客户端后,默认情况下通过苹果手机日历功能无法查看到阿里云邮箱日历 方法: 使用阿里云的CalDAV协议进行配置,即可拉取阿里云邮箱日历 步骤: 步骤一: 先进入手机端,设置邮件帐号的地方,直接添加以下协议, 以 苹果手机为例: 步骤二: 1:填写 服务器: caldav.mxhichina.com 2: 填邮箱账号 (带域名)...