注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

利用Windows 自带命令实现自动碎片整理  

2010-04-07 00:13:28|  分类: Server Managemen |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  【赛迪网-IT技术报道】Windows XP日常维护是件既耗时又无聊的事情,如果Windows XP能够聪明一点,进行自动维护就好了。下面,为大家介绍一种通过.inf文件让Windows XP进行自动维护的技巧,自动维护的具体内容可以任意设定,不过需要命令来实现。比如用Xcopy进行文件备份、Defrag进行磁盘碎片整理、Del删除垃圾文件等等。为了讲清楚原理,下面我们以Defrag为例,你可以根据自己的需要进行修改。

  实现步骤

  1、建立Main.bat文件
  以管理员身份登录Windows XP,在系统盘的根目录下新建一个名为Main.bat的文件(文件名可以随便取,下同)并输入如下内容:

  cd\
  C:
  cd Windows\system32
  defrag C: /f
  chkntfs C:

  2、建立Main.inf文件
  新建一个文件名为Main.inf的文件并输入:

  [version]
  Signature= "$CHICAGO$"
  AdvancedINF= 2.5,"advpack.dll"

  [DefaultInstall]
  RunPreSetupCommands=Tst.PreSetup
  RunPostSetupCommands=Tst.PostSetup

  [Tst.PreSetup]
  C:\Main.bat
  [Tst.PostSetup]
  C:\WINDOWS\SYSTEM32\TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN

  在这个文件中,Signature必须设置为”$CHICAGO$”,否则文件将无法起作用。

  3、建立Begin.bat文件

  在C盘根目录下建立批处理文件Begin.bat,向这个文件中输入:
  C:\WINDOWS\System32\rundll32.exe advpack.dll,LaunchINFSectionEx
  C:\Main.inf,DefaultInstall,,32

  这个命令的作用是让Windows XP启动一个硬件安装过程,从而执行.inf文件中的指令。Rundll32.exe在Windows中被用来调用DLL文件(动态链接库)中函数提供的功能。比如这里的rundll32.exe就调用了advpack.dll中的LaunchINFSectionEx函数,这个函数的作用就是启动一个.inf安装过程。不过Main.inf的内容已经和硬件安装无关,而是被我们偷梁换柱改成了系统自动维护的命令。

  4、计划任务

  计划任务的作用是定期执行Begin.bat文件,实现步骤如下:

  (1)打开Windows XP的开始菜单进入“程序→附件→系统工具→计划任务”,双击“添加计划任务”,单击“浏览”,找到C盘根目录下面的Begin.bat文件,然后单击 “下一步”按钮;
  (2)设置任务执行周期为“每周”,然后单击“下一步”按钮;
  (3)设置执行计划任务的密码,也就是计算机的管理员密码,然后单击“下一步”按钮;
  (4)设置执行任务的具体日期和时间。

  在以上例子中,我们让这个计划任务每周日的23:30执行一次文件C:\Begin.bat,进行自动维护。

  实现原理
  .inf文件通常用于硬件安装,其实是一个文本文件。当用户在文件上单击鼠标右键选择“安装”的时候,Windows将会根据这个文件的内容执行一系列操作,上面介绍的自动维护方法就是借助.inf文件的这个特点实现的。
  我们建立的计划任务启动时,它会调用Begin.bat。Begin.bat将使用Main.inf作为配置文件启动一个安装过程,按照 Main.inf中的内容执行一系列操作。
  Main.inf启动时会首先执行[Tst.PreSetup]段中的语句,也就是“C:\Main.bat”,Main.bat被调用时,Windows将对C:进行磁盘碎片整理工作。Main.bat的内容越丰富,自动维护的功能就越强大。

  Main.bat中的命令都执行完毕后,[Trs.PostSetup]中的语句又将被执行,也就是:
  C:\WINDOWS\SYSTEM32\TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN
  这个语句的作用是关闭计算机,其实是“关闭Windows XP+关闭电源”。

  最后要注意的一点,这个方法只能在Windows XP Professionl中实现,Windows XP Home无法使用。
  评论这张
 
阅读(669)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017