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