vbs 腳本的 Server 2008 R2 任務計劃程序權限
我有一個 vbs 腳本來使用 MySQLDump 命令備份 MySQL 數據庫文件。這是完美的工作,並為每天的備份創建一個新文件夾(例如 20130110)。
但是,該腳本還旨在通過刪除早於 x 天的文件夾來進行整理。
當我手動執行腳本時,它執行良好,但是當我在任務計劃程序中設置腳本並將其設置為“無論使用者是否登錄都執行”(使用管理員使用者帳戶)時,任務失敗。我認為問題在於權限,但由於文件夾是由任務創建的,因此它們應該能夠被任務刪除。
順便說一句,vbs 腳本使用 FileSystemObject DeleteFolder 命令執行刪除…
任何意見,將不勝感激!
編輯 問題出在 FileSystemObject DeleteFolder 命令上。我嘗試將文件夾設置為擁有所有人,完全權限,但仍然沒有樂趣……
答案如下:
設置動作時,而不是將“程序/腳本”設置為包含路徑(例如“C:\Scripts\Backup.vbs”),您需要將“程序/腳本”設置為“Backup.vbs”並且’Start in’ 為 “C:\Scripts"
該腳本現在有效!
感謝http://www.blogfodder.co.uk/2012/4/20/win-2008-task-scheduler-with-return-code-1-0x1的建議…
你的任務的命令行是什麼?任務產生的“上次執行結果”是什麼?“歷史記錄”選項卡中是否顯示任何錯誤或警告?您是否啟用了 UAC,但忽略了檢查“以最高權限執行”選項?
嘗試在腳本中添加一些調試程式碼以隔離錯誤。我個人更喜歡記錄到事件日誌以避免文件系統權限問題。
Set sh = CreateObject("WScript.Shell") sh.LogEvent 4, "marker 1" ' your code here sh.LogEvent 4, "marker 2" ' more of your code here sh.LogEvent 4, "marker 3" ' ...
這應該讓您大致了解程式碼的哪一部分是有問題的。找到它後,您可以添加更具體的調試程式碼,例如:
' some code On Error Resume Next ' first instruction here If Err Then ReportError "Error in 1st instruction" ' second instruction here If Err Then Report Error "Error in 2nd instruction" ' ... On Error Goto 0 ' more code Sub ReportError(txt) CreateObject("WScript.Shell").LogEvent 1, txt & ": " & Err.Description _ & " (0x" & Hex(Err.Number) & ")" WScript.Quit 1 End Sub