Windows的自启动程序

转载 2011年09月18日 19:35:36

       许多应用软件随Windows启动时自动运行,如杀毒软件的实时监控程序,这就是所谓的自启动程序。有些程序为了自身运行的需要而在Windows装载时自行启动,或者为了登录Windows后加快程序的启动速度而加载了自启动程序,如OFFICE启动程序,由于它的自启动,使得我们在启动OFFICE时可以节省时间,这样的自启动程序对用户使是有益的。然而,另外一些自启动程序往往不是我们所需要的,甚至是我们深恶痛绝的,如深藏不露地在后台偷偷监视用户一举一动的跟踪软件。当我们拿到一张带有大量软件的光盘时,常常不管三七二十一,见到SETUP,就用鼠标“哒哒”两下,然后又觉得不值得一用,于是把它给删除了,殊不知,安装容易删除难,尤其是那些不规范的卸载程序根本无法将自家的东西删除的一干二净,自启动部分常常是漏网之鱼,此后,每当开机时,总有“找不到XX程序”的提示信息蹦出来烦你。非用户所需的自启动程序的存在,一方面占用系统资源,另一方面给信息安全造成威胁(指窃密软件)。那么,如何找到不受欢迎的自启动程序并让其“下课”呢?

  先让我们看看怎样才能使程序自行启动。一般来说,某种程序欲随Windows装载时自启动,必须将其自身或其快捷方式加载到在如下几处之一:


  1、AUTOEXEC.BAT及CONFIG.SYS文件,实模式的驱动程序常常出现在这里(WindowsME并不理会AUTOEXEC.BAT里的自启动程序)。

  2、WIN.INI文件,即使是WindowsME也还存在WIN.INI这样的老古董,文件中的[Winodws]部分RUN=此行可加载程序。

  3、Startup文件夹,只要不担心被用户发现的自启动程序,往往都安装在此文件夹里。用户只须进入C:\Windows\startmenu\programs\startup(启动)目录下将其删除即可。

  4、计划任务文件夹,"计划任务"程序是将程序安排为定期运行的工具。"计划任务"程序随 Windows一起启动,并在后台运行,如果把某一程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时”,就可以实现自启动功能。

  5、registry注册表,那些跟踪、监视欲非法获取用户包括密码、帐号在内的私有信息的软件总是要把自启动程序隐藏在不易别被人察觉的深处,而registry是其最好的藏身之处,一般的菜鸟因惧怕系统瘫痪而不敢随意到registry里瞎逛。在registry的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersionRunServices及HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\Run主键下的程序就是自启动程序。


  此外,Winstart.bat文件也可实现自启动,不过现在已很少见。

  你的机器里究竟有多少自启动程序在无声无息地运行着,并非是在任务栏、系统通告区、屏幕界面上都能发现的,那些非法的自启动程序绝不会痛痛快快地在你面前亮相,即使你按“Ctrl+Alt+Del”键也未必找到蛛丝马迹。


  系统信息中的MSTASK.EXE命令是计划任务的文件名,它本身也是通过注册表自启动的,因此,通过计划任务程序实现自启动的程序在系统信息中看不到它的文件名,一旦把MSTASK.EXE命令从注册表中删除或禁用,那么通过计划任务启动的程序全部不能自动运行。

  其实,要让这些自启动程序“下课”也非常简单,使用“系统信息”的“系统配置实用程序”,哪怕菜鸟也能轻松搞定。方法为:单击“系统信息”的“工具” →系统配置实用程序→在 “启动”选项里找到你不需要的自启动程序,将前面的“√”清除即可。利用“系统配置实用程序”让自启动程序“下课”,操作时无需备份,一旦反悔,只要将清除的“√”恢复即算摆平,特别适合菜鸟操作。

  当然,这种方法实际上是禁止了自启动程序的运行,要将期彻底删除,还必须根据“程序”和“位置”标题中所提供的信息将自启动装载源和程序文件本身删除。

  使用Winodws自带的“系统信息”工具,可以找出从Startup文件夹、计划任务程序、注册表中自启动的程序。通过单击[开始]→[程序]→[附件]→[系统工具]→[系统信息],进入系统信息界面后,再单击“软件环境”前的“+”号,单击“启动程序”,在右边窗口出现的程序就是自启动程序。在右边窗口中,“程序”标题下所列的名称为自启动的程序名,“命令”标题下面是自启动程序所执行的文件及其所在的路径,位置标题下面说明自启动程序是从何处实现自启动的,如Scanregistry程序,运行的是c:\windows\scanregw.exe文件,它是在注册表里的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run主键下面实现自启动的。如果位置标题没有出现,可单击“查看”菜单下的“高级”子菜单。如果标题下面的内容显示不完整,可双击标题栏间的分隔线。

 

  系统信息中的MSTASK.EXE命令是计划任务的文件名,它本身也是通过注册表自启动的,因此,通过计划任务程序实现自启动的程序在系统信息中看不到它的文件名,一旦把MSTASK.EXE命令从注册表中删除或禁用,那么通过计划任务启动的程序全部不能自动运行。

  其实,要让这些自启动程序“下课”也非常简单,使用“系统信息”的“系统配置实用程序”,哪怕菜鸟也能轻松搞定。方法为:单击“系统信息”的“工具” →系统配置实用程序→在 “启动”选项里找到你不需要的自启动程序,将前面的“√”清除即可。利用“系统配置实用程序”让自启动程序“下课”,操作时无需备份,一旦反悔,只要将清除的“√”恢复即算摆平,特别适合菜鸟操作。

  当然,这种方法实际上是禁止了自启动程序的运行,要将期彻底删除,还必须根据“程序”和“位置”标题中所提供的信息将自启动装载源和程序文件本身删除。


        解读引导文件BOOT.INI  Windows NT类的操作系统,也就是WindowsNT/2000/XP中,有一个特殊文件,也就是“BOOT.INI”文件,这个文件会很轻松地按照我们的需求设置好多重启动系统。

       “BOOT.INI”文件会在已经安装了WindowsNT/2000/XP的操作系统的所在分区,一般默认为C:\下面存在。但是它默认具有隐藏和系统属性,所以你要设置你的文件夹选项,以便把“BOOT.INI”文件显示出来。我们可以用任何一种文本编辑器来打开他它。一般情况下,它的内容如下:


[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\Windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\Windows="Microsoft Windows XPProfessional" /fastdetect


  在Windows2000或者是XP系统中,我们可以很容易的设置“BOOT.INI”文件。那就是在“我的电脑”
上面点击右键,选择“属性”打开“系统属性”对话框,再点击“高级”选项卡,在“启动和故障修复”
里面点击“设置”按钮,就可以打开“启动和故障修复”对话框了,在这里面我们就可以对它进行详细设
置。


  如果你拥有WindowsXP操作系统,那么你可以用“系统配置实用程序”来更方便的编辑“BOOT.INI”
文件。具体做法是:打开“开始”菜单,点击“运行”命令,再在弹出的文本框中输入“msconfig”点击
“确定”后就会弹出“系统配置实用程序”,再点击“BOOT.INI”选项卡。
在这里,我们可以很方便地设置文件。
言归正传,现在,来说明一下这个文件内容的含义。


  1.系统加载部分([bootloader])


  这一部分很简单,只有两个设定。那就是“timeout=”和“default=”。“timeout=”就是设定开机时系统引导菜单显示的时间,超过设定值则自动加载下面“default=”指定的操作系统。默认值是30,单位为秒。我们可以在这里面设定等待时间的长短。如果将其设为“0”那么就是不显示系统引导菜单。
  “default=”则是设定默认引导的操作系统。而等号后面的操作系统必须是已经在“[operatingsystems]”中存在的。如果想默认为加载另外的操作系统,我们可以参看“[operatingsystems]”中的操作系统列表,然后把想要加载的操作系统按照格式写到“default=”后面就可以了。


  2.操作系统部分([operatingsystems])


  在这里面,列出了机器上所安装的全部操作系统。比如机器上只有一个操作系统,那么就只有一条信息,那就是“multi(0)disk(0)rdisk(0)partition(1)\Windows="MicrosoftWindows XP Professional"/fastdetect”在这里需要注意的是,在英文引号内的文字就是引导操作系统菜单时显示出来的让我们选择操作系统的提示文字,在这里面我们可以随意更改。而“multi(0)disk(0)rdisk(0)partition(1)\Windows”这一句就需要些解释了。因为它涉及ARC(高级RISC计算机)命名,它是x86或RISC计算机中用于标识设备的动态方法。
ARC命名的第一部分用于标识硬件适配卡/磁盘控制器,它有两个选项:SCSI和Multi。Multi表示一个非SCSI硬盘或一个由SCSIBIOS访问的SCSI硬盘,而SCSI则表示一个SCSIBIOS禁止的SCSI硬盘。(x)是硬件适配卡序号。Disk(x)表示SCSI总线号。如果硬件适配卡为Multi,其正确表示方法就为disk(0),rdisk(x)则表示硬盘的序号,如果硬件适配卡为SCSI则忽略此值;partition(x)表示硬盘的分区序号。了解这些,我们就可以解释前面那条信息的含义了,即“multi(0)disk(0)rdisk(0)partition(1) \Windows”为,在0号非SCSI设备上的第0号磁盘上的第一个分区里面的“Windows”目录下可以找到能够启动的操作系统。等号后的内容前面已经说过,那个就是引导菜单显示出来的供我们选择的提示文字。而后面的“/fastdetect”又是作什么用的呢?这是一个开关符,用来控制启动该操作系统时的具体选项,下面再来详细的介绍各种开关符的含义:


       /3GB:这是Win2000SP3新引入的。这使得用户区和系统区分为3G比1G的比例。只有用户使用NT企业版,应用程序也支持3GB选项时,此选项才生效。
  /BASEVIDEO:使用标准VGA方式启动。这种方式主要用于显示驱动程序失效时。
  /BAUDRATE:指出用于调度的波特率,如果用户不设置,则使用默认的9600,而对于线缆Modem则使用
19200。
    /BOOTLOG:使Win2000将日志写入 %SystemRoot%\NTBTLOG.TXT。
     /BURNMEMORY=:使NT在已知的内存上少使用指定的数量,如果/burnmemory=64,则有64M内存NT不使用。
  /CRASHDEBUG:调度器在NT启动时启动,只有在内核错误时才有用,如果系统经常会无故出错,这个选项就很有用了。
  /DEBUG:在启动NT时调入调度器,它可以在任何时间激活,在错误可以再次出现时使用它比较合适。
  /DEBUGPORT=comx :指定用于调度的端口,其它X就指端口号。
  /FASTDETECT:对于Win2000启动时,它使系统不检查串行口和并行口。
  /HAL=<hal>:允许用户不使用默认的HAL。
  /INTAFFINITY:设置多处理器HAL(HALMPS.DLL),使编号最大的处理器接收中断请求。如果不设置此选项,Win2000会使所有处理器接收中断请求。
  /KERNEL=<kernel>:与上面的功能相同,不过是针对SMP中的内核而言的。
  /MAXMEM:n:指定NT可以使用的最大内存数,如果一个内存片损坏,这个开关就十分有用了。
  /NODEBUG:不使用调试信息。
/NOGUIBOOT:指定此选项会使Win2000不加载VGA驱动程序,也就不会显示启动过程和失败时的兰屏信息。
  /NOSERIALMICE=[COMx| COMx,y,z…]:在特定的COM中上禁止对串行鼠标的检测。如果用户有一个非鼠标设备接在COM口上,这个选项会十分有用。如果此开关未加参数,系统会禁止所有COM口。
  /NUMPROC=n:只允许前N个系统处理器工作。
  /ONECPU:在多处理器中只使用一个处理器。
  /PCILOCK:不让NT为PCI设置分配IO/IRQ资源,而启用BIOS设置。
  /SAFEBOOT:安全启动,这个大家一定十分熟悉,Win2000只启动HKLM\System\CurrentControlSetControl\SafeBoot中的驱动程序和服务,其后跟三个参数MINIMAL,NETWORK或DSREPAIR之一。MINIMAL和NETWORK在允许网络下启动系统。而DSREPAIR要求系统从备份设备中调入活动目录的设置。还有一个选项是"(ALTERNATESHELL)",它让系统调入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默认的Explorer。
  /SOS:在调入驱动程序名时显示它的名字,在因驱动问题而无法启动时使用比较好。
  /WIN95:在装有三个系统DOS、Win9x和WindowsNT的系统上,让NTLDR直接调用Win9x。启动文件BOOTSECT.W40。
  /WIN95DOS:在装有三个系统DOS、Win9x和WindowsNT的系统上,让NTLDR直接调用DOS启动文件BOOTSECT.DOS
  /YEAR=:使用指定的年份,如果设置为/YEAR=2005,那现在的时间就是2005年,此选项仅对NT4+SP4和Win2000生效。
      了解了以上这些,我们就可以更加轻松控制好我们系统的启动了。

相关文章推荐

windows服务与自启动程序的区别

在客户端服务器项目实践中,作为服务端必须保持程序的24小时不间断运行,需要做一个监控,当监控到该程序已关闭时则重新启动下。      有两种方法可以实现这个功能: 第一是做windows服务,作为...

windows程序自启动的代码

  • 2011年05月09日 14:52
  • 724KB
  • 下载

nodejs程序配置成windows-server服务,实现开机自启动

nodejs程序配置成windows-server服务,实现开机自启动

WINDOWS自启动程序的10大隐身之所

Windows启动时通常会有一大堆程序自动启动。不要以为管好了“开始→程序→启动”菜单就万事大吉,实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个...

Windows程序自启动原理

在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,下面主要介绍这2个文件夹和8 个注册表项: 1.用户专用启动文件夹-——最常见的自启动程序文件夹,它位...
  • fukajg
  • fukajg
  • 2012年08月10日 09:45
  • 235

Windows程序自启动方法-注册表

三、Load注册键 介绍该注册键的资料不多,实际上它也能够自动启动程序。位置: HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVers...

windows开机自启动程序的位置

1)“启动”文件夹──最常见的自启动程序文件夹。 它位于系统分区的“documents and Settings-->User-->〔开始〕菜单-->程序”目录下。这时的User指的是登录的用户名。...

windows服务器应用程序监控自启动批处理

@echo off REM =============================说明========================================= REM =cxmc:程序名...
  • rareli
  • rareli
  • 2014年08月24日 23:07
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows的自启动程序
举报原因:
原因补充:

(最多只允许输入30个字)