mar*_*rko 4 task-scheduler windows-server-2008-r2
我有一个计划任务,当应用程序发生某些事情时会发送电子邮件。现在我想在电子邮件中也发送事件的消息详细信息。怎么做?
在带有任务计划程序的 Windows Server 2008 R2 中。
实现这一点的唯一方法是一些解决方法(在我看来)。您需要为您的任务创建两个操作。步骤如下:
详细过程如下:http : //blogs.technet.com/b/jhoward/archive/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger。 aspx
小智 5
这不是实现它的唯一方法。实际上至少有一种更好的方法可以在 Windows Server 2008 中工作:
总而言之,您需要将任务定义导出到 xml,在文本编辑器中为您想要的数据添加一些 xpath 查询,更新您的命令行,然后将更新后的任务定义导入回任务计划程序。
导出后打开 xml 文件并找到 <EventTrigger> 节点。
创建子节点 <ValueQueries>
<ValueQueries>
<Value name="EventID">Event/System/EventRecordID</Value>
<Value name="Channel">Event/System/Channel</Value>
</ValueQueries>
Run Code Online (Sandbox Code Playgroud)
然后,您可以在命令行中使用 $(EventID) 和 $(Channel) 引用此值查询数据。从我的测试电子邮件事件中,没有正确替换这些值。相反,您需要执行命令行。当然,您可以向事件中的任何数据添加 xpath 查询,这些只是示例。
在将这些数据查询中的某些数据传递到命令行时,您可能还会遇到一些挑战(各种字符,包括引号、斜杠等……可能与您的命令解释器中的特殊字符冲突)。为了缓解这种情况,我使用上面定义的两个参数,然后使用 wevtutil 检索剩余的事件数据:
wevtutil qe "$(Channel)" /q:"*[System[(EventREcordID=$(EventID)]]" /f:xml
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用生成警报的事件记录的完整 xml 文本执行您想要的操作(例如发送电子邮件、解析 xml 等...)
例如,您可以在任务中定义以下操作以将事件 xml 写入磁盘:
<Exec>
<Command>powershell.exe</Command>
<Arguments>start-transcript -path C:\alertlog.log -append; add-content -path C:\output.txt -value (wevtutil qe "$(Channel)" /q:"*[System[(EventRecordID=$(EventID))]]" /f:xml); stop-transcript;</Arguments>
</Exec>
Run Code Online (Sandbox Code Playgroud)
引用的博客文章更详细。
| 归档时间: |
|
| 查看次数: |
7806 次 |
| 最近记录: |