- Remove From My Forums
Не срабатывает планировщик заданий по расписанию
-
Вопрос
-
Добрый вечер, может кто тоже сталкивался и знает как решить проблему с планировщиком задач, уже все интернеты перерыл, инфы — море, нужной — ноль.
Проблема на 2016ом сервере, с отработкой задач по расписанию, хотя скорее всего дело не в ОС, если задаю время события минут через 5-7, то оно отрабатывают в планировщике как нужно, если ставлю например
на 5 утра, то в 9 смотрю — ничего не отработано.
Сами задачи простые — запускаются батники, которые делают бэкапы определенных локальных папок с важными данными каждую ночь, галки везде стоят «выполнять с наивысшими правами», вообще экспериментировал
с этими галками — эффекта ноль.
В прошлом никогда с планировщиком проблем не было, в 3х организациях в разное время настроил все тоже самое — отрабатывает на ура, в одной из них такой же 2016 сервак стоит, но в четвертой не хочет
по расписанию и все тут, прям мистика какая то, подскажите пожалуйста куда копать.-
Изменено
11 декабря 2019 г. 17:25
-
Изменено
Ответы
-
Добрый вечер, может кто тоже сталкивался и знает как решить проблему с планировщиком задач, уже все интернеты перерыл, инфы — море, нужной — ноль.
Проблема на 2016ом сервере, с отработкой задач по расписанию, хотя скорее всего дело не в ОС, если задаю время события минут через 5-7, то оно отрабатывают в планировщике как нужно, если ставлю например
на 5 утра, то в 9 смотрю — ничего не отработано.
Сами задачи простые — запускаются батники, которые делают бэкапы определенных локальных папок с важными данными каждую ночь, галки везде стоят «выполнять с наивысшими правами», вообще экспериментировал
с этими галками — эффекта ноль.
В прошлом никогда с планировщиком проблем не было, в 3х организациях в разное время настроил все тоже самое — отрабатывает на ура, в одной из них такой же 2016 сервак стоит, но в четвертой не хочет
по расписанию и все тут, прям мистика какая то, подскажите пожалуйста куда копать.Здравствуйте.
Что-то уже было подобное (похожая тема)…
Обратите внимание на свойства триггера «Начать» и «Срок действия»:
Из за этих настроек задание может некорректно отработать в плане того, что запустится на сутки позже, то есть не в 5 утра в тот день, когда Вы смотрите, а только на следующий день.
Alexandr_Smirnoff
-
Предложено в качестве ответа
Vector BCOModerator
16 декабря 2019 г. 0:13 -
Помечено в качестве ответа
Petko KrushevMicrosoft contingent staff, Moderator
24 декабря 2019 г. 7:08
-
Предложено в качестве ответа
-
1. Если через 5-7 минут отрабатывает, а в 9 утра нет, то посмотрите наличие птицы «Выполнять только для пользователей вошедших в систему». Если она стоит, то нужно снять и поставить птицу «выполнять для всех пользователей…»
2. Как у вас реализована периодичность? Однократный запуск с повторением или каждодневный запуск ?
-
Предложено в качестве ответа
Vector BCOModerator
16 декабря 2019 г. 0:13 -
Помечено в качестве ответа
Petko KrushevMicrosoft contingent staff, Moderator
24 декабря 2019 г. 7:07
-
Предложено в качестве ответа
-
Разные dism / sfc пока
не пробовал, но ОС почти девственно чистая, более менее обновленная, из софта только 1с:Предприятие, остальное типичный софт типа архиватора и браузера (никаких сисиклинеров и прочей лабуды), антивирус — защитник виндовс (фарева), Сейчас ставлю
обновы, но они только вчера вышли, не думаю что что то изменитьсяа что с логами и падением служб? dism /online /cleanup-image /restorehealth и sfc /scannow можно бы тоже попробовать. Обе команды безболезненны, но после них может потребоваться перезагрузка
The opinion expressed by me is not an official position of Microsoft
-
Предложено в качестве ответа
Vector BCOModerator
16 декабря 2019 г. 0:13 -
Помечено в качестве ответа
Petko KrushevMicrosoft contingent staff, Moderator
24 декабря 2019 г. 7:08
-
Предложено в качестве ответа
Большинство пользователей и администраторов привыкли использовать графический интерфейс консоли Taskschd.msc для создания заданий планировщика Windows (Task Scheduler), запускаемых по расписанию. Однако в различных скриптах и автоматизируемых задачах для создания заданий планировщика гораздо удобнее использовать возможности PowerShell. В этой статье мы покажем, как создавать и управлять заданиями планировщика Windows из PowerShell.
Содержание:
- Управление заданиями Task Scheduler с помощью PowerShell
- Как создать задание планировщика с помощью PowerShell?
- Получение информации и запуск заданий планировщика из PowerShell
- Экспорт и импорт заданий планировщика в XML файл
Управление заданиями Task Scheduler с помощью PowerShell
В Windows 10/Windows Server 2016 для управления задачами в планировщике используется PowerShell модуль ScheduledTasks. Список командлетов в модуле можно вывести так:
Get-Command -Module ScheduledTasks
- Disable-ScheduledTask
- Enable-ScheduledTask
- Export-ScheduledTask
- Get-ClusteredScheduledTask
- Get-ScheduledTask
- Get-ScheduledTaskInfo
- New-ScheduledTask
- New-ScheduledTaskAction
- New-ScheduledTaskPrincipal
- New-ScheduledTaskSettingsSet
- New-ScheduledTaskTrigger
- Register-ClusteredScheduledTask
- Register-ScheduledTask
- Set-ClusteredScheduledTask
- Set-ScheduledTask
- Start-ScheduledTask
- Stop-ScheduledTask
- Unregister-ClusteredScheduledTask
- Unregister-ScheduledTask
Совет. Ранее в Windows для создания и управления заданиями планировщика в основном использовались встроенная консольная утилита schtasks.exe.
Как создать задание планировщика с помощью PowerShell?
В современных версиях PowerShell (начиная с PowerShell 3.0 в Windows Server 2012/Windows для создания заданию планировщика нужно использовать командлеты New-ScheduledTaskTrigger и Register-ScheduledTask.
Предположим, наша задача создать задание планировщика, которое должно запускаться при загрузке компьютера (или в определенное время) и выполнять какой-то PowerShell скрипт. Создадим задание планировщика с именем StartupScript_PS. Данное задание должно каждый день в 10:00 запускать PowerShell скрипт, хранящийся в файле C:PSStartupScript.ps1 из-под учетной записи системы (SYSTEM). Задание будет выполняться с повышенными привилегиями (галка “Run with highest privileges”).
$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
$User= "NT AUTHORITYSYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:PSStartupScript.ps1"
Register-ScheduledTask -TaskName "StartupScript_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
Если задание успешно создано, появится надпись Ready.
Теперь ваш PowerShell скрипт будет запускаться по указанному расписанию. Если на вашем компьютере настроена PowerShell Execution Policy, блокирующая запуск скриптов PS1, вы можете запустить скрипт их планировщика с параметром –Bypass.
Используйте такую строку при создании нового задания:
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument “-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:PSStartupScript.ps1"
Совет. Если нужно, чтобы задание запускалось каждый раз при загрузке компьютера, первая строка должна быть такой:
$Trigger= New-ScheduledTaskTrigger -AtStartup
Если нужно выполнять задание при входе пользователя:
$Trigger= New-ScheduledTaskTrigger –AtLogo
n
Откройте консоль
Taskschd.msc
и проверьте, что проверьте, что в Task Scheduler Library появилось новое задание планировщика.
В версии Powershell 2.0 (Windows 7, Windows Server 2008 R2) для создания повторяющегося задания (ScheduledJob) из PowerShell необходимо воспользоваться COM интерфейсом Schedule.Service (либо обновите версию PowerShell). В этом примере мы создадим задание планировщика, которое во время запускает определённый файл с PowerShell скриптом во время загруки. Задание выполняется с правами системы (System).
$TaskName = "NewPsTask"
$TaskDescription = "Запуск скрипта PowerShell из планировщика"
$TaskCommand = "c:windowssystem32WindowsPowerShellv1.0powershell.exe"
$TaskScript = "C:PSStartupScript.ps1"
$TaskArg = "-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted -file $TaskScript"
$TaskStartTime = [datetime]::Now.AddMinutes(1)
$service = new-object -ComObject("Schedule.Service")
$service.Connect()
$rootFolder = $service.GetFolder("")
$TaskDefinition = $service.NewTask(0)
$TaskDefinition.RegistrationInfo.Description = "$TaskDescription"
$TaskDefinition.Settings.Enabled = $true
$TaskDefinition.Settings.AllowDemandStart = $true
$triggers = $TaskDefinition.Triggers
#http://msdn.microsoft.com/en-us/library/windows/desktop/aa383915(v=vs.85).aspx
$trigger = $triggers.Create(8)
Получение информации и запуск заданий планировщика из PowerShell
Вы можете вывести список всех активных заданий планировщика в Windows с помощью команды:
Get-ScheduledTask -TaskPath | ? state -ne Disabled
Чтобы получить информацию о конкретном задании:
Get-ScheduledTask CheckServiceState_PS| Get-ScheduledTaskInfo
LastRunTime : 4/6/2021 10:00:00 AM LastTaskResult : 267011 NextRunTime : 4/7/2021 10:00:00 AM NumberOfMissedRuns : 0 TaskName : CheckServiceState_PS TaskPath : PSComputerName :
Вы можете отключить это задание:
Get-ScheduledTask CheckServiceState_PS | Disable-ScheduledTask
Чтобы включить задание:
Get-ScheduledTask CheckServiceState_PS | Enable-ScheduledTask
Чтобы запустить задание немедленно (не дожидаясь расписания), выполните:
Start-ScheduledTask CheckServiceState_PS
Чтобы полностью удалить задание из Task Scheduler:
Unregister-ScheduledTask -TaskName CheckServiceState_PS
Если нужно изменить имя пользователя, из-под которого запускается задание и, например, режим совместимости, используйте командлет Set-ScheduledTask:
$task_user = New-ScheduledTaskPrincipal -UserId 'winitprokbuldogov' -RunLevel Highest
$task_settings = New-ScheduledTaskSettingsSet -Compatibility 'Win7'
Set-ScheduledTask -TaskName CheckServiceState_PS -Principal $task_user -Settings $task_settings
При появлении ошибки “Set-ScheduledTask : No mapping between account names and security IDs was done” проверьте, что у вас указано правильное имя пользователя.
Экспорт и импорт заданий планировщика в XML файл
С помощью PowerShell можно экспортировать любое задания планировщика в текстовый XML файл для распространения на другие компьютеры. Вы можете экспортировать задание из графического интерфейса Task Scheduler или из консоли PowerShell.
Следующая команда экспортирует задание StartupScript_PS в файл StartupScript_PS.xml:
Export-ScheduledTask "StartupScript_PS" | out-file c:tempStartupScript_PS.xml
Командлет Export-ScheduledTask не доступен в PowerShell 2.0. Поэтому в Windows 7 / 2008 R2 для экспорта настроек задания в XML файл лучше воспользоваться встроенной утилитой schtasks, вывод которой нужно перенаправить в текстовый файл:
schtasks /query /tn "NewPsTask" /xml >> "c:psNewPsTask.xml"
После того, как настройки задания планировщика экспортированы в XML файл, его можно импортировать на любой другой компьютер с помощи графической консоли, SchTasks.exe или PowerShell.
Воспользуйте командлетом PowerShell Register-ScheduledTask чтобы параметры задания из файла и зарегистрировать его:
Register-ScheduledTask -Xml (Get-Content “\Server1publicNewPsTask.xml” | out-string) -TaskName "NewPsTask"
Примечание. В PowerShell 2.0 (Windows 7/Server 2008 R2) импорт задания также проще выполнить с помощью утилиты schtasks. Первая команда создаст новое задание. Вторая – сразу запустит его (не дожидаясь срабатывания триггера).
schtasks /create /tn "NewPsTask" /xml "\Server1publicNewPsTask.xml " /ru corpaaivanov /rp Pa$$w0rd
schtasks /Run /TN "NewPsTask"
Обратите внимание, что в этом примере указаны данные учетной записи, из-под которой будет запускаться задание. Если имя и пароль учетной записи не указаны, то т.к. они не хранятся в задании, они будут запрошены при импорте.
- Remove From My Forums
-
Question
-
I’m trying to use Task Scheduler in Server 2016 to upload files to a vendors AWS S3 bucket. Nothing has worked using Task Scheduler.
If I run the .bat script on it’s own it works just fine and the files are uploaded, but not in Task Scheduler.
If I run the same commands in a Powershell script on it’s own it runs just fine and the files are uploaded, but not in Task Scheduler.
Task Scheduler history logs says, «Task completed» as you can see from the image I attached.
Settings I have in Task Scheduler:
- Run whether user is logged on or not
- Run with highest privileges
- Configure for Windows Server 2016
- Repeat task every 5 minutes for a duration of Indefinitely
- Enabled
- Action: Run a Program
- Program/script «C:scriptsname_of_file.bat
- Star in c:scripts
Does Server 2016 have some kind of safety feature that I need to enable for this to work in Task Scheduler?
I am a Domain Admin.
-
Edited by
Sunday, February 3, 2019 9:59 PM
- Remove From My Forums
-
Question
-
I’m trying to use Task Scheduler in Server 2016 to upload files to a vendors AWS S3 bucket. Nothing has worked using Task Scheduler.
If I run the .bat script on it’s own it works just fine and the files are uploaded, but not in Task Scheduler.
If I run the same commands in a Powershell script on it’s own it runs just fine and the files are uploaded, but not in Task Scheduler.
Task Scheduler history logs says, «Task completed» as you can see from the image I attached.
Settings I have in Task Scheduler:
- Run whether user is logged on or not
- Run with highest privileges
- Configure for Windows Server 2016
- Repeat task every 5 minutes for a duration of Indefinitely
- Enabled
- Action: Run a Program
- Program/script «C:scriptsname_of_file.bat
- Star in c:scripts
Does Server 2016 have some kind of safety feature that I need to enable for this to work in Task Scheduler?
I am a Domain Admin.
-
Edited by
Sunday, February 3, 2019 9:59 PM
Время 10-50, а толку ноль
Сервис запущен — задания не выполняются.
Журнал пустой.
На 7 без проблем всё это дело работает…
Есть идеи?
В общем бред, если ставить однократно и повторы — то работает по повторам, если ежедневно и повторы — то уже не работает (в 7 работало)
-
Вопрос заданболее трёх лет назад
-
2560 просмотров
Пригласить эксперта
Это известный, хоть и малообсуждаемый баг 2016 сервера. Обещают исправить в осеннем апдейте.
Баг заключается в том, что автоповтор перестаёт работать после ребута сервера.
Костыль — перевести дату первого запуска на будущее значение, чтобы система его заново стартонула и пошла обрабатывать. И таким образом переводить стрелки задач после каждого ребута.
Подробно описано:
https://answers.microsoft.com/en-us/windows/forum/…
-
Показать ещё
Загружается…
07 февр. 2023, в 23:29
3000 руб./за проект
07 февр. 2023, в 23:29
51000 руб./за проект
07 февр. 2023, в 23:02
2000 руб./за проект
Минуточку внимания
Столкнулся с невозможностью настроить периодичность резервного копирование реже одного раза в сутки в Windows Server Backup. ОС Windows Server 2016. Проблему легко можно решить через Task Scheduler.
Я настроил резервное копирование через Windows Server Backup с периодичностью раз в сутки:
Windows Server 2016 — настройка Windows Server Backup
Теперь мне нужно изменить частоту резервного копирования на раз в неделю. Через Windows Server Backup этого сделать не удастся. Запускаем Task Scheduler:
Заходим в Task Scheduler Library > Microsoft > Windows > Backup.
Видим расписание нашего резервного копирования. Каждый день в 1:00. Редактируем:
Переходим в триггеры, редактируем.
Легко устанавливаем периодичность раз в неделю по воскресеньям в 0:10. Ok.
Указываем логин-пароль пользователя, от имени которого настраивали резервное копирование. OK. Готово
Примечательно, что если посмотреть в оснастке Windows Server Backup, то он всё ещё считает, что бэкап будет каждый день.
Однако если посмотреть туда же через несколько дней, то увидим следующее:
Видно, что первый бэкап сделался 3-го числа, но уже 9-е, а Oldest copy так и стоит 3-е число. Бэкап будет запущен согласно расписанию в Task Scheduler.