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 как объекты. Объекты взаимосвязаны, что упрощает их обнаружение и использование в командах и скриптах.

Источник

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

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

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

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

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

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

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

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

Нажимаю Create Task.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

powershell скрипт по расписанию. powershell komandlety iz modulya scheduledtasks. powershell скрипт по расписанию фото. powershell скрипт по расписанию-powershell komandlety iz modulya scheduledtasks. картинка powershell скрипт по расписанию. картинка powershell komandlety iz modulya 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 скрипт по расписанию. sozdat zadanie planirovshika s pomoshyu register sc. powershell скрипт по расписанию фото. powershell скрипт по расписанию-sozdat zadanie planirovshika s pomoshyu register sc. картинка powershell скрипт по расписанию. картинка sozdat zadanie planirovshika s pomoshyu register sc. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

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

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

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

powershell скрипт по расписанию. konsol task scheduler s novym zadaniem planirovshi. powershell скрипт по расписанию фото. powershell скрипт по расписанию-konsol task scheduler s novym zadaniem planirovshi. картинка powershell скрипт по расписанию. картинка konsol task scheduler s novym zadaniem planirovshi. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

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

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

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

Get-ScheduledTask CheckServiceState_PS| Get-ScheduledTaskInfo

powershell скрипт по расписанию. informaciya o zapuske zadaniya get scheduledtaskinfo. powershell скрипт по расписанию фото. powershell скрипт по расписанию-informaciya o zapuske zadaniya get scheduledtaskinfo. картинка powershell скрипт по расписанию. картинка informaciya o zapuske zadaniya get scheduledtaskinfo. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

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

Get-ScheduledTask CheckServiceState_PS | Disable-ScheduledTask

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

Get-ScheduledTask CheckServiceState_PS | Enable-ScheduledTask

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

powershell скрипт по расписанию. otklyuchit vklyuchit zapustit zadanie planirovshika. powershell скрипт по расписанию фото. powershell скрипт по расписанию-otklyuchit vklyuchit zapustit zadanie planirovshika. картинка powershell скрипт по расписанию. картинка otklyuchit vklyuchit zapustit zadanie planirovshika. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

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

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

powershell скрипт по расписанию. set scheduledtask no mapping between account nam. powershell скрипт по расписанию фото. powershell скрипт по расписанию-set scheduledtask no mapping between account nam. картинка powershell скрипт по расписанию. картинка set scheduledtask no mapping between account nam. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

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

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

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

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

powershell скрипт по расписанию. export scheduledtask import zadaniya planirovshika. powershell скрипт по расписанию фото. powershell скрипт по расписанию-export scheduledtask import zadaniya planirovshika. картинка powershell скрипт по расписанию. картинка export scheduledtask import zadaniya planirovshika. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в 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 скриптов по расписанию

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

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

Способ 1

Для запуска скрипта воспользуемся оснасткой Task Scheduler, он же планировщик заданий. Найти его можно в разделе Administrative Tools, либо нажав Win+R и введя команду taskschd.msc. Открываем планировщик и в разделе Actions выбираем пункт Create Task.

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

На вкладке General указываем имя и описание задания, а также (по необходимости) пользователя, от имени которого задание будет запускаться. Для того, чтобы задание выполнялось вне зависимости от того, залогинен ли пользователь в системе, выбираем опцию «Run whether user is logged on or not». Если для выполнения задания требуется повышение привилегий, то отмечаем опцию «Run with highest privileges».

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

Далее идем на вкладку Triggers и создаем новый триггер, в котором будет храниться расписание запуска нашего задания. В поле Start указываем дату и время запуска, а в поле Expire — дату и время завершения задания. Указываем выполнять задание ежедневно (Daily) и задаем период повтора (Recur every) 1 день.

Примечание. Если вы хотите запускать задание чаще, чем раз в день, то надо выбрать одноразовое выполнение (One time), а в разделе Advanced settings отметить пункт Repeat task every и указать время повторения, минимум 5 минут, максимум 1 час. Если этого недостаточно, то дополнительно в поле Delay task for up to можно указать временную задержку.

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

Также в поле аргументы можно указать:

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

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

Способ 2

В PowerShell 3.0 появился новый функционал Sheduled Job, дающий возможность создавать запланированные задания прямо из консоли, не пользуясь оснасткой планировщика. Воспользуемся им для планового запуска нашего скрипта.

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

Затем сохраняем в переменной учетные данные:

$cred = Get-Credential contoso\administrator

В качестве опции указываем запуск задания с повышенными привилегиями:

И регистрируем задание с именем Start:

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

Чтобы убедится в том, что задание создано, можно открыть планировщик и найти наше задание в разделе Microsoft\Windows\PowerShell\SheduledJobs.

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

Примечание. Для каждого запланированного задания PowerShell в директории %systemdrive%\Users\%username%\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs создается одноименная папка. В этой папке находится само задание в XML-файле и папка Output, в которой, в подпапках по времени выполнения, хранится история выполнения задания — результат выполнения (файлs Result.xml) и статус задания (Status.xml). Эти файлы могут пригодиться для отладки и диагностики в том случае, если задание не отрабатывает должным образом.

Execution Policy

• Restricted — блокируется выполнение любых скриптов. Значение по умолчанию;
• AllSigned — разрешено выполнение скриптов, имеющих цифровую подпись;
• RemoteSigned — скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, скрипты, загруженные из Интернета — только при наличии цифровой подписи;
• Unrestricted — разрешено выполнение любых скриптов. При запуске неподписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение;
• Bypass — ничего не блокируется, никакие предупреждения и запросы не появляются.

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

Источник

Используем Powershell для работы с планировщиком заданий для создания и изменения задач

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

Навигация по посту

Работа планировщика в Powershell

Отличительной чертой работы Powershell является то, что мы должны создать каждый из объектов (результат команд) планировщика отдельно, а затем объединить их с помощью 1 команды. Сами объекты делятся на следующие:

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

3 и 4 пункт не является обязательными при создании задачи т.к. уже имеет настройки по умолчанию.

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

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

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

Что бы продемонстрировать работу планировщика я создам скрипт, который будет сохранять логи с журнала Windows в папку ‘logs’. Ниже находится сам скрипт:

powershell скрипт по расписанию. 2 3wpf6TV. powershell скрипт по расписанию фото. powershell скрипт по расписанию-2 3wpf6TV. картинка powershell скрипт по расписанию. картинка 2 3wpf6TV. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.

Команды выше не должны выдавать каких либо ошибок. Ошибка может быть, например, с несуществующей папкой ‘logs’. Сам скрипт я сохранил по пути ‘C:\scheduler_task.ps1’. Его запуск не выдает каких-то ошибок:

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

У вас так же будет создан файл в папке ‘logs’.

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

Для создания ‘action’ мы должны указать программу и аргументы. В качестве программы будет сам интерпретатор ‘powershell.exe’, а аргументом будет путь до скрипта. Как говорилось раньше у нас будет несколько объектов (результат команд) и все их нужно будет объединить. Что бы это было возможным мы должны поместить результаты работы в переменные:

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

Мы так же можем указать параметр ‘WorkingDirectory’, который определяет откуда и будет запущена программа. Учитывая, что ‘powershell.exe’ виден через системные переменные использовать параметр ‘WorkingDirectory’ нам не требуется.

Действия выше аналогичны следующим настройкам в интерфейсе (т.е. так мы обычно добавляем скрипт Powershell в планировщик):

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

Следующим мы определим, когда мы будем запускать задачу. Это делается с помощью команды ‘New-ScheduledTaskTrigger’. Эта команда имеет множество параметров, которые делятся на системные события и временные.

Системные события, которые мы можем использовать, следующие:

Аргументы связанные со временем:

Большую часть команд, связанных со временем, мы можем сочетать вместе. Так, например, мы создадим триггер выполнится однажды в 13:00:

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

Еще несколько примеров:

Меня интересует ежедневный запуск задачи с периодичностью в 5 минут. Для ‘RepetitionInterval’, который устанавливает такие интервалы, нужно использовать дополнительную команду ‘New-TimeSpan’. В этой команде определим сам интервал:

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

Регистрация задачи в планировщике

Теперь, после выполнения минимальных требований в виде ‘action’ и ‘trigger’, мы должны объединить эти объекты. Это делается с помощью команды ‘Register-ScheduledTask’. Дополнительно мы можем определить название и описание создаваемого объекта:

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

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

TaskPath указывает где была создана задача. В примере выше это произошло в корне планировщика:

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

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

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

Способа узнать путь два:

В powershell есть еще одна команда, которая может участвовать в создании задач «New-ScheduledTask». Основное отличие такой команды в том, она не регистрирует (добавляет) задачу в сервис планировщика. Если бы мы использовали обе команды это бы выглядело так:

Запуск и получение дополнительной информации

Для запуска задачи, не зависимо от триггеров, используется команда ‘Start-ScheduledTask’:

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

У нас так же есть 2 команды, которые возвращают информацию о задачах.

Первая команда просто возвращает список задач, которые есть в каталогах планировщика их статус и путь:

powershell скрипт по расписанию. 12. powershell скрипт по расписанию фото. powershell скрипт по расписанию-12. картинка powershell скрипт по расписанию. картинка 12. Описывает запланированные задания и объясняет, как использовать запланированные задания и управлять ими в PowerShell и в планировщик задач.У команды запуска и получения задач из планировщика можно использовать параметры:

Более полезная команда следующая, так как вернет немного больше информации:

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

Само собой все эти команды можно использовать в конвейере:

Фильтрация через Where-Object в Powershell с примерами

Изменение пользователя, параметров безопасности и уровня запуска

Создавая задачи в планировщике мы имеем блок ‘Security Options’, который чаще используется с настройками по умолчанию. В этом блоке определяются следующие параметры:

В графическом интерфейсе эти параметры настраиваются в следующем блоке:

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

Так же как и в случае с созданием задачи, в случае ее изменения мы создаем разные объекты (результаты команд), которые затем привязываем через команду ‘Set-SchedukedTask’.

С помощью следующих команд мы изменим пользователя, повысим права и изменим совместимость:

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

Если у вас будет следующая ошибка, то скорее всего она связана с неверным пользователем:

Само собой эти же объекты можно использовать при создании (регистрации) задачи в планировщике:

Учитывайте, что у New-ScheduledTaskSettingsSet около 30 возможных параметров (работа при отключенной батареи, максимальное количество перезапусков и т.д.). В примере выше рассмотрено лишь несколько.

Изменение триггеров и действий

С помощью Set-ScheduledTask так же добавляются и изменяются триггеры и действия. Изменение будут заключаться в полной замене существующих триггеров и действий у задач. Вам просто нужно создать объект по аналогии с тем, как это делалось в предыдущих разделах:

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

Бэкап, удаление и восстановление задач планировщика с Powershell

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

Резервное копирование

Для бэкапа мы можем использовать команду Export-CliXml. Для этого нам нужно будет получить задачу и использовать конвейер:

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

Для экспорта в Powershell так же есть ‘Export-ScheduledTask’, но нет аналогичной команды импорта. Что бы импортировать такие файлы-задачи мы можем использовать только GUI. Из-за этого она не приведена в примере выше.

Удаление, отключение и включение

При удалении задачи, по умолчанию, запрашивается подтверждение. Что бы этого не было добавляется ключ ‘Confirm’:

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

Если требуется только отключить задачу используйте Disable:

Восстановление

На одном из сайтов я прочитал, что следующий параметр нужно изменять на «Interactive», так как без него не будет работать задача, но у меня этот параметр не изменялся при экспорте:

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

Далее нам нужно зарегистрировать эту задачу определяя каждый из параметров отдельно:

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

Как создавать команды и функции в Powershell вызывать их и передавать параметры

Анализ выполнения и завершения, а так же сравнение

Используя предыдущие команды мы можем выполнить некоторую автоматизацию. Например так мы можем увидеть результат выполненных задач:

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

Часть этих кодов имеет следующую расшифровку (был использован автоматический переводчик):

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

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

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

Такой же подход можно использовать при поиске странных сервисов-программ. Например у нас есть эталонный компьютер/сервер и на нем созданы все нужные задачи. Всех их мы помещаем в один объект, а затем сравниваем с другими экземплярами:

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

Далее, через разные средства, мы можем сравнить этот список на других компьютерах:

Источник

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

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