Windows 工作排程 + 網路芳鄰 要登入才能用?

Windows 工作排程有一項設定是: "不論使用者登入與否皆執行". 這個設定非常適合主機上有例行性的工作, 管理員不需要登入主機也可以自動運作.

但是這一個設定, 在使用網路芳鄰時卻會遇到問題, 就是工作排程執行時的環境, 與使用者登入時的環境並不同, 如果連線網路芳鄰並取一個磁碟代號(例如: N: ), 在工作排程登入時, 是不會有 N: , 如果要執行的程式設定從 N: 讀寫資料, 在設定"不論使用者登入與否皆執行"的情況下就會發生異常.

要克服這個情況, 就必須在程式執行前, 再完成一次連線網路磁碟機的動作, 所以把原本工作排程執行特定程式, 改成執行一個包裝後的批次檔, 批次檔內容則是:

  • if not exist n:\. net use n: \\ip\share
    或 (net use | find "N:") || (net use n: \\ip\share)
  • (原本要執行的程式)
這樣就可以讓程式需要的網路磁碟環境符合需求了.