Найти в Дзене

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

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

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

B:\scripts\web\url_status.ps1

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

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

-2

Нажимаю Create Task.

-3

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

  • Name. Любое название расписания.
  • Description. Любое описание, не обязательно.
  • С помощью кнопки Change User or Group можно выбрать пользователя, от имени которого будет выполняться скрипт. Я выбираю локального администратора.
  • Run whether user is logged on or not. Устанавливаю радиокнопку, чтобы скрипт выполнялся независимо от того, залогинен пользователь или нет. В этом случае нас попросят после сохранения расписания указать пароль пользователя.
  • Run with highest privileges. Устанавливаю галку для запуска скрипта с правами администратора.
-4

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

-5

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

  • Begin the task. Выбираю On a schedule. Запуск по расписанию.
  • Daily. Запускать каждый день.
  • Recur every 1 days. Каждый день без пропусков.
  • Repeat task every 10 minutes. Запускать каждые 10 минут for a duration 1 day. Весь день.
  • Stop tasks if it runs longer than 5 minutes. Останавливать задачу, если она выполняется более 5 минут.
  • Enabled. Включить расписание.

OK.

-6

Расписание создано.

-7

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

-8
  • Actions: Start a program. Выполнить программу.
  • Program/script. Указываю powershell.exe
  • Add arguments (optional). Здесь нужно указать параметры для запуска скрипта. Я пишу: -file "B:\scripts\web\url_status.ps1". Если нужно передать в скрипт аргументы, то можно написать -command "& {B:\scripts\web\url_status.ps1 -a 1 -b 3}".

OK.

-9

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

-10

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

  • Wake the computer to run this task. Разбудить компьютер для выполнения скрипта.
-11

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

  • Allow task to be run on demand. Разрешить запуск скрипта по запросу.
  • If the running task does not end when requested, force it to stop. Если задача не завершилась к моменту повторного запуска, то остановить её.
  • Do not start a new instance. Не запускать второй экземпляр.

OK.

-12

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

-13

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

Источник:
https://internet-lab.ru/powershell_in_scheduler

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