Windows XP下很多朋友都在使用“關機腳本+一鍵批處理”來自動清理垃圾文件,不過這個招數到了Vista下卻不靈了,雖然批處理命令仍然可以執行,但卻發現很多垃圾文件並沒有被清理掉。這其中的原因是什麼?在Vista下又該如何自動清理垃圾文件?本文就為大家解決這些難題。
一、 清理垃圾命令為何在Vista下失效 對於自動清理垃圾的批處理命令相信很多朋友都知道,其實就是一大堆刪除命令的集合,大家也可以到http://www.shudoo.com/bzsoft下載自動刪除垃圾的批處理文件。由於Vista采用NTFS格式的分區,文件(特別是系統目錄下文件)的刪除都要取得權限才能完成。由於批處理腳本中很多命令要刪除的是系統目錄下的文件(比如“del /f /s /q %systemdrive%*.log”命令,在試圖刪除“C:\Windows\SoftwareDistribution\DataStore\Logs\edb.log”時),系統會給出拒絕訪問的提示,原因就是由於權限不足。
提醒:網上很多垃圾文件清理腳本並不一定適合每個人,因為這也有可能誤刪除重要文件。使用前應該了解清楚腳本的作用。
因為出於安全考慮,在Vista中即使我們以系統管理員身份登錄系統,但在實際操作中仍然只是擁有標准賬戶的權限。關機腳本是通過命令提示符加載的,默認情況下是以標准用戶身份運行,所以有些清理垃圾命令由於權限不足無法完成文件的刪除。
二、Vista下如何自動清理垃圾 知道問題產生的原因後,解決問題的方法當然是提高權限運行批處理命令。如果是手動清理垃圾,我們只要將清理腳本保存為BAT文件,然後右擊它選擇“以管理員身份運行”即可。不過,手動執行會遭遇UAC“阻截”。我們的目的是要自動執行批處理命令,因此我們要繞開UAC讓命令自動執行。關閉UAC當然不明智,這裡可以借助任務計劃完成命令自動執行。
董師傅提示:對於系統目錄下的一些重要文件,默認情況下只有內置的SYSTEM和ADMINISTRATOR用戶擁有完全控制權限。如果“以管理員身份運行”後仍然無法刪除文件,這時就要將文件所有權更改為當前登錄用戶、同時設置權限為“完全控制”。所有權和權限設置可以借助系統的takeown和cacls命令獲得,命令具體使用方法請參考Windows的“幫助與支持”。
步驟1:將網上下載的腳本保存為“clean.bat”,放置在c:\。接著單擊“開始→所有程序→附件→系統工具→任務計劃程序”,啟動任務計劃後單擊“創建基本任務”啟動新建任務計劃向導。
步驟2:根據向導的提示,建立一個名為“clean”的任務,在觸發器中選擇一個無法執行的時間,比如設置為2006-1-1執行(這樣這個任務實際是不會被自動執行的)。操作選擇“啟動程序”,單擊“浏覽”選擇運行的程序是“c:\clean.bat”。
步驟3:完成後勾選“當單擊完成時打開此任務屬性的對話框”,將打開的對話框切換到“常規”選項卡。在安全選項下單擊“更改用戶和組”,選擇系統管理員賬戶運行該任務,同時勾選下方的“使用最高權限運行”。這樣一旦運行任務計劃,它就擁有管理員權限了。
步驟4:啟動記事本新建一批處理cl.bat,放置在c:\,代碼如下:
Rem 使用任務計劃命令啟動清除垃圾,/run 表示運行,/tn 後跟任務名稱
Schtasks /run /tn clean
步驟5:單擊“開始”→“運行”,輸入“gpedit.msc”啟動“組策略編輯器”。依次展開“計算機配置→Windows設置/腳本(啟動/關機)”,雙擊右側窗格的“關機”,在打開的窗口單擊“添加”,將“c:cl.bat”添加到關機腳本。
這樣,以後每次關機,系統會自動調用這個批處理命令激活上述任務計劃清除垃圾。由於我們已經將任務運行設置為“使用最高權限運行”(與右鍵“以管理員身份運行”等效,但不會彈出UAC提示),這樣運行的就是管理員權限,可以有效地刪除系統垃圾文件。
由於Vista的NTFS分區的特性,一些原來在Windows XP下暢通無阻的操作如果在Vista下遭遇故障,大家一定看看是否因為操作權限問題。解決問題的方法是提升操作權限,如果需要自動提升權限運行則可以借助文中介紹的任務計劃法。