Продолжительность задач с Windows Планировщик задач - PullRequest
0 голосов
/ 07 января 2020

Можно ли узнать продолжительность определенной задачи для расчета от «Создан процесс задачи» до «Задача выполнена»? Планировщик задач показывает только время последнего выполнения, но не продолжительность всего выполнения.

1 Ответ

0 голосов
/ 07 января 2020

Вы можете сделать что-то вроде следующего:

$TaskName = '\Task Name'
$StartTime = (Get-Date).Adddays(-7)
$EndTime = Get-Date
$filter = @{ LogName = 'Microsoft-Windows-TaskScheduler/Operational'
             ID = 129,102
             StartTime = $StartTime
             EndTime = $EndTime
             Data = $TaskName
          } 

Get-WinEvent -FilterHashTable $filter | Select-Object TimeCreated,@{n='Action';e={$_.TaskDisplayName}}

Объяснение:

Для $TaskName необходимо ввести имя задачи точно так, как оно будет показано в (Get-WinEvent).Properties. Вы также можете увидеть это точное имя в сообщениях истории задач. Скорее всего, в названии будет указана обратная косая черта sh.

Вы можете установить $StartTime и $EndTime так, как вам нравится. Наличие временного интервала ускоряет время поиска запроса.

$filter - это место, где происходит волхв c. В конечном итоге он будет введен в параметр -FilterHashTable. Поскольку ключ ID может принимать массив [int], мы можем просто разделить значения запятыми. 129 - это Created Task Process. 102 - это Task Completed. Data не принимает подстановочные знаки, поэтому мы должны быть точными с именем задачи, как это будет показано в свойстве System.Diagnostics.Eventing.Reader.EventProperty. Если вы не используете Data, вам придется полагаться на Where-Object для дальнейшей фильтрации данных вашей задачи по имени задачи, что будет значительно медленнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...