Windows 2008 r2任務(wù)計劃程序執(zhí)行批處理失敗問題解決方法
最近遇見一個奇怪的現(xiàn)象,在做某系統(tǒng)的定期備份的時候使用到了非系統(tǒng)自帶Rsync命令,但是手動啟動沒問題,而且又非常期望批量化在多臺主機上進行,怎么辦呢?Windows Server 2003下面這樣執(zhí)行任務(wù)計劃沒問題,而就Windows Server 2008 R2下面出現(xiàn)意外。
正常情況下我們的任務(wù)計劃會有反饋數(shù)值,通過它可以判斷這個任務(wù)計劃上次是否運行正常(詳細連接:http://support.microsoft.com/kb/267031/)。
· 代碼 0 或 0x0:操作成功完成。
· 代碼 1 或 0x1:調(diào)用的函數(shù)不正確或調(diào)用了未知函數(shù)。
· 代碼 10 或 0xa:環(huán)境不正確。
· 代碼 0x8009000f:常規(guī)訪問被拒絕
Figure 1看到上次運行結(jié)果出現(xiàn)非0情況
這種非〇情況表示的是不能被接受的。
通過對這個批處理設(shè)置斷點,我看到了這樣的報錯信息。
Figure 2在批處理中加入Pause 進行斷點,查看錯誤信息
很明顯,這個rsync不是系統(tǒng)自帶的程序和文件,因此無法被系統(tǒng)直接調(diào)用,猜測和環(huán)境變量有關(guān),仔細尋找Windows Server 2008 R2 下面的任務(wù)計劃選項,我看到了這個填空的地方。
Figure 3起始于(可選)項
我將這個填寫成了該條腳本的所在的目錄,再次運行該任務(wù)計劃,得到返回成功的標記,并且在服務(wù)本分服務(wù)器端受到相應(yīng)的備份內(nèi)容。
這里回顧一下,兩個版本操作系統(tǒng)的任務(wù)計劃的不一樣,Windows Server 2003 下面可以選擇的內(nèi)容,項目并不多,不過他默認的情況下會將起始于填寫進去,使用的就是所在腳本的上一級目錄。
Figure 4 Windows Server 2003 下面的起始于,默認被填寫
因此設(shè)置Windows Server 2008 ,2012這樣的基于Nt6核心的系統(tǒng)的任務(wù)計劃的時候建議將起始于進行一下設(shè)置。
以下是其它網(wǎng)友提供的方法
第二種解決方法:
1、創(chuàng)建任務(wù)計劃時,要在常規(guī)選項卡里選中“不管用戶是否登錄都要運行”、“使用最高權(quán)限運行”、配置選帶有“Windows Server 2008 R2”這三個選項,
2、在操作選項卡里的“起始于(可選)”要填上bat批處理文件所在目錄,windows 2003是在選擇bat批處理文件自動帶上的,而2008不會,雖然它提示是可選的,但是不填的話,執(zhí)行會失?。?/p>
3、所有信息都填寫完整后點確定時需要輸入運行此任務(wù)的用戶帳戶密碼;
第三種解決方法:
下面我貼一個完整的計劃任務(wù)圖示:
創(chuàng)建計劃任務(wù)
定制計劃任務(wù)執(zhí)行時間
計劃任務(wù)操作一(此情況符合單個可執(zhí)行程序或者腳本不調(diào)用數(shù)據(jù)庫情況下)
計劃任務(wù)操作二(此情況符合運行程序需要調(diào)用目錄數(shù)據(jù)庫情況、PS:這個通吃吧貌似j
后面默認即可
其問題就在于編輯操作的選項里面的起始于(可選)選項。
真正問題找出來覺得很諷刺呢
貼這個帖子是想給大家一個出現(xiàn)問題有據(jù)可查的建議。哈哈,自己也能做個標記以防忘記。
第四種解決方法:
今天在Windows Server 2008 里新建了一個定時任務(wù),通過定時任務(wù)執(zhí)行的bat文件中的sql命令
結(jié)果查看定時任務(wù)的歷史記錄,發(fā)現(xiàn)卡住了
提示已經(jīng)啟動定時任務(wù),但是bat中的操作一直沒有執(zhí)行
剛開始懷疑bat文件中有錯誤,換成了最簡單的打開記事本的命令notepad,發(fā)現(xiàn)問題依然存在
后來發(fā)現(xiàn)有一個很有意思的地方,新建定時任務(wù)的時候,有2個選項:創(chuàng)建基本任務(wù)和創(chuàng)建任務(wù)
之前是創(chuàng)建的基本任務(wù),后來換成創(chuàng)建任務(wù)
然后,問題就解決了
第五種解決方法:
新建一個管理員帳號,然后用新帳號運行就可以了。
第六種方法:其實就是第二種方法的補充
解決辦法:
如圖:編輯任務(wù) 把批處理文件的起始位置加上如:在d:\aa.bat
那么起始位置就是:d:\ 注:路徑中不能有引號
下面引用網(wǎng)上的東東:
批處理文件肯定是沒有問題,加入到計劃任務(wù)中,發(fā)現(xiàn)沒能正常備份,也沒有拷貝到網(wǎng)絡(luò)映射盤。
將bat文件輸出到文件,本想看看log的,結(jié)果居然沒有正常執(zhí)行。
google了一下,發(fā)現(xiàn)很多網(wǎng)友都有類似的問題,但沒人給出答案。
很幸運的找到一篇微軟官方論壇上的網(wǎng)友討論的帖子,幾乎全部解決我的問題。
http://social.technet.microsoft.com/Forums/en-US/winservermanager/thread/d47d116e-10b9-44f0-9a30-7406c86c2fbe/ 很精彩的技術(shù)交流。
對我來說碰到了2個問題,
1, a.bat 是處理備份數(shù)據(jù)庫,b.bat 內(nèi)容為 a.bat > D:/abc/1.log , 將b.bat 加入的計劃任務(wù)中,目的是想調(diào)試計劃任務(wù)是否成功。(手動單獨執(zhí)行,每次都成功的)結(jié)果,是1.log不輸出,計劃任務(wù)中返回2; www.dbjr.com.cn
2,a.bat 中有把備份好的數(shù)據(jù)拷貝到網(wǎng)絡(luò)映射盤,比如Z盤,計劃任務(wù)每次都不執(zhí)行,手動運行該腳本也是好的。
按照上面論壇給的提示:
2) Make sure that the task is set to "start in" the folder that contains the batch file: open the task properties, click on the "actions" tab, click on the action and then the "edit" button at the bottom. In the "Edit Action" Window there is a field for "start in (optional)" that you set to the path to the batch file.
在“操作”->"編輯操作"->“起始于(可選)" 中一定要填入該批處理的路徑。 這一招解決了第一個問題。
NET USE W: /DELETE
NET USE W: //myserver/myfolder /PERSISTENT:YES
這個是解決第二個問題的關(guān)鍵,在執(zhí)行拷貝,或者建立新文件夾之前,先要進行如上兩行命令。 細節(jié):確保在我的電腦界面通過菜單操作的網(wǎng)絡(luò)映射盤式斷開的;Windows server 2008 用戶管理頁面有個網(wǎng)絡(luò)密碼管理,如果填寫了,net use w: ... 這行命令就不需要輸入密碼和用戶名。
這一招解決第二個問題。
補充一點:批處理文件中和 ”起始于(可選)“中的路徑都不要使用 雙引號""
第七種方法:
使用windows server 2008 R2 的任務(wù)計劃程序需要啟動服務(wù) Task Scheduler 服務(wù),
windows server 2008 R2 默認狀態(tài)下Task Scheduler 服務(wù)是禁止的并且不可切換啟動類型,
解決方法:修改注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule 下的start項數(shù)值為2
修改后重啟服務(wù)器,任務(wù)計劃程序就可添加使用。
第八種方法:
網(wǎng)絡(luò)環(huán)境:windows2003+windows2008.
描述:在win2003內(nèi)使用映射驅(qū)動器Z:映射win2008的一個目錄,
在win2003中創(chuàng)建bat 文件copy Z:中的文件,并做任務(wù)計劃bat定時執(zhí)行.
命令行直接執(zhí)行bat沒有問題,執(zhí)行任務(wù)計劃失敗.
最終的解決方法是參考下面的文章,在bat文件中添加:
NET USE Z: \\XXX.XXX.XXX.XXX\D$\XXXX "Password" /User:"Administrator"
----
另:win7下映射驅(qū)動器Z:,添加任務(wù)計劃執(zhí)行bat文件 Copy Z:\...沒問題,
不存在需要手工添加命令net use的bug.
重啟Win7后,任務(wù)計劃消失,但其他程序創(chuàng)建的任務(wù)計劃存在,
最后通過排除法檢查發(fā)現(xiàn)是由于360軟件作怪!需要把bat 文件和job文件同時都加入白名單.
任務(wù)計劃無法正常運行批處理文件的幾種解決方法
Windows 任務(wù)計劃與 BAT 批處理文件都是我們經(jīng)常使用的工具,一個可以幫助我們定期執(zhí)行計劃的任務(wù)、
有時候,我們可能會遇到任務(wù)計劃與批處理無法正常協(xié)同工作的情況。例如,一個同樣的批處理文件,我們
1. 在任務(wù)計劃中正確設(shè)置執(zhí)行批處理的用戶身份與權(quán)限。
當我們在任務(wù)計劃中添加新任務(wù)時,其中有一個步驟是指定運行此任務(wù)的用戶帳戶,并需要輸入用戶帳戶的
例如,假設(shè)一個批處理涉及的命令需要管理員權(quán)限或者特定用戶帳戶的配置文件才可以正常運行,如果執(zhí)行
2. 通過快捷方式為批處理指定起始位置。
有些批處理文件需要我們?yōu)槠湓O(shè)置好特定的“起始位置”才可以正常運行,否則可能會遇到批處理無法找到
為了解決這一問題,我們可以首先為批處理文件建立一個快捷方式,然后修改快捷方式的屬性,在“常規(guī)”
3. 盡量避免在批處理內(nèi)容中出現(xiàn)過多的引號。
如果在批處理文件的內(nèi)容里出現(xiàn)了過多的引號,即批處理中有一條或多條命令及參數(shù)被引號擴起來,這不僅
根據(jù)微軟知識庫 KB951246 提供的信息,這個問題主要存在于 Windows Vista/Server 2008 系統(tǒng)。
NET USE Z:\\XXX.XXX.XXX.XXX\D$ "Password" /User:"Administrator"
將批處理正常訪問映射地址的先決命令寫在原批處理文件內(nèi)容的前面,最終這個批處理文件就可以通過任務(wù)
計劃方式正常運行了。
相關(guān)文章
Windows 8 IIS中配置PHP運行環(huán)境的方法
這篇文章主要介紹了如何在Windows 8中通過iis8配置php運行環(huán)境,需要的朋友可以參考下2013-09-09IIS6批量添加主機頭 IIS6批量綁定主機頭(利用IIS6導(dǎo)入導(dǎo)出XML)
因為對iis6添加了很多的主機頭,如果一個一個的添加很累,所以想到了批量添加,經(jīng)過測試發(fā)現(xiàn),可以用如下方法2012-12-12win2003 IIS6,能訪問html頁 但是不能訪問aspx頁解決辦法匯總
win2003 sp2 系統(tǒng)。裝上IIS6后,html正常訪問,但是aspx頁就是訪問不了,日志文件也不做任何問題的記錄。2010-11-11win2003服務(wù)器中創(chuàng)建Web網(wǎng)站虛擬目錄的圖文方法
Windows Server 2003系統(tǒng)中創(chuàng)建的Web網(wǎng)站,其中的所有內(nèi)容一般都存儲在主目錄中。但隨著網(wǎng)站內(nèi)容的不斷豐富,用戶需要把不同層次的內(nèi)容組織成網(wǎng)站主目錄下的子目錄。2010-10-10IIS7.5 檢測到在集成的托管管道模式下不適用的 ASP.NET設(shè)置
這篇文章主要介紹了IIS7.5 檢測到在集成的托管管道模式下不適用的 ASP.NET設(shè)置 ,需要的朋友可以參考下2015-01-01