如何保護你的windows7任務計劃不失效?

任務計劃是指在特定的條件下(如使用者登入、系統啟動時),執行特定的程式(或批處理、指令碼),預設任務計劃是在後臺自動執行的。因此如果任務計劃失效,主要的原因有兩個:一是呼叫的程式或者批處理程式碼出錯,導致任務計劃無法執行指定程式。二是執行賬戶許可權不足,導致任務計劃沒有足夠的許可權執行指定的程式。因此解題的思路主要就從程式(或批處理)本身和賬戶許可權的角度入手解決問題。

如何保護你的windows7任務計劃不失效

工具/原料

Windows7工作管理員

解決程式本身錯誤引發的問題

因為在將程式(或者批處理)新增到任務計劃執行的時候,我們一般都會預先執行一下。因此這裡程式本身錯誤大多是由於沒有指定正確的路徑造成的。比如下面這樣的一個批處理放置在桌面:echo "test is ok!" >>test.txt當我們在桌面直接雙擊或者在命令提示符執行的時候,批處理都會在當前目錄下生成test.txt檔案,這說明批處理程式碼是沒有錯誤的。不過當我們新增到任務計劃,重啟後開啟“控制面板→管理工具“,依次展開到“系統工具→任務計劃程式→任務計劃程式庫”,可以看到新增的任務計劃提示“正在執行”,但是卻沒有生成指定的“test.txt”檔案

如何保護你的windows7任務計劃不失效

顯示批處理正在執行卻無法正常生成指定檔案

為什麼會出現這個問題?原來我們在桌面直接雙擊或者在命令提示符執行上述批處理時,系統會自動將當前目錄指定為“test.txt”檔案的存放目錄,上述批處理執行起來並不會有任何問題。但是當我們將這個批處理新增到任務計劃執行時,任務計劃無法自動指定執行批處理時所需的起始位置,導致上述批處理無法生效。因此解決的方法是重新為批處理指定正確的路徑,比如改成下面的程式碼即可:echo "test is ok!" >>d:\test.txt此外,任務計劃批處理本身也必須指定呼叫的具體路徑。比如呼叫的是桌面快捷方式,如果右擊快捷方式選擇“屬性→快捷方式”,這裡的“起始位置”如果置空,在任務計劃中執行時也會出錯,解決方法同樣是要指定具體快捷方式

如何保護你的windows7任務計劃不失效

任務計劃的快捷方式不能置空

解決許可權不足引發的問題大家知道在Windows 7中如果要執行帶有盾牌標誌的程式(即使你是管理員身份登入),系統就會彈出UAC(使用者賬戶控制)提示,需要我們手動提權才能執行這些程式。因此如果任務計劃執行的(或者任務計劃執行批處理、指令碼呼叫的)是帶有盾牌標誌的程式,系統的UAC就會啟動攔截,從而導致任務計劃無法在後臺自動完成。解決的方法自然是為執行程式提權,在任務計劃視窗選中無法執行的任務,在常規選項下,執行使用者選擇本機管理員賬戶,單選“在使用者登入時執行”,然後勾選“使用最高許可權執行”,這樣下次啟動上述任務時就沒有UAC的攔截了

如何保護你的windows7任務計劃不失效

設定執行帳戶的許可權

不過要注意的是,在Windows中有多個“會話”機制,每個使用者登入都會新生成一個會話,每個會話中執行不同的桌面和程式,它們之間是獨立的。我們可以啟動工作管理員後,單擊 “檢視→選擇列→勾選會話ID”,這樣在程序列表就可以顯示每個程序所處的會話

如何保護你的windows7任務計劃不失效

檢視程序會話ID

很多常用的程式如搜狗輸入法的字型檔升級、Flash外掛的自動升級、磁碟碎片定時整理都是通過任務計劃進行的,不過系統自帶任務計劃元件無法檢視到全部計劃任務,我們可以到下載AutoRuns,執行後切換到“計劃任務”即可看到本機所有後臺任務,其中標註紅色的則表示路徑錯誤,可以手動刪除

如何保護你的windows7任務計劃不失效

選擇SYSTEM身份執行任務計劃

如果在常規屬性中選擇“不管使用者是否登入都要執行”這個選項(或者執行賬戶是SYSTEM),任務計劃就執行在會話0(當前賬戶登入則為會話1)。在0會話中,我們無法在當前桌面看到執行的程式,因此任務計劃如果要執行的是GUI程式如啟動迅雷、QQ,就必須選擇當前使用者執行,反之則可以選擇SYSTEM執行,只要點選“更改使用者和組”,然後在“輸入要選擇的物件名稱”下輸入“SYSTEM”,點選“確定”後就可以以SYSTEM身份執行任務計劃了

如何保護你的windows7任務計劃不失效

檢視本機所有的任務計劃

使用者登入到Windows系統之後,不管該使用者是本地登入的,還是遠端登入,系統都會為這個使用者分配一個新的會話ID(SID)。會話是與使用者的登入相關連的,它的含義是指使用者登入之後的一種執行的環境,包括桌面、使用者配置檔案、分配的許可權等。微軟也是通過會話來將系統核心(執行在會話0)和使用者(會話1)隔離,從而保證系統有更好的穩定性。

相關問題答案