時間:2015-04-16 來源:互聯網 瀏覽量:
1. 建立Main.bat文件
以管理員身份登錄Windows XP,在係統盤的根目錄下新建一個名為Main.bat的文件(文件名可以隨便取,下同)並輸入如下內容:
cd
C:
cd Windowssystem32
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:WINDOWSSYSTEM32TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN
在這個文件中,Signature必須設置為”$CHICAGO$”,否則文件將無法起作用。
3. 建立Begin.bat文件
在C盤根目錄下建立批處理文件Begin.bat,向這個文件中輸入:
C:WINDOWSSystem32rundll32.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:WINDOWSSYSTEM32TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN
這個語句的作用是關閉計算機,其實是“關閉Windows XP+關閉電源”。