Windows-Server-2008
Powershell 腳本是否可以從 Windows 2008 任務調度程序返回上次執行結果?
我在 Windows 2008 Server 上設置了一個計劃任務,其中包含兩個操作。第一個動作是執行一個連接到 SQL 數據庫並生成 XML 文件的應用程序。第二個操作是執行 Powershell 腳本。如果任務正確啟動,腳本只會發送一封郵件消息,說明任務已啟動,並附上數據提取應用程序創建的最新日誌文件。
如果計劃任務沒有啟動(昨晚沒有啟動,並且上次執行結果表明這是因為“此任務的一個實例已經在執行”)Powershell 腳本不會觸發,所以我們沒有得到一封電郵。這是任務未執行的快速指示,但是如果任務未執行,我希望 Powershell 腳本從任務調度程序返回上次執行結果(儘管每次都可以)。我是 Powershell 的初學者,而且我只是接觸了它的表面,所以這是可能的,還是我在問不可能?還有另一種明顯的方法嗎?我是否應該只使用一個操作來執行執行應用程序的 Powershell 腳本並觸髮帶有日誌/上次執行詳細資訊的通知電子郵件的計劃任務?
我已經找到了實現這一目標的方法。首先,我發現這篇文章Monitoring last result of scheduled tasks on Windows。這包含一個用 Perl 編寫的關於如何獲取計劃任務的上次執行結果的腳本。
我著手將其轉換為 Powershell,這就是我得到的
$taskName = "ETL" $result = (schtasks /query /FO LIST /V /TN $taskName | findstr "Result") $result = $result.substring(12) $lastResult = $result.trim()
然後我只需將值插入到電子郵件通知中。