[英]SQL server agent not reporting failure from uncaught exception in PowerShell script
我已經設置了一個SQL Server代理程序作業,其中包含一些需要每周處理的步驟。 其中一個是PowerShell腳本,它將拋出以下(未捕獲的)自定義異常:
$endfile = Test-Path "C:\Temp\1_${loc}_${lastpayweek}.csv"
IF ($endfile -eq $true)
{
throw "target file already exists"
}
現在,當發生這種情況時,我可以在服務器代理歷史記錄中看到拋出了異常,但仍然報告該步驟是成功的。 如果沒有失敗,服務器代理將不會發送通知電子郵件讓我知道失敗。
我這樣調用PowerShell腳本:
powershell C:\scripts\rename_timesheet_export.ps1 -loc 3
為什么報道成功?
你需要設置$ ErrorActionPreference來停止:
$ ErrorActionPreference =“停止”
默認情況下,此項設置為“繼續”,因此從SQL Agent調用Powershell時,除非您更改設置,否則作業將繼續出錯。
我還有一些關於從SQL Agent調用Powershell的技巧: http : //blogs.technet.com/b/heyscriptingguy/archive/2013/05/06/10-tips-for-the-sql-server-powershell- scripter.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.