Windows XP 的日常維護工作繁瑣且耗時,若能讓系統自動執行磁碟重組、垃圾檔案清理、檔案備份等任務,將大幅減輕使用者負擔。本文介紹一種利用 .inf 安裝腳本搭配批次檔與排程工作,打造全自動維護機制的完整做法,內容可依需求彈性調整。
.inf 檔案原本用於硬體驅動安裝,實質是純文字腳本。當使用者以右鍵選擇「安裝」時,Windows 會依腳本指令執行一系列動作。我們利用這項特性,將維護指令植入 .inf,再透過排程定期觸發,即可實現無人值守維護。
以管理員身分登入,在系統磁碟根目錄(如 C:\)建立 Main.bat,內容範例:
cd\
C:
cd Windows\system32
defrag C: /f
chkntfs C:
上例執行 C 槽磁碟重組(/f 強制執行)並檢查檔案系統。你可依需求加入 xcopy 備份、del 清理暫存檔等指令,功能越豐富維護越完整。
同目錄建立 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$",否則腳本無法運作。[Tst.PreSetup] 區段執行維護腳本,[Tst.PostSetup] 則在維護完成後呼叫 TSSHUTDN.EXE 關機(含切斷電源)。
在 C:\ 建立 Begin.bat,內容:
C:\WINDOWS\System32\rundll32.exe advpack.dll,LaunchINFSectionEx
C:\Main.inf,DefaultInstall,,32
此指令呼叫 advpack.dll 中的 LaunchINFSectionEx 函式,啟動一個「硬體安裝流程」來執行我們自訂的 Main.inf,達到「偷樑換柱」的效果。
C:\Begin.bat,設定執行週期為「每週」。到期時系統會自動執行 Begin.bat → 啟動 Main.inf 安裝流程 → 執行 Main.bat 維護指令 → 完成後自動關機。
[Tst.PostSetup] 區段的關機指令。善用此機制,即可讓 XP 在深夜自動完成磁碟整理、垃圾清理、系統檢查等工作,隔天開機即享最佳效能,真正實現「設定好就不用管」的自動化維護。