После подключения нового сервера к системе мониторинга я обнаружил, что каждую ночь около 04:00 часов возникает значительная загрузка процессора.
Свой скрипт я настроил на запуск в 23:00, поэтому нагрузка в 4 утра меня несколько смутила. Были у меня предположения, что это скорее всего либо антивирус проверки делает, либо нагрузка связана с обновлениями. Нужно было точно определить, что за задача отрабатывает в это время. Определить список всех достаточно просто, с помощью командлета Get-ScheduledTask. Однако определить время следующего запуска, оказалась не такая тривиальная задача.
Для получения времени запуска задачи по поиску обновлений, необходимо провалиться в .Triggers.StartBoundary , а иногда ещё глубже. Но для поиска моей задачи этого было достаточно.
Я написал скрипт, которым и хотел бы поделиться.
Clear-Host
$Array = @()
$Tasks = Get-ScheduledTask
$logFile = "D:\work\tasks.csv"
$Tasks | ForEach-Object {
$Data = [PSCustomObject]@{
TaskName = $_.TaskName