2016-04-14

[工具] 寫程式去執行遠端 Server 的程式

公司有很多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

沒有留言:

張貼留言