最近遇見一個奇怪的現象,在做某系統的定期備份的時候使用到了非系統自帶Rsync命令,但是手動啟動沒問題,而且又非常期望批量化在多臺主機上進行,怎么辦呢?Windows Server 2003下面這樣執行任務計劃沒問題,而就Windows Server 2008 R2下面出現意外。
正常情況下我們的任務計劃會有反饋數值,通過它可以判斷這個任務計劃上次是否運行正常(詳細連接:http://support.microsoft.com/kb/267031/)。
· 代碼 0 或 0x0:操作成功完成。
· 代碼 1 或 0x1:調用的函數不正確或調用了未知函數。
· 代碼 10 或 0xa:環境不正確。
· 代碼 0x8009000f:常規訪問被拒絕
Figure 1看到上次運行結果出現非0情況
這種非〇情況表示的是不能被接受的。
通過對這個批處理設置斷點,我看到了這樣的報錯信息。
Figure 2在批處理中加入Pause 進行斷點,查看錯誤信息
很明顯,這個rsync不是系統自帶的程序和文件,因此無法被系統直接調用,猜測和環境變量有關,仔細尋找Windows Server 2008 R2 下面的任務計劃選項,我看到了這個填空的地方。
Figure 3起始于(可選)項
我將這個填寫成了該條腳本的所在的目錄,再次運行該任務計劃,得到返回成功的標記,并且在服務本分服務器端受到相應的備份內容。
這里回顧一下,兩個版本操作系統的任務計劃的不一樣,Windows Server 2003 下面可以選擇的內容,項目并不多,不過他默認的情況下會將起始于填寫進去,使用的就是所在腳本的上一級目錄。
Figure 4 Windows Server 2003 下面的起始于,默認被填寫
因此設置Windows Server 2008 ,2012這樣的基于Nt6核心的系統的任務計劃的時候建議將起始于進行一下設置。
以下是其它網友提供的方法
第二種解決方法:
1、創建任務計劃時,要在常規選項卡里選中“不管用戶是否登錄都要運行”、“使用最高權限運行”、配置選帶有“Windows Server 2008 R2”這三個選項,
2、在操作選項卡里的“起始于(可選)”要填上bat批處理文件所在目錄,windows 2003是在選擇bat批處理文件自動帶上的,而2008不會,雖然它提示是可選的,但是不填的話,執行會失敗;
3、所有信息都填寫完整后點確定時需要輸入運行此任務的用戶帳戶密碼;
第三種解決方法:
下面我貼一個完整的計劃任務圖示:
創建計劃任務
新聞熱點
疑難解答