2014-01-21 97 views
0

我使用Task Scheduler運行PowerShell腳本,我的問題是當腳本失敗時,計劃任務不會失敗,因此我不會收到通知。PS腳本失敗時失敗計劃任務

所以,當我運行PowerShell的這個腳本:

Add-PsSnapIn VeeamPSSnapIn 
$Job = Get-VBRJOB -name "Whatever" 
Start-VBRJOB -job $Job 

我得到以下異常:

enter image description here

然而,當我運行它使用計劃任務,任務不失敗。

腳本失敗時,我該如何才能讓它失敗?

我希望它失敗的原因是因爲當它失敗時,我收到電子郵件通知。如果您有任何其他的方式,比如記錄一個可以觸發警報的事件,這也會很好。

我正在使用Windows Server 2008 R2。

感謝,

回答

0

我終於實現了這個

Add-PsSnapIn VeeamPSSnapIn 
$Job = Get-VBRJOB -name "Type the job name here" 
$error.clear() #To make sure I'm checking next statement only 
Start-VBRJOB -job $Job 
if ($error.count -gt 0) 
{ 
    Write-EventLog –LogName Application –Source 「My Company」 –EntryType Error –EventID 1 –Message 「Whatever Message You Want" 
} 

然後我用任務計劃程序時出現錯誤1從源代碼「我的公司」被記錄發送電子郵件。 注意:您需要在PowerShell中使用這個命令來創建事件源「我的公司」:

New-EventLog –LogName Application –Source 「My Company」 

希望這可以幫助別人。

艾哈邁德

1

你試圖把你的代碼放到一個try/catch語句?

try 
{ 
    Add-PsSnapIn VeeamPSSnapIn 
    $Job = Get-VBRJOB -name "Whatever" 
    Start-VBRJOB -job $Job 
    $returnCode = 0 
} 
catch 
{ 
    $message = $_.exception.message 
    $returnCode = 1 
} 

return $returnCode 

在我的情況下,我直接從腳本發送電子郵件與郵件。

+0

謝謝,這也應該工作,我得到了我的工作,所以不會改變它。儘管這很簡單! – RonaDona

相關問題