我使用任务计划程序运行PowerShell脚本,我的问题是,当该脚本失败时,计划的任务不会失败,因此我不会收到通知。
所以当我在PowerShell上运行这个脚本时:
Add-PsSnapIn VeeamPSSnapIn
$Job = Get-VBRJOB -name "Whatever"
Start-VBRJOB -job $Job
我得到以下异常:
但是,当我使用计划任务运行它时,任务不会失败。
如果脚本失败,怎么能让它失败?
我希望它失败的原因是因为当它失败时,我会收到电子邮件通知。如果您有任何其他方式,例如记录可以触发警报的事件,这也会很好。
我正在使用Windows Server 2008 R2。
谢谢,
答案 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”
希望这有助于某人。
艾哈迈德