我的工作環境中,有台Server上安排了數十個排程VBS檔進行一些背景作業。由於這數十個排程都需要指定特別的帳號去執行,傳統排程的建立都靠手動,一旦要部署到新機器上或是當排程身份要變更(例如: 換Password)時,就是件頭大的事。
排程的複製倒可以透過Copy X:\WINDOWS\TASKS下的*.job完成,但是這無法解決指定帳號/密碼的問題。依據先前Consult微軟的經驗,似乎無解!
最近面臨了要更換密碼的需求,所以我很用心地去Google拜了一下,沒想到很快就挖到一個寶:
* SchTasks.exe的使用說明 http://support.microsoft.com/kb/814596/?sd=RMVP&fr=1
原來Windows XP有個SchTasks.exe的命令列工具,可以DOS指令的方式完成排程工作的管理。那Windows 2000呢? 將SchTasks.exe Copy到Windows 2000下執行,會有以下的下場:

版本不合,不能用! 幸好,此時挖到了第二個寶! 原來這個程式在本質上是可以跟Windows 2000相容的,發揮駭客精神,用UltraEdit修改程式其中的一個Byte,就可以瞞天過海了!

試用了一下,果然就可以利用SchTasks在Windows 2000上設排程密碼,終於可以解決惱人的排程部署及管理問題,爽快!!
D:\WUTemp>schtasks /change /tn zschtaskdemo /ru labs\userX /rp blahblah
成功: 排程工作 "zschtaskdemo" 的參數已經變更。

Comments

# by 小熊子

很久以前我們就不用 工作管理員 了,因為<BR/>1.不易檢核<BR/>2.有錯不容易找到當時執行狀況<BR/>3.常常排程不跑<BR/>後來都用SQL Server Job 來做,可以參考看看。

# by Darkthread

嗯... 同意! 很密集的排程(例如: 1分鐘一次),如果允許用.NET,我會寫成Windows Service(這樣比較專業,或用周董的話說--看起來比較屌)。<BR/>我後來才知道這幾台上線機器也遇到忽然排程不跑的情況,要Relogon才會恢復,加上你的經驗,看來Scheduled Task可靠度真的不佳。

# by Wkk

請問那個"75"byte要改成什麼才可在2000下正常運作 謝謝

# by Jeffrey

To Wkk, 文中的連結網頁似乎不見了,我Google了一下,可以參考這篇: http://makemsi-manual.dennisbareis.com/schtasks_exe.htm

Post a comment