Powershell 邮件通知计划任务运行失败

因为Win 2008 R2服务器上面有很多计划任务,邮件通知如果任务运行失败。因为任务运行失败会有不同的Event ID生成是日志里面,所以,如果有不同的Event ID,应该再做一个计划任务。

新建一个计划任务,类型如下,并设置做以下三个配置.

  • 选择Run whether user is logged on or not.
  • Triggers配置如下图.

  • Action 配置如下.

    Program script C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

  • Add arguments (optional) -command "C:\scripts\Task_Failed_Alert.ps1"

Task_Failed_Alert.ps1 脚本如下。

#This is script is for email alert when Event ID 101 occur in Task Scheduler.
$OutputFileLocation = "C:\scripts\Task_Failed_Alert.log"

Start-Transcript -path $OutputFileLocation -append

$ErrorMessage = wevtutil qe Microsoft-Windows-TaskScheduler/Operational "/q:*[System [(EventID=101)]]"  /f:text /rd:true /c:1 #Get EventID 101 lastest details in Operational log

$ComputerName = $ErrorMessage |select-string -pattern "computer"   #Display specific line.
$ComputerNames = $ComputerName.Line.Split(".")| Select-Object -first 1 #Split specific phrase.
$ErrorSubject = $ErrorMessage |Select-string -pattern "Additional Data" #Display specific line.
$ErrorSubjects = $ErrorSubject.Line.Split(".")| Select-Object -first 1 #Split specific phrase.
$ErrorSub = "$Computernames"  + " " + "$ErrorSubjects"

$ErrorMessage = $ErrorMessage |Out-String #Formatting string for email Body.

Send-MailMessage -From "[email protected]" -To "[email protected]" -Subject "$ErrorSub" -Body "$ErrorMessage" -SMTPServer SMTPSERVER
Write-Host "Mail message sent on $(Get-Date -format ‘s‘)"
Write-Host $ErrorMessage

可以新建一个任务来测试以上邮件通知是否成功,以权限不够的用户来运行这个任务,就可以产生Event ID 101的错误。

注意,不要设置默认记事本打开这个脚本,否则任务运行时就会以记事本来打开这个脚本,而不是PowerShell.exe来运行。

时间: 2024-10-15 07:40:31

Powershell 邮件通知计划任务运行失败的相关文章

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

一:Sonar是什么?Sonar 是一个用于代码质量管理的开放平台,通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理.在对其他工具的支持方面,Sonar 不仅提供了对

POWERSHELL 计划任务的创建,收集DC中失败的登录信息并邮件通知

(注:本文参考以下前辈文章修改而来,源文章连接:http://itadmindev.blogspot.hk/2011/07/powershell-ad-dc-failed-logins-report.html) 原脚本只用于收集统计AD,过去一天时内,EventID为4625帐户登录失败的IP.主机名及登录次数. EventID对应的内容可参考以下内容:http://support.microsoft.com/kb/947226/zh-cn 我现在依需求,修改为需要收集过去一天内,ID为4771

SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点. 所以,在本篇中将详细的分析下在SQL Server中的邮件通知功能及使用方式等. 本篇实现 1.通过SQL Server自带的邮件功能实现运维的预警及检测 2.利用数据库邮件组件代替传统的C#发送邮件的弊端 3.实现Job任务运行状态的检测 4.利用PowerShell实

自动同步文件并邮件通知

由于访问美国FTP服务器速度比较慢,所以希望有一个工具可以晚上自动同步美国FTP服务器上的文件到Win 2003本地共享盘并邮件提示是否有更新. 所需工具 FreeFileSync 6.11软件(自动同步文件软件) bmail.exe (发送邮件程序或其它同样功能的程序) 1. 首先我们使用FreeFileSync软件来创建一个同步计划,并保存为batch job. 2.写二个Bat脚本,CopyFTPtoShareFolder.bat,这个做为计划任务运行的脚本.FreeFileSync.ba

PowerShell 脚本通知Office365 同步错误

豆子公司是上市公司,每年都需要审计.因此离职用户的信息不能删掉,只能disable掉.有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件.但是Office365默认配置情况下 一个已经disable掉的用户,不管怎么改他都不会继续同步,这样造成的结果就是桌面经常修改的顺序不对,造成了本地的AD已经改了,但是修改的东西不会同步到office365, 或者直接office365认为已经有记录了,拒绝添加新的记录. 鉴于桌面支持的不靠谱,豆子每天都需要看看同步状态,然后

禅道及其数据库自动备份及短信、邮件通知脚本

一.添加SMTP服务器 在需要发送自动报警的服务器上修改如下文件,增加如下两行 # vim /etc/mail.rc set [email protected] smtp=smtp.126.com set smtp-auth-user=doteyplay smtp-auth-password=*** smtp-auth=login     当然,这里的SMTP服务器也可以使用别的,比如QQ的,但是QQ只能发几卦,在测试的时候,总报错:smtp-server: 454 Error: authent

PS查询即将过期的账号并邮件通知USER

############################################ #Content:检测AD密码过期时间并邮件通知 ############################################## Import-Module Activedirectory $alladuser=get-aduser -searchbase "ou=sz,DC=it581,DC=com" -filter *  | %{$_.Samaccountname} $userl

sqlalchemy中使用event设置条件触发短信与邮件通知

一.原因 近期在做短信与邮件通知系统.使用到了这一块.例如,当订单完成以后进行邮件短信的通知.虽然可以采用直接调用接口的方式实现,但有几个原因让我希望使用条件触发的方式 1.由于系统中支持线上线下以及代充值等多种方式,所以在多个地方订单改变状态.这样就让触发通知的代码凌乱分布. 2.系统将来扩建,需要新增加接口.则需要新增加调用的代码. 总而言之,直接调用将会增加维护难度.因此准备在订单的状态首次被置为支付成功时候进行短信与邮件的通知. 二.模块需求 短信与邮件的通知不能影响内部系统的运行,但由

Jenkins 配置邮件通知

jenkins 是一个开源的自动化服务器.通过Jenkins,可以通过自动化加速软件开发过程.Jenkins管理和控制各种开发的生命周期过程,包括构建,文档,测试,包,阶段,部署,静态分析等等.您可以设置Jenkins来监视像SVN和Git这样的地方的任何代码更改,使用Ant和Maven等工具自动执行构建,启动测试等.在构建失败.构建不稳定等状态还可以发送邮件通知,现介绍一下如何在 Jenkins中配置实现邮件通知. Jenkins内置的邮件通知并不能够满足我们,因为它无法定义发送的邮件格式,无