簡體   English   中英

SQL Server代理未報告PowerShell腳本中未捕獲的異常導致的失敗

[英]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

這是你的答案:

為什么我的powershell退出代碼始終為“0”?

很多事情說使用-file是問題,但看起來你不是

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM