计算机软件自动安装的方法

文档序号:6447321阅读:297来源:国知局
专利名称:计算机软件自动安装的方法
技术领域
本发明涉及一种计算机软件的方法,特别是指一种在计算机启动时,自动按照预先定义的规则安装某个或者某些指定的软件到当前使用的主操作系统中,并自动完成软件的设置,使计算机系统能够被用户正常使用的软件自动安装的方法,属于计算机技术领域。
背景技术
现有的软件安装技术一般采用光盘/网络(包含FTP、HTTP等方式)/移动存储,以及其他可能的方法进行软件的安装。这些安装方法都存在着一种缺陷即当用户重新安装了主操作系统,或当前已经安装的软件遭到破坏之后,均需要用户自己采用手工的方式重新启动软件安装程序进行软件的安装。
而软件的安装过程对于普通用户来说有些简单,有些则十分复杂。错误的操作可能会导致软件无法正确安装,或者因为没有给定正确的配置而导致软件无法正常工作。对于软件厂商和硬件厂商来说,为用户软件安装与维修的支持成本相当高,而安装的操作失误,也会影响用户对所安装软件的满意度。
另外,计算机原始设备制造商通过光盘的方式为用户提供各种软件,以增强其计算机的应用价值。但用户因为缺乏相关知识,没有安装相关的应用软件,或者没有正确地安装,都会使得计算机原始设备制造商预期的目的得不到实现。甚至,因为用户没有安装某个或者某些软件而导致计算机不能正常工作。
通过上述的描述,下述情况下,用户需要通过手工或者半手工的方式来安装软件,以便利用软件完成特定的功能和应用。
1)用户不知道需要安装指定的软件。这种情况经常出现在计算机原始设备制造商为用户提供了软件光盘,而用户不知道如何通过光盘来安装指定的应用程序。
2)当用户重新安装主操作系统之后,原先安装的软件需要重新通过光盘或者其他介质进行重新安装。
3)当用户执行系统还原(或者系统恢复)等功能软件之后,原有的软件需要重新通过光盘或者其他介质进行重新安装。
4)用户想要安装一个或者一组重要的应用软件,但缺乏相应的技术知识,从而不能正确安装。
5)在某些高安全的应用领域,需要在主操作系统之中安装特定的安全类软件以保护计算机中的安全信息,而没有安装或者正确配置这类安全软件将导致安全信息的泄密。
某些情况下,计算机必须已经安装了某类软件才能正常启动和引导,在这种情况下,通过普通的安装方法是无法完成的。因为在正常情况下,主操作系统启动过程中,无法通过手工的方式进行干预。例如主操作系统要安装某个重要的硬件或者软件驱动程序之后才可以正常启动。再例如,对于“冲击波”等病毒,只有在计算机引导时自动加载安装才可以有效地防止病毒攻击和传播,因为,一旦进入主操作系统,通过网络来更新病毒库(用来清除“冲击波”病毒)或者通过主操作系统供应商网站来更新补丁时,病毒即可通过网络传播,或者直接攻击当前主操作系统,造成无法正常进行更新。
在企业IT管理策略中,为了保证企业的信息系统的安装,一般要求每个终端用户均需要正确安装病毒防治软件和防火墙,以及其他的安全类软件。这些软件有时可能会被终端用户非法卸载。为了保证企业信息系统的安装,IT管理员首先需要发现该终端用户已经非法卸载了指定必须安装的软件,然后再通过手工的方式或者特定管理软件进行安装,这种管理是一种补救的措施,中间的延迟时间即可导致计算机及网络系统处于威胁之中。

发明内容
本发明的主要目的是提供一种计算机软件自动安装的方法,在计算机启动时,通过修改主操作系统正常的引导过程,使之按照预先定义的规则安装某个或者某些指定的软件或者程序到当前使用的主操作系统环境中,并且能够自动完成软件或者程序的设置,使之能够被用户正常使用。
本发明的目的是这样实现的一种计算机软件自动安装的方法,包括步骤1在计算机启动操作系统之前,检测硬盘上的主操作系统环境,如果没有安装主操作系统,则引导用户安装一个主操作系统后,重新启动机算机,执行步骤1;步骤2如果计算机中已经安装有主操作系统,则按照预设的规则检测指定的软件或者程序是否被包含到所述主操作系统中,并且检测指定的软件或者程序是否已经被正确地安装和配置;步骤3如果指定的软件或者程序已经被正确地安装并配置到主操作系统环境中,则将对计算机系统的控制权交给主操作系统,执行步骤6;步骤4如果检测到指定软件或者程序未被正确地安装并配置到主操作系统环境中,则加载自动安装代理程序;自动安装代理程序在主操作系统引导过程中取得对计算机系统的控制权,并按照预设的规则安装和配置指定软件或者程序;步骤5自动安装代理程序将对计算机系统的控制权交还给主操作系统,并终止自己的运行;步骤6主操作系统完成引导过程。
本发明针对现有技术中存在的上述问题而提出的新的技术和新的方法,能够通过更完美的方式实现软件的自动化安装和管理,降低管理成本,提高管理效率。具体而言,本发明具有如下的优点1)在用户重新安装主操作系统或者将计算机操作系统恢复到较早的状态之后,在计算机系统引导时,计算机能够根据预先定义的规则自动加载相应的软件(包括设备驱动程序,病毒库更新程序,以及其他各种可以运行于主操作系统之中或者之上的应用软件),并且可以自动按照预先定义的策略将软件自动的安装到当前使用的主操作系统之上,这使得计算机用户省去了繁琐的软件安装工作,使得计算机的使用更加方便。
2)本发明能监视系统中当前已经安装的软件,并且根据系统预先配置的规则,在用户卸载特定软件之后自动启动安装程序,并将其自动安装到当前主操作系统当中,保证了计算机系统的安全性和企业应用管理策略的依从关系。
3)本发明可以在主操作系统启动之前,检测到指定的软件或者程序是否安装,并且可以知道所述的软件是否被正确配置,同时,本发明在主操作系统加载过程中即可自动完成指定软件或者程序的安装与配置,确保指定应用软件的可用性和安全性。在计算机原始设备制造商为用户提供的各种应用软件和驱动程序时,使得用户获得这些应用软件的价值,极大的降低了用户支持的成本,提高了客户的对计算机原始设备制造商价值的认同。
4)本发明当用户重新安装了主操作系统,或者将主操作系统恢复到以前的状态(如出厂状态)时,指定的应用软件或者系统的安全补丁(如Windows的安全补丁)也可在主操作系统连接到网络之前,自动的将指定软件或者安全补丁安装上,提高了主操作系统的安全性与可靠性,降低了主操作系统的安全风险。


图1为本发明实施例流程图;图2为本发明设置用户禁止设置标志的流程图;图3为本发明另一实施例流程图;图4为本发明另一实施例中设置用户禁止设置标志的流程图。
具体实施例方式
以下结合附图和具体的实施例对本发明作进一步的详细说明参见图1,其为本发明的一个具体实施方案计算机上电开始后,进行系统检测与系统初始化。对于目前流行的计算机体系架构来说,该过程由计算机中的基本输入输出系统(Basic InputOutput System,简称BIOS)完成。
本发明中的上述操作可以由BIOS完成,也可以由可扩展固件接口(Extensible Firmware Interface,简称EFI)完成。在BIOS或者EFI引导之后,自动加载本发明中的检测程序,这个过程可以通过利用BIOS或者EFI的特点,预先将检测程序代码写入BIOS的扩展空间(uPnP),对于EFI也可以按照类似方法写入。上述的检测程序同样也可以直接设置在BIOS或者EFI的程序空间中,也可以放置在硬盘上的某个安全的位置(例如,保护分区Host Protected Area feature,简称HPA),还可以通过BIOS或者EFI连接到网络(LAN/WAN),从网络中存储包含所述检测程序的位置将其下载到本地硬盘或者内存中执行。总而言之,通过对BIOS或者EFI的局部修改,使之能够在BIOS/EFI执行完毕之后自动加载所述的检测程序。
所述的检测程序用于在BIOS或EFI完成计算机初始化以后,取得对计算机系统的控制权。
另外一种情况是可以不修改BIOS或者EFI,而通过对计算机其他启动设备(例如可以启动的PCI设备,支持PXE等方式的网卡)的修改也可获得对系统的控制权,并且也不排除通过修改主引导记录(MBR)的方式来改变操作系统正常的引导过程,从而在主操作系统被加载之前,加载所述的检测程序,使之获得对计算机的控制权。
在所述的检测程序取得计算机系统的控制权之后,该检测程序检测硬盘上的主操作系统环境。首先,判断当前硬盘上有没有安装了主操作系统,对于每种不同的操作系统检测的方式可以是不同,(例如对于Windows的主操作系统,可以检查主引导分区中的BOOT.INI文件,并从中找到主操作系统的安装位置。如果没有找到BOOT.INI文件,还可以搜索硬盘上的Windows或者WinNT的目录,以此来判断主操作系统是否被安装,同时也能确定主操作系统的正确安装位置)。
如果所述的硬盘中没有安装主操作系统,则可以执行其他的任务,例如直接关闭计算机,或者启动一个副操作系统,引导用户安装一个主操作系统。
如果所述的检测程序检测到已经安装了主操作系统,则该检测程序开始按照预设的规则检测指定的软件或者程序是否被正确安装到主操作系统中。这个检测可以通过对存储在硬盘上某个位置(如硬盘的主引导分区中的某个特定位置)的特定标志位进行读取和判断来实现。如果,检测到所述的标志位已存在,换句话说如果指定的软件或者程序已经被正确安装到主操作系统环境中,则该检测程序加载主操作系统引导程序,并且将计算机系统的控制权交给主操作系统,以完成主操作系统的正常引导。
如果所述的检测程序没有检测到指定软件或者程序被正确安装到主操作系统中,则按照预先定义的策略,找到当前主操作系统每次都会被加载的某个程序(对于不同的操作系统这个程序是不同的,而且符合要求的程序可能有多个;具体实现时,可以根据情况选择一个最适合的程序。例如,对于Windows操作系统而言,可以选择名称为“autochk.exe”的程序——这个程序负责在Windows引导过程中检测并修复磁盘上的错误),并用一个自动安装代理程序来替换上述当前主操作系统每次都会被加载的程序(以下简称被替换程序)。在替换之前,所述的检测程序将上述被替换程序备份到硬盘上的保护分区,或者与其原来存储目录所不同的目录中。
此后,所述检测程序引导主操作系统的加载程序,同时将计算机系统控制权交给主操作系统。主操作系统启动到自动加载上述被替换程序时,由于此时该被替换程序已经为自动安装代理程序,因此,该自动安装代理程序取得对计算机系统的控制权,然后,便开始按照预先定义的策略加载指定的软件或者程序。
需要说明的是指定的软件或者程序可以在主操作系统能够识别的硬盘上的某个分区中,或者是主操作系统不能识别,但可以由自动安装代理程序能够识别的硬盘保护分区中(如HPA)。该指定的软件或者程序还可能在网络中(LAN/WAN)的某个计算机上或者服务器上。无论上述哪种情况,均由所述的自动安装代理程序通过相应的方法获得指定的软件或者程序,并且自动安装和设置所述的指定的软件或者程序。安装和设置完成之后,自动安装代理程序将此前备份的被替换程序恢复到原来的位置,删除其自身,并且将计算机系统的控制权交回给主操作系统。
主操作系统再次获得计算机系统的控制权后,继续完成后续的启动过程,直至系统启动全部完成。
有时,用户并不希望启动上述的软件自动安装过程;因此,可以通过用户禁止设置标志来控制所述的软件自动安装过程。当用户禁止设置标志表示的是不启动软件自动安装过程,则检测程序不做加载上述的自动安装代理程序的操作,而是直接启动主操作系统。
所述的用户禁止设置标志存储在检测程序能够查询、访问或识别的位置;例如普通硬盘分区,保护分区,或者BIOS/EFI环境中,或者在存储在网络中可以被检测程序访问到的位置。
参见图2,当用户需要禁止,或者在禁用之后又需要重新启动上述的软件自动安装过程,则可以按照如下方法实现BIOS引导计算机,并且进行计算机系统的检测与初始化;此后,BIOS加载上述的检测程序;该检测程序检测用户是否在规定的时间内按下指定的热键。如果用户在规定的时间内没有按下上述指定的热键,所述检测程序执行图1所述的流程。如果用户按下上述的指定热键,则所述检测程序加载位于硬盘保护分区(或者其他存储位置,或者存储在网络上的计算机或服务器)中预先设置的副操作系统。所述副操作系统加载成功之后,用户可以在副操作系统界面上选择禁止或启动上述的自动安装过程,具体是存储标志信息,用于标识用户的设定状态。之后,所述的副操作系统重新引导计算机。当上述检测程序被再次加载时,通过刚刚设定的标志即可知道是否执行软件自动化安装的流程。
参见图3,当用户安装或者恢复了主操作系统(本实施例中所涉及的操作系统以美国微软公司的Windows操作系统为例,其版本不作限定)之后,通过事先修改的BIOS使之能够在BIOS正常检测与初始化功能执行完成之后,自动加载检测程序。在本实例中,检测程序是放置在硬盘的保护分区(HPA)中,但如前所述,本发明并非限定检测程序所在的位置,它可以在硬盘的任何一个分区或者目录中,也可以在网络上的某个计算机或者服务器中,也可以和BIOS合在一起加以执行。检测程序开始分析当前硬盘上的主操作系统的情况。首先检测是否安装了Windows主操作系统,如果没有检测Windows操作系统,则检测程序引导一个副操作系统,在副操作系统引导成功之后,询问用户是否利用副操作系统来安装一个主操作系统。如果用户需要安装一个主操作系统,则副操作系统开始按照向导进行主操作系统的安装。如果用户不需要安装主操作系统,也可以执行副操作系统的其他功能,如执行硬件诊断等。
如果检测程序检测到当前硬盘上已经安装了主操作系统,则加载程序开始检测位于主操作系统所在目录中的标志文件“SSCSCWCI.FLG”,如果存在该文件,则表明指定软件已经安装到主操作系统环境中,检测程序将加载主操作系统引导程序,并且将系统控制权交给主操作系统,接着由主操作系统完成系统引导。如果没有检测到“SSCSCWCI.FLG”标志文件,则说明指定软件没有被安装到当前的主操作系统环境中。因此,检测程序将通过主引导分区中的BOOT.INI文件中的信息找到主操作系统Windows的安装目录(如C\Windows或者C\WINNT),并且将主操作系统目录中名称为“autochk.exe”的程序复制到其他的位置(例如,在C\Windows\system32\dllcache目录以外),也可以复制到所述的保护分区,并且将其改名为“autochkw.exe”。同时,检测程序将位于其他地方的自动安装代理程序“autochks.exe”(在本实例中是位于硬盘保护分区中)复制到原“autochk.exe”所在的位置,并且,将“autochks.exe”改名为“autochk.exe”。此后,检测程序加载主操作系统(这里指Windows)的引导程序,并且将计算机系统的控制权交给Windows。
主操作系统开始正常引导系统,按照正常的方式加载各种模块。等到主操作系统启动到一定阶段,该主操作系统会自动加载上述的“autochk.exe”以实现对磁盘的扫描和修复功能。但此时,由于被加载的“autochk.exe”已经被自动安装代理程序替换了,所以,自动安装代理程序实际上获得了计算机系统的控制权。
自动安装代理程序获得控制权后,先创建一个叫做“SCPSetup.exe”的程序,并将之复制到主操作系统所在的位置,然后在主操作系统的注册表中填写必要的自动加载信息,使得Windows在启动到一定阶段时,能够自动加载所述的“SCPSetup.exe”。此后,自动安装代理程序退出,主操作系统再次获得计算机的控制权,并且继续启动过程。当主操作系统启动到一定阶段(在这个阶段,主操作系统开始加载位于注册表“RUN”字段中所写入的程序),便开始自动加载“SCPSetup.exe”。“SCPSetup.exe”被加载后,首先删除原来由“autochks.exe”改名为“autochk.exe”的文件,同时将位于保护分区被改名为“autochkw.exe”的原名称为“autochk.exe”恢复到原位。此后,“SCPSetup.exe”加载指定的软件或者程序,并且自动完成指定软件或者程序的安装与设置。在安装结束之后,“SCPSe t up.exe”进行必要的清理,例如去掉无用的注册表项等,然后,将计算机系统的控制权重新交给主操作系统,由主操作系统继续引导直至全部引导过程完成。
参见图4本发明上述第二个实施例可以通过副操作系统复制或者下载以及其他的方式准备好即将安装的指定的软件或者程序,并将其放置在硬盘的某个位置,再次引导系统,进入图3所示的流程进行自动软件或者程序的安装。
如图4所示,当计算机系统上电之后,BIOS进行常规的计算机系统检测与初始化,此后,BIOS加载一检测程序(本实例中名称为“AUTOINST.COM”),取得计算机系统的控制权,此刻,如果用户按下指定的热键,则“AUTOINST.COM”自动引导位于保护分区中的副操作系统,如果在规定的时间内(例如5秒钟),“AUTOINST.COM”没有发现用户按下任何热键,则“AUTOINST.COM”按照图3所示的流程执行。当副操作系统被成功加载之后,它立刻开始连接到网络(LAN/WAN)指定的位置,下载指定的软件或者程序(可以是软件,程序,病毒库等任意类型的程序或者文件),并且在下载完成之后,将下载的软件或者程序放置在硬盘上的保护分区中。然后,副操作系统重新引导计算机,计算机重新启动执行图3所述的流程。
最后应说明的是以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种计算机软件自动安装的方法,其特征在于,包括步骤1在计算机启动操作系统之前,检测硬盘上的主操作系统环境,如果没有安装主操作系统,则引导用户安装一个主操作系统后,重新启动计算机,执行步骤1;步骤2如果计算机中已经安装有主操作系统,则按照预设的规则检测指定的软件或者程序是否被包含到所述主操作系统中,并且检测指定的软件或者程序是否已经被正确地安装和配置;步骤3如果指定的软件或者程序已经被正确地安装并配置到主操作系统环境中,则将对计算机系统的控制权交给主操作系统,执行步骤6;步骤4如果检测到指定软件或者程序未被正确地安装并配置到主操作系统环境中,则加载自动安装代理程序;自动安装代理程序在主操作系统引导过程中取得对计算机系统的控制权,并按照预设的规则安装和配置指定软件或者程序;步骤5自动安装代理程序将对计算机系统的控制权交还给主操作系统,并终止自己的运行;步骤6主操作系统完成引导过程。
2.根据权利要求1所述的计算机软件自动安装的方法,其特征在于检测硬盘上的主操作系统环境以及指定的软件或者程序是否被包含到所述主操作系统中的操作,通过一检测程序执行;该检测程序在主操作系统加载前加载,并控制计算机系统。
3.根据权利要求2所述的计算机软件自动安装的方法,其特征在于所述的检测程序设置在所述计算机系统的BIOS或者EFI空间中,当计算机系统启动并完成自检过程后,被加载并执行。
4.根据权利要求2所述的计算机软件自动安装的方法,其特征在于所述的检测程序设置在所述计算机系统硬盘上的MBR中,当计算机系统启动并完成自检过程后,由BIOS或者EFI加载并执行。
5.根据权利要求2所述的计算机软件自动安装的方法,其特征在于所述的检测程序存储在可由计算机系统引导程序访问到的网络之中的一存储空间,当计算机系统启动并完成自检过程后,所述计算机系统引导程序从所述的存储空间中读取所述的检测程序,加载并执行。
6.根据权利要求1所述的计算机软件自动安装的方法,其特征在于所述步骤4中加载自动安装代理程序包括查找当前主操作系统引导时每次都必须加载的程序,并备份该程序;将自动安装代理程序的名称修改为所述被备份的程序名称,并存储在所述被备份的程序原存储位置,使得主操作系统在引导过程中自动加载该更换名称的自动安装代理程序。
7.根据权利要求6所述的计算机软件自动安装的方法,其特征在于在所述步骤4之后、步骤5之前还包括自动安装代理程序在安装和配置完成指定的软件或者程序之后,将所述被备份的程序恢复到原来的存储位置。
8.根据权利要求6所述的计算机软件自动安装的方法,其特征在于所述的备份是将被备份的程序复制到计算机硬盘的保护分区或与该程序原来所存储位置不同的存储空间,同时,对该被备份程序所在的新存储位置进行记录。
9.根据权利要求1、7或8所述的计算机软件自动安装的方法,其特征在于所述指定软件或者程序存储在主操作系统能够识别的硬盘上的普通分区中。
10.根据权利要求1、7或8所述的计算机软件自动安装的方法,其特征在于所述指定软件或者程序存储在所述自动安装代理程序能够识别的硬盘保护分区中。
11.根据权利要求1、7或8所述的计算机软件自动安装的方法,其特征在于所述指定软件或者程序存储在所述自动安装代理程序能够访问的网络中。
12.根据权利要求1所述的计算机软件自动安装的方法,其特征在于所述步骤2中检测指定的软件或者程序是否被正确安装到所述主操作系统,是通过对一个或一组标志位中记载的状态信息来判断。
13.根据权利要求12所述的计算机软件自动安装的方法,其特征在于在所述的步骤4之前,还包括检测用户禁止设置标志,如果所述用户设置标志表示用户禁止安装或设置所述指定软件或者程序,则直接步骤6;否则,执行步骤4。
14.根据权利要求13所述的计算机软件自动安装的方法,其特征在于所述用户禁止设置标志存储在检测程序能够查询、访问或识别的位置。
全文摘要
本发明公开了一种计算机软件自动安装的方法,如果计算机中已经安装有主操作系统,则按照预设的规则检测指定的软件或者程序是否被正确安装到所述主操作系统中;如果检测到指定软件或者程序未被正确地安装到主操作系统中,则加载自动安装软件,按照预定的规则加载指定软件或者程序;加载主操作系统引导程序,将计算机系统的控制权交给主操作系统,完成主操作系统的正常引导。本发明自动的将指定软件或者安全补丁安装上,提高了主操作系统的安全性与可靠性,降低了主操作系统的安全风险;同时,降低了网络系统管理成本,提高管理效率。
文档编号G06F9/445GK1797337SQ20041010410
公开日2006年7月5日 申请日期2004年12月29日 优先权日2004年12月29日
发明者张勇, 张兴明, 何宝林 申请人:北京软通科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1