Windows server task scheduler перезагрузка сервера

Обновлено: 07.07.2024

Планировщик задач Windows Server помогает выполнять заданные пользователем программы в точно указанное заранее время или в роли реакции на определенные события системы. Данная статья представляет собой инструкцию по тщательной настройке планировщика, в том числе по созданию нового задания в операционной системе Windows Server 2016.

планировщик заданий

Доступ к планировщику

Чтобы запустить планировщик задач Windows Server, выполните следующее:

  1. Откройте классическую Панель управления
  2. Перейдите в ней в раздел под названием Система и безопасность
  3. В области Администрирование выберите команду Расписание выполнения (рис. 1).

настройка планировщика заданий

Рис. 1. Панель управления

Появится окно планировщика (рис. 2).

настройка планировщика заданий

Рис. 2. Планировщик

Создание нового простого задания

На панели расположенной справа выберите команду Создать простую задачу. Появится окно Мастер создания простой задачи. Далее введите имя и описание (рис. 3).

настройка планировщика заданий, создание простой задачи

Рис. 3. Мастер создания нового задания

После этого выбираете, как часто вы хотите запускать процесс: ежедневно, раз в неделю, раз в месяц, при запуске компьютера, при выполнении входа в систему, при специфическом событии (рис. 4).

настройка планировщика заданий. настройка триггера

Рис. 4. Настройка триггера

Укажите дату и время начала работы, а также периодичность, например, запуск команды раз в 2 дня.

настройка планировщика заданий. настройка триггера

Рис. 5. Дата и время начала выполнения

выбор типа триггера. настройка планировщика заданий

Осталось выбрать имя исполнимого (exe) файла программы или сценария, указать аргументы и рабочую папку. Указывать аргументы и папку — необязательно.

настройка планировщика заданий

Рис. 7. Выбор программы

На следующей странице просмотрите сводку — все ли правильно и, если да, то нажмите кнопку Готово. Созданное вами задание появится в списке (рис. 8).

настройка планировщика заданий

Рис. 8. Список планировщика

Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям Конфигурация VPS и бесплатный тест уже через 2 минуты Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Создание нового обычного задания

Команда Создать задачу отличается от команды Создать простую задачу тем, что вы не увидите окно мастера создания задачи. Вместо него будет окно Создание задачи, где можно определить параметры более гибко.

настройка планировщика заданий. создание задачи

Рис. 9. Создание

настройка планировщика заданий. условия запуска

Рис. 10. Условия запуска

В отличие от простой задачи, при создании обычной вы можете сформировать несколько триггеров.

настройка планировщика заданий. триггеры

Рис. 11. Триггеры

настройка планировщика заданий. запуск программы

Рис. 12. Создание действия

настройка планировщика заданий

Рис. 13. Определенные действия

Вкладка Условия позволяет задать дополнительные условия выполнения задания, например, запускать задачу при простое компьютера, пробуждать компьютер для выполнения задачи Все эти условия более характерны для рабочей станции, нежели чем для сервера, который обычно работает в режиме 24/7.

настройка планировщика заданий. условия задания

Рис. 14. Условия задания

Дополнительные параметры задания можно определить на вкладке Параметры. Как правило, они не нуждаются в редактировании, а их назначение понятно без дополнительных комментариев.

Для сохранения задания нажмите кнопку OK. Чтобы видеть все действия, которые выполняет — включить журнал.

На этом все. Если у вас остались вопросы, вы можете обратиться в службу технической поддержки Xelent.


СервераНачальный уровень

Запускаем планировщик заданий любым удобным способом. Например, находим в панели управления или при нажатии сочетания клавиш Пуск+R, вводим в строку taskschd.msc или щелкаем правой кнопкой на меню Пуск и выбираем «Управление компьютером».

Окно управления компьютером с открытым планировщиком заданий.

Окно управления компьютером с открытым планировщиком заданий.

Создаем простую задачу. Обязательными полями для заполнения являемся Имя, а поле Описание опционально, заполните его при необходимости.

Окна мастера создания простой задачи.

Окна мастера создания простой задачи.

Определяемся с желаемым графиком запуска нашей задачи автоматической перезагрузки компьютера. Мастер довольно гибко позволяем настроить время и интервалы выполнения (ежедневно, еженедельно, ежемесячно).

Мастер создания простой задачи.

Еженедельно в воскресенье и четверг в 4.00 утра отлично подойдут для перезагрузки.

Еженедельно в воскресенье и четверг в 4.00 утра отлично подойдут для перезагрузки.

Дальше выбираем «Запустить программу» в качестве действия для задачи. Финальным аккордом указываем приложение shutdown.exe используемое в операционной системе как утилита для выключения, перезагрузки или завершения сеанса пользователя.

Завершаем настройку и ждем время указанное в графике для проверки результата.

shutdown /r /f

shutdown /r /f

Для начала рассмотрим, как перезагрузить (или выключить) систему через командную строку. В этом нам поможет утилита shutdown.exe. Не будем рассматривать все возможные параметры использования, их можно посмотреть запустив программу из консоли с параметром /? или просто без параметра, рассмотрим набор параметров, который использую я.

shutdown.exe /r /f /t 90 /d p:2:16 /c "Перезапуск для установки обновлений"

в данном случае:

Итак, после выполнения данной строки на экране появится окно с указанным нами комментарием.


Пока идет указанное нами время ожидания, есть возможность прервать запуск перезагрузки в случае необходимости выполнив shutdown.exe /a в командной строке.

После окончания времени ожидания станция будет перезагружена. При этом в системный журнал попадет запись о перезагрузке, ее причинах и нашим комментарием.


Таким образом, если за серверами следят несколько Администраторов, у них не будет вопросов почему сервер перезагружался.

Для того чтобы запланировать перезагрузку, разумно использовать планировщик задач. Не буду здесь описывать как создавать в нем задачи, отмечу только, что параметры командной строки следует вынести в соответствующую строчку, как на скриншоте


Обратите внимание, что путь я преобразовал через системную переменную:

Таким образом, не важно на какой диск установлена система, программа запустится.

Созданную задачу можно устанавливать на определенные дату/время с повторением или без по вашему желанию. Система будет перезагружена в назначенное время и в системном журнале останется соответствующая запись.

Разумеется, вы можете экспортировать созданную задачу в xml-файл и использовать как шаблон при создании подобной задачи на другом сервере вашей сети.

Следует также отметить, что таким же образом можно перезагрузить (или выключить) удаленный компьютер, если использовать параметр /m \\ИМЯ_КОМПЬЮТЕРА.

Утилита Shutdown имеет и оконный интерфейс, для этого утилиту следует запустить с ключом /i


Данный диалог позволяет выполнить перезагрузку на компьютерах сети (AD) без использования командной строки.

date

07.04.2021

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 9

Большинство пользователей и администраторов привыкли использовать графический интерфейс консоли Taskschd.msc для создания заданий планировщика Windows (Task Scheduler), запускаемых по расписанию. Однако в различных скриптах и автоматизируемых задачах для создания заданий планировщика гораздо удобнее использовать возможности PowerShell. В этой статье мы покажем, как создавать и управлять заданиями планировщика Windows из PowerShell.

Управление заданиями 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

powershell командлеты из модуля ScheduledTasks

Совет. Ранее в Windows для создания и управления заданиями планировщика в основном использовались встроенная консольная утилита schtasks.exe.

Как создать задание планировщика с помощью PowerShell?

В современных версиях PowerShell (начиная с PowerShell 3.0 в Windows Server 2012/Windows 8) для создания заданию планировщика нужно использовать командлеты New-ScheduledTaskTrigger и Register-ScheduledTask.

Предположим, наша задача создать задание планировщика, которое должно запускаться при загрузке компьютера (или в определенное время) и выполнять какой-то PowerShell скрипт. Создадим задание планировщика с именем StartupScript_PS. Данное задание должно каждый день в 10:00 запускать PowerShell скрипт, хранящийся в файле C:\PS\StartupScript.ps1 из-под учетной записи системы (SYSTEM). Задание будет выполняться с повышенными привилегиями (галка “Run with highest privileges”).

$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\StartupScript.ps1"
Register-ScheduledTask -TaskName "StartupScript_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Если задание успешно создано, появится надпись Ready.

создать задание планировщика с помощью Register-ScheduledTask

Теперь ваш PowerShell скрипт будет запускаться по указанному расписанию. Если на вашем компьютере настроена PowerShell Execution Policy, блокирующая запуск скриптов PS1, вы можете запустить скрипт их планировщика с параметром –Bypass.

Используйте такую строку при создании нового задания:

$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument “-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\PS\StartupScript.ps1"

Совет. Если нужно, чтобы задание запускалось каждый раз при загрузке компьютера, первая строка должна быть такой:
$Trigger= New-ScheduledTaskTrigger -AtStartup
Если нужно выполнять задание при входе пользователя:
$Trigger= New-ScheduledTaskTrigger –AtLogo n

Откройте консоль Taskschd.msc и проверьте, что проверьте, что в Task Scheduler Library появилось новое задание планировщика.

консоль Task Scheduler с новым заданием планировщика

В версии Powershell 2.0 (Windows 7, Windows Server 2008 R2) для создания повторяющегося задания (ScheduledJob) из PowerShell необходимо воспользоваться COM интерфейсом Schedule.Service (либо обновите версию PowerShell). В этом примере мы создадим задание планировщика, которое во время запускает определённый файл с PowerShell скриптом во время загруки. Задание выполняется с правами системы (System).

Получение информации и запуск заданий планировщика из PowerShell

Вы можете вывести список всех активных заданий планировщика в Windows с помощью команды:

Get-ScheduledTask -TaskPath | ? state -ne Disabled

Чтобы получить информацию о конкретном задании:

Get-ScheduledTask CheckServiceState_PS| Get-ScheduledTaskInfo

информация о запуске задания Get-ScheduledTaskInfo

Вы можете отключить это задание:

Get-ScheduledTask CheckServiceState_PS | Disable-ScheduledTask

Чтобы включить задание:

Get-ScheduledTask CheckServiceState_PS | Enable-ScheduledTask

Чтобы запустить задание немедленно (не дожидаясь расписания), выполните:

отключить/включить/запустить задание планировщика с помощью PowerShell

Чтобы полностью удалить задание из Task Scheduler:

Unregister-ScheduledTask -TaskName CheckServiceState_PS

Если нужно изменить имя пользователя, из-под которого запускается задание и, например, режим совместимости, используйте командлет Set-ScheduledTask:

$task_user = New-ScheduledTaskPrincipal -UserId 'winitpro\kbuldogov' -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” проверьте, что у вас указано правильное имя пользователя.

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:\temp\StartupScript_PS.xml

Export-ScheduledTask - импорт задания планировщика в xml файла

schtasks /query /tn "NewPsTask" /xml >> "c:\ps\NewPsTask.xml"

После того, как настройки задания планировщика экспортированы в XML файл, его можно импортировать на любой другой компьютер с помощи графической консоли, SchTasks.exe или PowerShell.

Воспользуйте командлетом PowerShell Register-ScheduledTask чтобы параметры задания из файла и зарегистрировать его:

Register-ScheduledTask -Xml (Get-Content “\\Server1\public\NewPsTask.xml” | out-string) -TaskName "NewPsTask"

Примечание. В PowerShell 2.0 (Windows 7/Server 2008 R2) импорт задания также проще выполнить с помощью утилиты schtasks. Первая команда создаст новое задание. Вторая – сразу запустит его (не дожидаясь срабатывания триггера).

schtasks /create /tn "NewPsTask" /xml "\\Server1\public\NewPsTask.xml " /ru corp\aaivanov /rp Pa$$w0rd
schtasks /Run /TN "NewPsTask"

Обратите внимание, что в этом примере указаны данные учетной записи, из-под которой будет запускаться задание. Если имя и пароль учетной записи не указаны, то т.к. они не хранятся в задании, они будут запрошены при импорте.

Читайте также: