Board logo

标题: [系统相关] [已解决]批处理如何将一个软件或者文件纳入开机启动? [打印本页]

作者: v449715955    时间: 2009-12-20 15:40     标题: [已解决]批处理如何将一个软件或者文件纳入开机启动?

请问怎么将一个文件(如批处理文件)或者软件(如杀毒软件)让其在开机时自动运行??
我再描述一下,就是让电脑在进入操作系统以前就自动运行那种??该怎么做呢?

[ 本帖最后由 v449715955 于 2009-12-27 14:42 编辑 ]
作者: keen    时间: 2009-12-20 21:25     标题: 回复 1楼 的帖子

一般的随系统启动的就几种方式:
1、把程序放到C:\Documents and Settings\Administrator\「开始」菜单\程序\启动文件夹下;
2、把程序的路径写到注册表run值的下面;
3、放到组策略中的启动中。

不知道你的“让电脑进入操作系统以前就自动运行”指的是那种,这个可能要在系统加载时加入东西,可能是修改系统的引导程序哪儿。不太清楚。
作者: Batcher    时间: 2009-12-20 22:41

把它制作成服务
作者: v449715955    时间: 2009-12-21 13:00     标题: 回复 1楼 的帖子

第一个我好像懂了,哈哈。谢了哈。这个是在进入系统之后自动启动了
后面两个怎么做还望教一下步骤?
作者: keen    时间: 2009-12-21 16:03     标题: 回复 4楼 的帖子

下面代码只实现了前两个:
  1. @echo off
  2. set "filename=C:\a.exe"
  3. copy "%filename%" "%userprofile%\「开始」菜单\程序\启动"
  4. call reg add "hkcu\software\microsoft\windows\currentversion\run" /v a.exe /t reg_sz /d "%%filename%%" /f
复制代码
关于组策略添加启动,我用手工加入了程序,然后监视注册表的变化,却增加17个键,增加值达到38个,还有修改值12个,看来是不能那么轻易的用批处理加入了。

至于把程序加到服务中,可以借助第三方程序runassrv,或者利用lxzzr版主的WMIC版的批处理把程序变成服务。随系统启动。
runassrv和lxzzr版主的wmic版的批处理,参看下面帖子:
http://bbs.bathome.net/viewthrea ... ;highlight=runassrv
作者: neorobin    时间: 2009-12-21 16:11     标题: 回复 5楼 的帖子

  1. set "filename=C:\a.exe"
  2. copy "%filename%" "%userprofile%\「开始」菜单\程序\启动"
复制代码
这个对独立运行(或对工作目录无要求)的可执行文件才有效, 通用的是将该文件的快捷方式(最好设置好了工作目录)放入 "%userprofile%\「开始」菜单\程序\启动 目录
作者: lxzzr    时间: 2009-12-21 16:29

组策略启动、关机脚本的添加(没试过,来源于网络)

2000/XP系统下我们可以通过组策略来进行启动和关机脚本的配置。“开始->运行->输入gpedit.msc”,启动组策略。在本地计算机策略的计算机配置下的windows设置中我们可以看到脚本(启动/关闭)的选项。(双击关机-添加-浏览你自己的脚本就行了)在这里我们就可以随意的添加启动和关机脚本了。这样当系统启动后/关闭前都会首先自动执行我们设置好的启动脚本。
当我们应用了启动/关机脚本的时候,会在系统目录下的system32\grouppolicy\machine\scripts目录下生成一个scripts.ini的隐藏文件,他记录的实际上是脚本调用信息,该文件格式如下:

[startup]

0cmdline=加载的启动脚本名称(bat或VBS等)
0parameters=后头跟参数,一般为空
[shutdown]
0cmdline=加载的关机脚本名称
0parameters=跟参数,一般为空
作者: keen    时间: 2009-12-21 19:48     标题: 回复 6楼 的帖子

的确是这样的,没有考虑全面。感谢neorobin兄的提醒。
作者: keen    时间: 2009-12-21 20:35     标题: 回复 7楼 的帖子

按照你的提供的资料可以实现组策略的启动了,就是修改scripts.ini文件就行了,代码:
  1. @echo off
  2. set "filename=%windir%\System32\GroupPolicy\Machine\Scripts\scripts.ini"
  3. attrib -h "%filename%"
  4. (
  5. echo [Startup]
  6. echo 0CmdLine=C:\a.exe
  7. echo 0Parameters=
  8. )>"%filename%"
  9. attrib +h "%filename%"
  10. pause
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2