Поиск по сайту

telegram

Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!

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

Иногда возникает необходимость настроить автоматическое выполнение PowerShell-скрипта в фоновом режиме, например, каждый час или каждый день. Это особенно удобно для задач, таких как регулярная проверка системы или мониторинг состояния. В нашем примере мы создадим запланированную задачу для скрипта Health Checker, но аналогичные шаги можно применить и к любому другому скрипту.

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

Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.

Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.

Прежде чем приступить к созданию запланированной задачи

Создайте PowerShell-скрипт на вашем компьютере. Затем создайте учетную запись службы с минимальными привилегиями для его выполнения. После этого перейдите к созданию запланированной задачи.

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

Создайте папку с названием Scripts на диске C:. Поместите ваш PowerShell-скрипт в эту папку, по пути: C:\Scripts.

Например, в моем случае это скрипт HealthChecker.ps1.

Создание учетной записи службы

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

В моем примере была создана учетная запись службы с именем svc-hc.

Добавьте учетную запись пользователя в группу View-Only Organization Management.

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

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

  • Откройте оснастку Управление компьютером
  • Перейдите в раздел Группы
  • Дважды щелкните на группу Администраторы
  • Добавьте учетную запись службы svc-hc

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

Как создать запланированную задачу с помощью Powershell

Для создания запланированной задачи с помощью PowerShell, мы воспользуемся приведенными ниже командами:

  1. New-ScheduledTaskTrigger
  2. New-ScheduledTaskSettingsSet
  3. New-ScheduledTaskAction
  4. New-ScheduledTask
  5. Register-ScheduledTask

Примечание: Запустите Windows PowerShell от имени администратора и выполните приведенные ниже команды.

Шаг 1. Создание объекта триггера запланированной задачи

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

Пример 1. Этот триггер будет запускать задачу ежедневно в 2 часа ночи.


$hcTrigger = New-ScheduledTaskTrigger -Daily -At 2am

Пример 2. Этот триггер будет запускать задачу каждые четыре недели в понедельник в 2:00 ночи.


$hcTrigger = New-ScheduledTaskTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At 2am

Шаг 2. Создание нового объекта настроек задачи по расписанию

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


$hcSettings = New-ScheduledTaskSettingsSet

Шаг 3. Создание запланированного действия задачи

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

Пример 1. Обновите скрипт HealthChecker, запустите его на локальном сервере и создайте отчет в формате HTML.


$hcAction = New-ScheduledTaskAction -Execute 'powershell.exe' -WorkingDirectory "C:\Scripts\" -Argument '-NonInteractive -NoLogo -NoProfile -Command ".\HealthChecker.ps1 -ScriptUpdateOnly; .\HealthChecker.ps1; .\HealthChecker.ps1 -BuildHtmlServersReport"'

Пример 2. Запустите сценарий HealthChecker на удаленном сервере Exchange EX02-2019.


$hcAction = New-ScheduledTaskAction -Execute 'powershell.exe' -WorkingDirectory "C:\Scripts\" -Argument '-NonInteractive -NoLogo -NoProfile -Command ".\HealthChecker.ps1 -ScriptUpdateOnly; .\HealthChecker.ps1 -Server EX02-2019; .\HealthChecker.ps1 -BuildHtmlServersReport"'

Шаг 4. Создание экземпляра задачи по расписанию

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


$hcTask = New-ScheduledTask -Action $hcAction -Trigger $hcTrigger -Settings $hcSettings

Шаг 5. Регистрация определения задачи по расписанию на локальном компьютере

Создайте задачу по расписанию.


Register-ScheduledTask -TaskName 'HealthChecker Daily Run' -InputObject $hcTask -User (Read-Host "Please enter username in format (Domain\Username)") -Password (Read-Host "Please enter password")

В выводе отобразится имя задачи.


TaskPath    TaskName                   State
--------    --------                   -----
\           HealthChecker Daily Run    Ready

Запуск запланированного задания в планировщике задач

Всегда проверяйте работоспособность запланированной задачи, запуская её вручную.

  • Откройте Планировщик заданий
  • Щелкните правой кнопкой мыши по задаче
  • Выберите опцию Выполнить

По завершении работы сценарий отображает результат последнего запуска: Операция завершена успешно. (0x0)

Отчет о проверке скрипта PowerShell

Проверьте, что сценарий PowerShell успешно экспортировал результаты.

Заключение

Теперь вы знаете, как создать задачу по расписанию с помощью PowerShell. Начните с создания учетной записи службы и добавления её в группу View-Only Organization Management. Затем добавьте эту учетную запись в группу локальных администраторов. В конце выполните команды для создания нового запланированного задания. Не забудьте проверить его работоспособность, вручную запустив задачу.

Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как включить корзину Active Directory в Windows Server.

Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в Телеграмм или Макс, чтобы узнавать обо всем первым!

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

0 Значки
Вложения (0 / 5)
Поделитесь своим местоположением