公司有很多Server都寫了一些 bat 檔掛在排程執行,例如清除 Log、重啟 Service 等,如果想要知道有沒有正確執行,就要一台一台進去檢查,相當麻煩。因此自己做了一個 WinForm 程式,由它來統一執行各 Server 的 bat 檔,不管執行成功或失敗就記錄下來,如此每天只要檢查記錄清單就知道執行狀況了。
想要執行遠端 Server 的檔案,因為安全性考量是不被允許的,需要透過特殊工具才行,在此是使用 PsTools 的 PsExec,它可以指定要執行哪台 Server 的哪個路徑裡的程式、使用哪個帳密來執行。
到 PsTools 官網下載後直接解壓縮,將所有檔案複製到主控端這台 Server 的 Windows\System32 裡面即可。
以下是我的程式碼範例,詳細使用情形可參考官網:
Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo { FileName = "psexec.exe", Arguments = string.Format(@" \\{0} {1}", serverIP, batPath), UseShellExecute = false, CreateNoWindow = true, RedirectStandardError = true, RedirectStandardOutput = true }; process.StartInfo = startInfo; process.Start();
參考來源:stackOverflow
沒有留言:
張貼留言