如何将失败任务名称传递到Event Log EventID 203的操作参数中?
解决方案:直接通过任务计划程序预定义变量传递任务名称
完全可以不用折腾遍历事件日志!Windows任务计划程序自带了预定义变量,能直接把任务名称、事件ID等关键数据作为命令行参数传给你的VB脚本,具体操作步骤如下:
1. 配置计划任务的触发与操作
- 打开任务计划程序,找到目标任务,右键选择属性
- 切换到触发器选项卡:确保你已经创建了「任务失败时」触发的触发器(如果没有,点击「新建」选择触发条件为「任务失败」)
- 切换到操作选项卡:编辑现有的启动VB脚本的操作(或者新建一个「启动程序」操作,指向你的VBS脚本路径)
2. 添加任务名称参数
在操作的「添加参数(可选)」输入框中,直接填入任务计划程序的预定义变量:
$(TaskName)
如果需要同时传递其他信息(比如失败事件的ID),还可以追加其他变量,比如:
$(TaskName) $(EventID)
小提示:点击参数输入框右侧的「...」按钮,能打开「插入变量」对话框,里面列出了所有可用的预定义变量,比如任务路径、触发时间等,按需选择即可。
3. 修改VB脚本接收参数
你的VB脚本需要通过WScript.Arguments对象来接收命令行参数,示例代码如下:
' 接收任务名称参数 Dim taskName If WScript.Arguments.Count > 0 Then taskName = WScript.Arguments(0) Else taskName = "未知任务" ' 兜底处理 End If ' 示例:构建邮件内容 Dim emailBody emailBody = "任务 [" & taskName & "] 执行失败,请及时排查!" ' 这里放你原有的发送邮件代码...
4. 验证功能
手动触发任务失败(比如临时修改脚本路径为不存在的地址),检查发送的邮件是否正确包含了失败任务的名称。
这样设置后,每次任务失败触发脚本时,都会自动把任务名称传递过去,完全不需要去遍历事件日志查找,效率高得多!
内容的提问来源于stack exchange,提问作者Peter Holloway
相关产品推荐
相关产品推荐

