溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》
  • 首頁 > 
  • 教程 > 
  • 服務(wù)器 > 
  • Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

發(fā)布時(shí)間:2020-09-30 00:34:29 來源:腳本之家 閱讀:729 作者:mdxy-dxy 欄目:服務(wù)器

最近遇見一個(gè)奇怪的現(xiàn)象,在做某系統(tǒng)的定期備份的時(shí)候使用到了非系統(tǒng)自帶Rsync命令,但是手動(dòng)啟動(dòng)沒問題,而且又非常期望批量化在多臺(tái)主機(jī)上進(jìn)行,怎么辦呢?Windows Server 2003下面這樣執(zhí)行任務(wù)計(jì)劃沒問題,而就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ī)訪問被拒絕

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

Figure 1看到上次運(yùn)行結(jié)果出現(xiàn)非0情況
這種非〇情況表示的是不能被接受的。
通過對(duì)這個(gè)批處理設(shè)置斷點(diǎn),我看到了這樣的報(bào)錯(cuò)信息。

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

Figure 2在批處理中加入Pause 進(jìn)行斷點(diǎn),查看錯(cuò)誤信息

很明顯,這個(gè)rsync不是系統(tǒng)自帶的程序和文件,因此無法被系統(tǒng)直接調(diào)用,猜測和環(huán)境變量有關(guān),仔細(xì)尋找Windows Server 2008 R2 下面的任務(wù)計(jì)劃選項(xiàng),我看到了這個(gè)填空的地方。

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

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í)目錄。

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

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ù)圖示:

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

創(chuàng)建計(jì)劃任務(wù)

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

定制計(jì)劃任務(wù)執(zhí)行時(shí)間

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

計(jì)劃任務(wù)操作一(此情況符合單個(gè)可執(zhí)行程序或者腳本不調(diào)用數(shù)據(jù)庫情況下)

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

計(jì)劃任務(wù)操作二(此情況符合運(yùn)行程序需要調(diào)用目錄數(shù)據(jù)庫情況、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ò)誤,換成了最簡單的打開記事本的命令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)

Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法

下面引用網(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ù)庫,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)類型,

解決方法:修改注冊表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ù)、

一個(gè)可以幫助我們一次執(zhí)行一系列預(yù)先編好的命令。在 Windows 系統(tǒng)的維護(hù)工作中,我們經(jīng)常需要將任務(wù)
計(jì)劃與批處理配合起來使用,即通過設(shè)置任務(wù)計(jì)劃定期執(zhí)行批處理文件定義的一系列命令與操作。

有時(shí)候,我們可能會(huì)遇到任務(wù)計(jì)劃與批處理無法正常協(xié)同工作的情況。例如,一個(gè)同樣的批處理文件,我們
可能手動(dòng)運(yùn)行它時(shí)一切正常(說明批處理文件的內(nèi)容沒有錯(cuò)誤),但將這個(gè)批處理文件添加為任務(wù)計(jì)劃后卻
無法按照預(yù)期運(yùn)行。筆者在微軟中文論壇收集了幾種解決任務(wù)計(jì)劃與批處理無法協(xié)同工作的方法,希望可以
幫助大家在遇到類似問題時(shí)參考。

1. 在任務(wù)計(jì)劃中正確設(shè)置執(zhí)行批處理的用戶身份與權(quán)限。

當(dāng)我們在任務(wù)計(jì)劃中添加新任務(wù)時(shí),其中有一個(gè)步驟是指定運(yùn)行此任務(wù)的用戶帳戶,并需要輸入用戶帳戶的
密碼進(jìn)行確認(rèn)。如果任務(wù)計(jì)劃設(shè)置的用戶帳戶身份或權(quán)限,與我們手動(dòng)運(yùn)行批處理文件時(shí)的用戶帳戶不同,
就可能會(huì)出現(xiàn)以任務(wù)計(jì)劃方式運(yùn)行批處理的結(jié)果與手動(dòng)運(yùn)行同樣的批處理時(shí)結(jié)果不同的現(xiàn)象。

例如,假設(shè)一個(gè)批處理涉及的命令需要管理員權(quán)限或者特定用戶帳戶的配置文件才可以正常運(yùn)行,如果執(zhí)行
此批處理的任務(wù)計(jì)劃被指定為一個(gè)非管理員帳戶或不具備相應(yīng)用戶配置的用戶帳戶,那么此批處理很可能在
以任務(wù)計(jì)劃的方式運(yùn)行時(shí)無法得到其預(yù)期的效果。因此,當(dāng)我們在添加任務(wù)計(jì)劃并希望以另一個(gè)用戶帳戶的
身份與權(quán)限運(yùn)行批處理時(shí),一定要在添加新任務(wù)向?qū)е袡z查運(yùn)行批處理的用戶帳戶身份與權(quán)限是否滿足運(yùn)行
此批處理的要求。

2. 通過快捷方式為批處理指定起始位置。

有些批處理文件需要我們?yōu)槠湓O(shè)置好特定的“起始位置”才可以正常運(yùn)行,否則可能會(huì)遇到批處理無法找到
指定路徑的錯(cuò)誤。當(dāng)我們手動(dòng)執(zhí)行批處理時(shí),無論是在資源管理器中用鼠標(biāo)雙擊運(yùn)行批處理,還是首先打開
命令提示符窗口、然后再在命令提示符中執(zhí)行批處理,資源管理器當(dāng)前打開的文件夾位置與命令提示符當(dāng)前
所在的提示符位置都已經(jīng)自動(dòng)為我們設(shè)置好了執(zhí)行批處理時(shí)的起始位置。然而,當(dāng)我們以任務(wù)計(jì)劃方式執(zhí)行
批處理時(shí),任務(wù)計(jì)劃卻無法自動(dòng)指定執(zhí)行批處理時(shí)所需的起始位置,這樣也可能會(huì)造成以任務(wù)計(jì)劃方式執(zhí)行
批處理時(shí)無法得到預(yù)期的效果。

為了解決這一問題,我們可以首先為批處理文件建立一個(gè)快捷方式,然后修改快捷方式的屬性,在“常規(guī)”
選項(xiàng)卡中設(shè)置正確的“起始位置”,接下來我們再添加任務(wù)計(jì)劃,將新任務(wù)指定為這個(gè)快捷方式文件而不是
批處理本身。這樣,任務(wù)計(jì)劃會(huì)在任務(wù)指定的時(shí)間自動(dòng)執(zhí)行指向批處理的快捷方式,對(duì)應(yīng)的批處理在運(yùn)行時(shí)
就具有正確的起始位置了。

3. 盡量避免在批處理內(nèi)容中出現(xiàn)過多的引號(hào)。

如果在批處理文件的內(nèi)容里出現(xiàn)了過多的引號(hào),即批處理中有一條或多條命令及參數(shù)被引號(hào)擴(kuò)起來,這不僅
可能在編寫批處理命令時(shí)容易出錯(cuò),而且可能會(huì)造成特定版本 Windows 的任務(wù)計(jì)劃無法正確識(shí)別批處理中
包含的命令。特別是在一個(gè)父級(jí)引號(hào)中還有子級(jí)的引號(hào)時(shí),尤其容易出現(xiàn)此類問題。

根據(jù)微軟知識(shí)庫 KB951246 提供的信息,這個(gè)問題主要存在于 Windows Vista/Server 2008 系統(tǒng)。
 
4. 將批處理文件轉(zhuǎn)換為可執(zhí)行文件或腳本后再添加任務(wù)計(jì)劃。
 
有時(shí)當(dāng)任務(wù)計(jì)劃無法正確執(zhí)行批處理文件的部分內(nèi)容時(shí),我們還可以嘗試將批處理轉(zhuǎn)換為其它格式的可執(zhí)行
文件或腳本,然后再添加至任務(wù)計(jì)劃。轉(zhuǎn)換格式雖然執(zhí)行的命令與任務(wù)不變,但將批處理轉(zhuǎn)換為可執(zhí)行文件
或腳本可以改變?nèi)蝿?wù)運(yùn)行的順序與方式,有時(shí)說不定可以解決問題。
 
批處理常見的格式轉(zhuǎn)換包括將 .BAT 文件轉(zhuǎn)換為 .EXE 或 .COM 可執(zhí)行文件,或者轉(zhuǎn)換為 .VBS 腳本,這類
轉(zhuǎn)換可以通過 BAT2EXE、BAT2COM、BAT to EXE Converter、批處理加密轉(zhuǎn)換器等第三方軟件實(shí)現(xiàn)。
5. 在批處理中添加為正常運(yùn)行后續(xù)命令所需的先決命令。
如果我們遇到了一些比較極端的批處理與任務(wù)計(jì)劃無法協(xié)同工作的問題,無論怎樣在任務(wù)計(jì)劃的運(yùn)行環(huán)境中
設(shè)置都不能解決,那么可以考慮將一些正確完成批處理命令所需的先決命令添加在原批處理內(nèi)容的最前面,
在批處理自身的層面加以解決。
 
例如,筆者最近在微軟中文論壇見到一則問題:有位用戶編寫了一個(gè)備份開發(fā)代碼的批處理,并將其添加為
任務(wù)計(jì)劃,希望在每天凌晨時(shí)自動(dòng)運(yùn)行。但是,這個(gè)批處理涉及的文件備份與復(fù)制操作需要訪問 $IPC 網(wǎng)絡(luò)
映射地址。經(jīng)測試,用戶編寫的批處理內(nèi)容沒有問題,如果手動(dòng)運(yùn)行批處理,可以正確地訪問目標(biāo)地址并且
完成備份;但如果將此批處理添加為任務(wù)計(jì)劃就無法正確執(zhí)行備份與復(fù)制操作。設(shè)置任務(wù)計(jì)劃的用戶權(quán)限、
設(shè)置起始位置、對(duì)批處理進(jìn)行格式轉(zhuǎn)換等方法均無法解決。最終解決這個(gè)問題的方法是在批處理內(nèi)容的前面
添加了一條:

NET USE Z:\\XXX.XXX.XXX.XXX\D$ "Password" /User:"Administrator"

將批處理正常訪問映射地址的先決命令寫在原批處理文件內(nèi)容的前面,最終這個(gè)批處理文件就可以通過任務(wù)
計(jì)劃方式正常運(yùn)行了。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI