获取有关Windows计划任务持续时间(执行时间)的信息 [英] Get informations on Windows Scheduled Task duration (execution time)

查看:26
本文介绍了获取有关Windows计划任务持续时间(执行时间)的信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有几台服务器,上面有数百个计划任务.而且要找到一个合适的维护窗口也变得有问题了。 是否有工具允许以图形方式(如在甘特图中)表示Windows任务计划程序事件?

除此之外,我一直在摆弄Powershell来使用get-scheduledtaskget-scheduledtaskinfo自己实现该工具,但是虽然它们确实提供了LastRunTimeNextRunTime属性,但我找不到有关任务的持续时间的信息。 我的意思是,如果我在早上9点开始一项任务,线程在9点10分返回,我确实在历史GUI中看到它运行了10分钟……但我不能使用PowerShell获得相同的信息。 有什么提示吗? 谢谢!

推荐答案

您要查找的信息没有作为任务的属性保存。您需要从任务历史记录中提取它。操作的开始和结束分别使用ID 200和201记录。

Get-WinEvent -FilterHashtable @{
    'LogName' = 'Microsoft-Windows-TaskScheduler/Operational'
    'ID'      = 200, 201
} | Group-Object ActivityID | ForEach-Object {
    $start = $_.Group |
             Where-Object { $_.Id -eq 200 } |
             Select-Object -Expand TimeCreated -First 1
    $end   = $_.Group |
             Where-Object { $_.Id -eq 201 } |
             Select-Object -Expand TimeCreated -First 1

    New-Object -Type PSObject -Property @{
        'TaskName'  = $_.Group[0].Properties[0].Value
        'StartTime' = $start
        'Duration'  = ($end - $start).TotalSeconds
    }
}

这篇关于获取有关Windows计划任务持续时间(执行时间)的信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆