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

Создание и управление заданиями планировщика из PowerShell

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

Управление заданиями Task Scheduler с помощью PowerShell

В Windows 10/Windows Server 2016 для управления задачами в планировщике используется PowerShell модуль ScheduledTasks. Список командлетов в модуле можно вывести так:

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

Как создать задание планировщика с помощью 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”).

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

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

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

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

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

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

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

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

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

Get-ScheduledTask CheckServiceState_PS| Get-ScheduledTaskInfo

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

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

Get-ScheduledTask CheckServiceState_PS | Disable-ScheduledTask

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

Get-ScheduledTask CheckServiceState_PS | Enable-ScheduledTask

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

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

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

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

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

Экспорт и импорт заданий планировщика в XML файл

С помощью PowerShell можно экспортировать любое задания планировщика в текстовый XML файл для распространения на другие компьютеры. Вы можете экспортировать задание из графического интерфейса Task Scheduler или из консоли PowerShell.

Следующая команда экспортирует задание StartupScript_PS в файл StartupScript_PS.xml:

Export-ScheduledTask «StartupScript_PS» | out-file c:\temp\StartupScript_PS.xml

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

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

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

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

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

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

Источник

Запуск PowerShell скрипта в Планировщике заданий

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

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

Системному администратору часто приходится писать разные скрипты и настраивать их запуск по расписанию в Планировщике заданий (Task Scheduler). Простой пример ниже.

Написал небольшой скрипт и сохранил по адресу:

Я хочу, чтобы этот скрипт запускался каждые 10 минут. Время работы скрипта — не более 60 секунд.

Открываю Планировщик заданий. Создаю попку, в которой будет находиться расписание, называю её IIS.

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

Нажимаю Create Task.

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

В первой вкладке General указываю:

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

Перехож на вкладку Triggers. Здесь нужно создать триггер для расписания. New.

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

В настройках триггера:

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

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

Перехожу на вкладку Actions. Здесь нужно указать скрипт для выполнения. New.

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

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

Путь к выполняемому скрипту указан.

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

Перехожу на вкладку Conditions. Здесь определяются условия для запуска. Устанавливаю одну галку, просто на всякий случай:

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

Перехожу на вкладку Settings. Здесь есть ряд полезных настроек. Ставлю галки:

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

Указываю пароль локального администратора. OK.

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

Теперь скрипт будет запускаться по расписанию. В разделе History можно отслеживать результат выполнения.

Источник

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

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

Предположим, нам нужно создать задачу, которая будет запускать определённый скрипт PowerShell каждый понедельник и четверг в 11:00.

Для создания нового задания мы воспользуемся командлетами модуля PSScheduledJob. Чтобы этот командлет работал в Windows 7, нужно установить как минимум PowerShell версии 3.0.

Запустим консоль Powesrhell с правами администратора и импортируем модуль PSScheduledJob.

Создадим новый триггер:

Теперь создадим новое задание с именем BackupDBTask и привяжем к нему созданный ранее триггер:

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

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

При создании нового задания PowerShell генерирует новый xml файл, который содержит определение задания. Найти этот файл можно в профиле текущего пользователя:

В дальнейшем данный xml файл можно использовать для импорта настроек задания на других компьютерах. Импорт (создание задания с настройками из xml) выполняется такой командой:

В каталоге Output хранится история запуска задания.

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

В Windows 8 / Windows Server 2012 и выше (в этих версиях появился встроенный PowerShell 3.0) при создании задания планировщика импортировать модуль PSScheduledJob не нужно.

Просто создайте новый триггер:

Если нужно запускать задание от определенного пользователя, нужно получить его пароль (он будет сохранен в менеджере паролей, что конечно, не очень безопасно):

$credent = Get-Credential contoso\server-admin1

Чтобы задание запускалось с повышенными правами, включим флаг RunElevated:

$elevat = New-ScheduledJobOption –RunElevated

Теперь создадим новое задание

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

Получить информацию о всех включенных заданиях в разделе Microsoft\Windows\Powershell можно так:

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

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

Get-ScheduledTask BackupDBTask| Get-ScheduledTaskInfo

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

Get-ScheduledTask BackupDBTask| Disable-ScheduledTask

Источник

about_Scheduled_Jobs_Basics

Краткое описание

Описание процедур создания запланированных заданий и управления ими.

Подробное описание

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

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

Register-ScheduledJob Командлет создает процессжоб, который выполняет Get-Process команду. Это запланированное задание имеет параметры задания по умолчанию и не имеет триггера задания.

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

Триггеры заданий запускают запланированное задание автоматически. триггер задания может быть однократным или повторяющимся или событием, например при входе пользователя в систему или запуске Windows. Каждое задание может иметь ноль, один или несколько триггеров заданий.

Триггеры задания не являются обязательными. Вы можете запустить запланированное задание в любое время, добавив параметр RunNow в Register-ScheduledJob команду или используя Start-Job командлеты.

Добавление триггера задания

При добавлении триггера задания в запланированное задание триггер задания добавляется в XML-файл запланированного задания для запланированного задания и становится частью запланированного задания.

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

В результате триггер задания запускает процессжоб автоматически каждый понедельник и четверг в 5:00 AM.

Как получить триггер задания

Get-JobTrigger Возвращает триггер задания процессжоб.

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

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

PowerShell использует те же параметры задания, которые планировщик задач использует. Подробные сведения о параметрах задания см. в разделе справки New-scheduledjoboptions.

Параметры задания хранятся в XML-файле запланированного задания. Вы можете задать параметры задания при создании запланированного задания или изменить их в любое время.

Получение параметров задания

Get-ScheduledJobOption Возвращает параметры задания процессжоб.

Изменение параметров задания

Можно изменить параметры задания запланированного задания при создании запланированного задания или изменении существующего задания.

Можно также изменить параметры задания на существующее запланированное задание в любое время. Следующая команда использует командлет, Set-ScheduledJobOption чтобы изменить значение параметра вакеторун процессжоб scheduledJob на true.

Получение экземпляров запланированных заданий

Чтобы получить все экземпляры запланированных заданий PowerShell и все активные стандартные задания, используйте Get-Job командлет. Import-Module Командлет импортирует модуль PSScheduledJob и Get-Job получает задания на локальном компьютере.

Get-Job Возвращает экземпляры процессжоб на локальном компьютере.

Отображение по умолчанию не показывает время начала, которое обычно различает экземпляры одного и того же запланированного задания.

Get-Job Командлет отправляет объекты по конвейеру. Format-Table Командлет отображает свойства Name, ID и BeginTime запланированного задания.

Получение результатов запланированного задания

Чтобы получить результаты экземпляра запланированного задания, используйте Receive-Job командлет.

В этом примере получаются результаты последнего экземпляра запланированного задания процессжоб (ид = 51).

Результаты запланированных заданий сохраняются на диске, поэтому параметр сохранения Receive-Job не требуется. Однако без параметра сохранения результаты запланированного задания можно получить только один раз в каждом сеансе PowerShell. Чтобы запустить новый сеанс PowerShell, введите PowerShell или откройте новое окно PowerShell.

Источник

about_Scheduled_Jobs

Краткое описание

Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

Подробное описание

Запланированные задания PowerShell — это полезная гибрид фоновых заданий PowerShell и планировщик задач задач.

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

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

Этот всеобъемлющий и гибкий набор средств делает запланированные задания ключевым компонентом многих профессиональных ИТ-решений PowerShell.

Дополнительные сведения о фоновых заданиях PowerShell см. в разделе about_Jobs.

Дополнительные сведения о планировщик задач см. в разделе планировщик задач.

Вы можете просматривать запланированные задания PowerShell и управлять ими в планировщик задач. Задания PowerShell и командлеты запланированных заданий работают только с запланированными заданиями, созданными в PowerShell.

Быстрый запуск

В этом примере создается запланированное задание, которое запускается каждый день в 3:00 AM и запускается Get-Process командлет. Задание запускается, даже если компьютер работает от батарей.

Get-ScheduledJob Командлет возвращает запланированные задания на локальном компьютере.

Get-JobTrigger Возвращает триггеры задания процессжоб. Входные параметры задают запланированное задание, а не триггер, так как триггеры сохраняются в запланированном задании.

В этом примере используется параметр континуеифгоингонбаттери Set-ScheduledJob командлета, чтобы изменить свойство Стопифгоингонбаттериес объекта процессжоб на false.

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

Receive-Job Командлет возвращает результаты последнего экземпляра запланированного задания ПРОЦЕССЖОБ (ИД = 51).

Результаты задания больше не доступны в этом сеансе, но если вы запускаете новый сеанс или открываете новое окно PowerShell, результаты задания снова становятся доступными.

Задания, запускаемые с помощью Start-Job командлета, являются стандартными фоновыми заданиями PowerShell, а не экземплярами запланированного задания. Как и все фоновые задания, эти задания запускаются немедленно, они не подчиняются параметрам задания или не зависят от триггеров заданий, а их выходные данные не сохраняются в выходном каталоге каталога запланированных заданий.

Unregister-ScheduledJob Командлет удаляет запланированное задание процессжоб и все сохраненные результаты его экземпляров.

Основные понятия запланированных заданий

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

Триггер задания автоматически запускает запланированное задание. триггер задания может включать разовое или повторяющееся расписание или указывать событие, например, когда пользователь входит в систему или запускается Windows. Запланированное задание может иметь один или несколько триггеров заданий, а также создавать, добавлять, включать, отключать и получать Триггеры заданий.

Триггеры задания не являются обязательными. Запланированные задания можно запускать немедленно с помощью Start-Job cmdlet или путем добавления параметра RunNow в Register-ScheduledJob команду.

Параметры задания задают условия для выполнения запланированного задания. У каждого запланированного задания есть один объект параметров задания. Вы можете создавать и изменять объекты параметров задания, а также добавлять их в одно или несколько запланированных заданий.

При каждом запуске запланированного задания создается экземпляр задания. Используйте командлеты задания PowerShell для просмотра экземпляра задания и управления им.

PowerShell создает каталог для каждого запланированного задания и сохраняет команды задания, триггеры заданий, параметры задания и результаты задания в каталоге запланированных заданий. Триггеры задания и параметры задания не сохраняются на диск независимо друг от друга. Они сохраняются в XML-коде запланированного задания для каждого запланированного задания, с которым они связаны.

Запланированные задания, триггеры заданий и параметры задания отображаются в PowerShell как объекты. Объекты взаимосвязаны, что упрощает их обнаружение и использование в командах и скриптах.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *