ank*_*_91 5 windows powershell taskscheduler
我有一个 powershell 脚本,它会触发一封电子邮件,我已将其另存为EmailScript.PS1(该脚本没有问题,它运行得很好)。我计划每当登录事件时安排此脚本,例如:
Event ID:111 Description:Task terminated
Run Code Online (Sandbox Code Playgroud)
每当触发所需事件时,我就能够成功地安排此脚本。
但是,目前它考虑了xyz任务计划程序中运行的所有任务(例如,不是我命名的目标任务)。
我想仅在特定任务(不是所有任务)触发事件时安排此基于事件的任务,但在任务计划程序创建任务选项卡中找不到这样的过滤器/下拉列表。
任何建议/帮助将不胜感激。
我建议使用自定义 XML 事件过滤器来执行此操作,因为它可以让您更灵活地选择要触发的事件类型。
为此,请执行以下操作:
注意:确保将TASK_NAME_HERE替换为您要触发的任务的名称。此外,如果您想触发不同的事件类型,则可以将TaskSuccessEvent替换为不同的事件名称。
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[EventData[@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\TASK_NAME_HERE']]</Select>
</Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)
编辑:要匹配特定任务的多个事件 ID,您可以执行以下操作:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">
*[EventData[Data[@Name='TaskName']='\TASK_NAME_HERE']]
and
*[System[(EventID='102' or EventID='103')]]
</Select>
</Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)
如需其他阅读,请参阅以下内容: https: //blogs.technet.microsoft.com/askds/2011/09/26/advanced-xml-filtering-in-the-windows-event-viewer/
| 归档时间: |
|
| 查看次数: |
17672 次 |
| 最近记录: |