在我们运行 Windows Server 2008 R2 的生产节点之一中,我们注意到在星期六早上(00:00 到 07:30 左右)处理请求(由我们在 tomcat 上运行的应用程序)时存在显著延迟(正常情况下的 5 倍)。应用程序提供商要求我们提供计划在该时间段内运行的任务,以便进行故障排除。
有什么方法可以查看该期间运行的所有计划任务(本地和远程触发)?如果我能看到过去(比如说五个星期六早上)运行的所有计划任务的历史记录,那就太好了。
我尝试了任务计划程序。但是它只显示本地计划,并且没有明显的方式过滤视图以仅显示与案件相关的计划(在本案中为周六上午)。
最初是在 stackoverflow 上询问的(我可能会补充说,这是错误)。https://stackoverflow.com/q/24751302/1479093)
答案1
如果这是通过任务计划程序运行的,您可以查看事件日志以查看在此期间运行了哪些内容。它会相当冗长,因此您需要过滤掉经常发生的事件,但它可能会帮助您深入了解问题。
事件查看器->应用程序和安全日志->微软->视窗->任务计划程序->操作应包含该信息。
您还可以使用 Powershell 解析日志。请参阅此链接: http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/24/use-powershell-cmdlet-to-filter-event-log-for-easy-parsing.aspx
祝你好运!
答案2
使用任务计划程序事件 ID在 MSDN 上作为参考,运行 Powershell 查询以列出已发生的相关任务计划程序事件。
例如,这将列出与事件 ID 107(由时间触发器执行)相对应的所有任务。
Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational | ? { $_.Id -eq 107 }
然后,您可以轻松筛选日期,选择不同的字段/成员,并将其全部写入一个文件,然后通过电子邮件发送给您的应用程序提供商以供审核。如果您想更花哨,您可以使用 Powershell 转储性能日志数据并尝试一些关联。