Windows – Task Scheduler

測試環境為 Windows2012 R2 x86_64 (虛擬機)

預期利用 robocopy 透過 Task Scheduler (taskschd.msc) 做定期的遠端備份,但是 Last Run Result 卻顯示為 0x10 ,先來看看 Error / Success Code 的代碼.

  • 0 or 0x0: The operation completed successfully.(正確執行的代碼)
  • 10 or 0xa: The environment is incorrect.(環境錯誤)

其他代碼請參考 https://en.wikipedia.org/wiki/Windows_Task_Scheduler#Column_’Last_Result’

好問題什麼是 The environment is incorrect.(環境錯誤) 為了得到比較詳細的資訊,可以先把 Task scheduler 的 History 啟動.
在 Task Scheduler (Local) / Task Scheduler Library / Microsoft / Windows / TaskScheduler 按右鍵 Enable All Tasks History

在 Task Scheduler 新增 Create New Task 時.

  1. General / Security options / When running the task, use the following user account: Ben (為 Administrator 使用者) 有兩種選擇.

    • Run only when user is logged on (只有使用者登入時才執行)
      網路磁碟機可以透過 Map Network drive 或是 直接使用 UNC \\102.168.1.1\share 來連接,試過兩種方式都可以透過 robocopy 來做遠端資料備份.
    • Run whether user is logged on or not (不論使用者登入與執行與否均執行) – 我採用的方式
      使用者不需要登入,其設定好的工作排程會自動執行,需先輸入使用者密碼,但使用這種方式沒有辦法使用 網路磁碟機 (Map Network drive) ,只能透過 UNC \\102.168.1.1\share 的方式來連接.

    之前會發生錯誤就是使用 Run whether user is logged on or not + Map Network drive 的組合.

  2. Actions (Start a program)

    • program / script: 預設程式路徑為 c:\windows\System32\ ,我是直接輸入完整路徑 c:\windows\System32\robocopy
    • Add arguments (optional): \\192.168.1.1\test e:\test /MIR
      robocopy 參數請參考 http://benjr.tw/23731
  3. 其他就依據需求來設定.

還有兩點要注意一下

  1. 我是使用 Ben (administrator) 當作使用者,如果要使用其他使用者時需要注意他有沒有網路的存取權限,可以在 Local Security Policy (指令 secpol.msc /s) 中的 Local Policies / User Rights Assignment / Log on as batch job 新增該名使用者.
  2. 至於 使用者是甚麼身份登入到遠端資料夾,可以在 Control Panel / User Account / Credential Manager / Windows Credentials 先設定好 (Add a Windows credential)

實際 Task Scheduler 設定好的工作排程卻遇到以下的問題.

Missed task start rejected
Task Scheduler did not launch task as it missed its schedule. Consider using the configuration option to start the task when available, if schedul is missed. 

Microsoft 官網說明須更新 Hotfix – https://support.microsoft.com/en-us/help/2698800/task-scheduler-runs-a-missed-task-unexpectedly-on-a-computer-that-is-r

沒有解決問題,試試搜尋本站其他內容

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料