PS脚本失败时,计划任务失败

时间:2014-01-21 01:40:35

标签: powershell scheduled-tasks

我使用任务计划程序运行PowerShell脚本,我的问题是,当该脚本失败时,计划的任务不会失败,因此我不会收到通知。

所以当我在PowerShell上运行这个脚本时:

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

我得到以下异常:

enter image description here

但是,当我使用计划任务运行它时,任务不会失败。

如果脚本失败,怎么能让它失败?

我希望它失败的原因是因为当它失败时,我会收到电子邮件通知。如果您有任何其他方式,例如记录可以触发警报的事件,这也会很好。

我正在使用Windows Server 2008 R2。

谢谢,

2 个答案:

答案 0 :(得分: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

在我的情况下,我直接从脚本发送带有消息的电子邮件。

答案 1 :(得分: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”

希望这有助于某人。

艾哈迈德