Как запустить планировщик windows server 2012

Как создать задание Планировщика Windows Task Scheduler от имени учётной записи MSA/gMSA в PowerShell Графическая оболочка Планировщика заданий Windows Task Scheduler

microsoft-windows:windows-server-2012-r2:adds:how-to-use-managed-service-accounts-msa-and-group-managed-service-account-gmsa:how-to-create-a-windows-scheduler-task-on-behalf-of-msa-gmsa-in-powershell

Содержание

Как создать задание Планировщика Windows Task Scheduler от имени учётной записи MSA/gMSA в PowerShell

Графическая оболочка Планировщика заданий Windows Task Scheduler в ОС Windows Server 2012 R2 не умеет работать с учётными записями MSA/gMSA. Однако для настройки задания планировщика Windows, которое должно выполняться от имени сервисной учётной записи MSA/gMSA, мы можем воспользоваться возможностями оболочки PowerShell.

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

Запустим оболочку PowerShell с правами Администратора и создадим простое задание планировщика Windows для запуска некоторого PS-скрипта с ежедневным выполнением, например в 23:00:

$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
 -Argument "-NoProfile -command `"D:FBInst1ToolsFBBases-Backup.ps1`""
$Trigger = New-ScheduledTaskTrigger -Daily -At 23:00
$SvcUser = New-ScheduledTaskPrincipal -UserID KOMs-S11$ -LogonType Password
Register-ScheduledTask -TaskName "Firebird DBs (Instance1) Backup" `
-Action $Action -Trigger $Trigger -Principal $SvcUser

Откроем графическую консоль управления планировщиком Windows и проверим корректность созданного задания.

Изменение созданного задания

В случае необходимости изменения созданного задания с использованием учётной записи MSA/gMSA не нужно пытаться изменить здание через графическую консоль, так как это приведёт к запросам аутентификации для учётной записи gMSA и ошибкам сохранения задания. Изменить созданное задание можно с помощью PowerShell. Например, чтобы изменить время запуска задания можем выполнить следующий код:

$Trigger = New-ScheduledTaskTrigger -Daily -At 23:05
Set-ScheduledTask -TaskName "Firebird DBs (Instance1) Backup" -Trigger $Trigger

Задания со сложным расписанием

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

$Action = New-ScheduledTaskAction -Execute "C:ProgrammsMyProgramm.exe"
$Trigger = @(
    $(New-ScheduledTaskTrigger -Daily -At 8:30),
    $(New-ScheduledTaskTrigger -Daily -At 20:30)
)
$SvcUser = New-ScheduledTaskPrincipal -UserID DOMAINgMSAAccount$ -LogonType Password
$TDescription = 'Описание моей задачи'
Register-ScheduledTask -TaskName "My Task" -TaskPath "My Tasks" -Action $Action `
-Trigger $Trigger -Principal $SvcUser -Description $TDescription

Если требуется постоянный цикличный запуск задания, например, каждые 5 минут, то значение триггера можно задать следующим образом:

$Trigger = New-ScheduledTaskTrigger `
    -Once `
    -At (Get-Date) `
    -RepetitionInterval (New-TimeSpan -Minutes 5) `
    -RepetitionDuration ([System.TimeSpan]::MaxValue)

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

$Trigger = New-ScheduledTaskTrigger -Weekly `
-DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -At 9:10

Триггер -AtStartup

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

# Добавляем в первый триггер задания Планировщика 3-минутную задержку перед запуском
# А также отключаем ограничение времени выполнения задания
# Формат указания длительности времени https://en.wikipedia.org/wiki/ISO_8601#Durations 
#
$Task.Triggers[0].Delay = "PT3M"
$Task.Settings.ExecutionTimeLimit = "PT0S"
$Task | Set-ScheduledTask

Проверено на следующих конфигурациях:

Версия ОС
Windows Server 2012 R2 Standard EN (6.3.9600)

Автор первичной редакции:
Алексей Максимов
Время публикации: 06.06.2019 20:51

microsoft-windows/windows-server-2012-r2/adds/how-to-use-managed-service-accounts-msa-and-group-managed-service-account-gmsa/how-to-create-a-windows-scheduler-task-on-behalf-of-msa-gmsa-in-powershell.txt

· Последнее изменение: 13.10.2019 14:02 —

Алексей Максимов


Profile picture for user Олег

Windows Server

Имеем Windows Server 2012 R2. Задача — автоматически перезагружать сервер каждый понедельник в 5 утра. Приступаем.

Запускаем Планировщик заданий, создаём в нём папку «reboot»:

reboot

Делаем Create Basic Task… Запускается мастер:

reboot

Указываем Name, Description:

reboot

Кликаем Next:

reboot

Выбираем период Weekly. Next:

reboot

Указываем начало — ближайший понедельник 5 утра. Ставим галку Monday. Next:

reboot

Выбираем Start a program. Next:

reboot

В Program/script: пишем:

%SYSTEMROOT%System32shutdown.exe

В Add arguments (optional):

/r /f /t 90 /d p:0:0 /c "Перезапуск по понедельникам. Отмена: shutdown.exe /a"

Где:

  • /r — перезагрузка,
  • /f — принудительное закрытие всех приложений,
  • /t 90 — время ожидания до начала перезагрузки 90 сек,
  • /d p:0:0 — причины перезагрузки для журнала. В данном случае, мы указали: p — запланированная перезагрузка, 0:0 — «Other (planned)»,
  • /c  комментарий в свободной форме длинной не более 512 символов. Комментарий будет показываться юзерам 90 секунд. За это время можно отменить перезагрузку командой shutdown.exe /a.

Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?

reboot

Мастер не доделали, кликаем Finish. Создаётся задача  — редактируем её.

win

Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:

reboot

Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:

win

Сам пока не проверял результатов. В ближайший понедельник посмотрим…

P.S.

Две недели прошло — шедулер нормально перезагружает сервер по понедельникам.

Содержание

  1. Перезагрузка Windows по расписанию
  2. Планировщик задач, перезагрузка ПК по расписанию.
  3. В Windows XP :
  4. В Windows 7 :
  5. В Windows 8 :
  6. Создаём Простую задачу:
  7. Перезагрузка сервера через командную строку и планировщик задач
  8. Перезагрузка Windows сервера планировщиком заданий
  9. ИТ База знаний
  10. Полезно
  11. Навигация
  12. Серверные решения
  13. Телефония
  14. Корпоративные сети
  15. Как перезагрузить Windows Server 2016
  16. Перезагрузить Windows Server через графический интерфейс
  17. Как перезагрузить Windows Server с помощью командной строки
  18. Шаг 1: Откройте командную строку
  19. Шаг 2. Перезагрузите операционную систему Windows Server.
  20. Перезапуск из PowerShell
  21. Шаг 1. Запустите PowerShell
  22. Шаг 2: перезагрузите систему
  23. Перезагрузка удаленного сервера Windows с помощью PowerShell
  24. Шаг 1. Запустите PowerShell
  25. Шаг 2. Перезагрузитесь удаленно

Перезагрузку Windows сервера или настольного персонального компьютера по расписанию можно реализовать средствами встроенного компонента Microsoft Winodows — планировщика заданий, возможности которого позволяют производить запуск скриптов или программ в заданные моменты времени. Функционально и внешне компонент не имеет никаких отличий в разных версия операционной системы и алгоритм взаимодействия универсален.

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

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

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

screenshot 20220630 105018

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

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

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

Источник

Планировщик задач, перезагрузка ПК по расписанию.

В Windows XP :

Пуск – Панель управления – ярлык “Назначенные задания”

Пуск – Все программы – Стандартные – Служебные – Назначенные задания

В Windows 7 :

Пуск – Панель управления – Администрирование – Расписание выполнения задач

Пуск – Все программы – Стандартные – Служебные – Планировщик заданий

В Windows 8 :

Пуск – Панель управления – Администрирование – Расписание выполнения задач

Заходим в планировщик задач:
Зажимаем Пуск+R, вводим в строку

Создаём Простую задачу:

image1

Вводим Имя задачи, жмём Далее.

image2
Оставляем галочку на Ежедневно и жмём Далее.

image3
Далее вписываем нужное Время для перезагрузки и жмём Далее.

image4
Оставляем галочку на Запустить программу, снова жмём Далее.

image5
В поле Программа или сценарий вводим

в поле Добавить аргументы вводим -r и снова давим Далее, и Готово.

restert

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

нужна устанавливая разное время.

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

только в поле Добавить аргументы вводим -s.

Источник

Перезагрузка сервера через командную строку и планировщик задач

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

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

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

/r — перезагрузка сервера

/f — принудительное закрытие всех приложений.

/t 90 — время ожидания до начала перезагрузки 90 сек.

/d p:2:16 — указание причины перезагрузки, которая отобразиться в системном журнале. В данном случае, мы указали:
p — запланированная перезагрузка, 2:16 — «Операционная система: Установка пакета обновления (Запланировано)»

/c «Перезапуск для установки обновлений» — комментарий в свободной форме длинной не более 512 символов.

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

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

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

2017 05 02 2

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

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

2017 05 02

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

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

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

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

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

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

Shutdown2017 05 02

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

Источник

Перезагрузка Windows сервера планировщиком заданий

me2

Запускаем Планировщик заданий, создаём в нём папку «reboot»:

reboot1

Делаем Create Basic Task. Запускается мастер:

reboot2

Указываем Name, Description:

reboot3

reboot4

Выбираем период Weekly. Next:

reboot5

reboot6

Выбираем Start a program. Next:

reboot7

В Program/script: пишем:

В Add arguments (optional):

Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?

reboot9

reboot10 0

Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:

reboot11

Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:

reboot12 0

Сам пока не проверял результатов. В ближайший понедельник посмотрим.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Как перезагрузить Windows Server 2016

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

laptop

1

Простым решением является перезагрузка. В этом руководстве вы узнаете, как перезапустить Windows Server 2016 с несколькими параметрами команды.

Перезагрузить Windows Server через графический интерфейс

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

Как перезагрузить Windows Server с помощью командной строки

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

Шаг 1: Откройте командную строку

Шаг 2. Перезагрузите операционную систему Windows Server.

В окне командной строки введите команду перезагрузки Windows Server и нажмите клавишу Enter:

Параметр –r заставляет Windows перезагружаться, а не просто выключаться.

Перезапуск из PowerShell

Шаг 1. Запустите PowerShell

Шаг 2: перезагрузите систему

В окне PowerShell введите следующую команду и нажмите Enter:

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

Перезагрузка удаленного сервера Windows с помощью PowerShell

Шаг 1. Запустите PowerShell

Если вы находитесь в командной строке, введите команду:

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

Шаг 2. Перезагрузитесь удаленно

В окне PowerShell введите следующее:

Замените NAME_OF_SYSTEM на имя компьютера, который вы хотите перезагрузить. Не забудьте поставить кавычки.

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

Источник

  • Remove From My Forums
  • Question

  • I have three questions about Task Scheduler on Windows 2012 R2 and I hope someone would educate me, thx

    1. How do I enable History? by default, it is disabled. It says online that select a task scheduler, in Actions, enable all history, but no such item ‘Enable History’ in any drop-down menu in Task Scheduler.

    2. I schedule a ps1 script to copy file from local to remote server and it got error 0x103! Is there a site at Microsoft that lists all the error code for windows 2012 r2 task scheduler? I don’t have much luck looking for that!

    3. What Event ID would be for Task Scheduler?

    Thank you,


    Thang Mo

Answers

  • Hi ThangMo,

    In Server 2012r2 the Task Scheduler history is enabled by default, you can also use cmdlet to check the schedule task history, we can get the event ID same through the Task
    Scheduler task pane.

    Schtasks /Query /FO LIST /V

    The related KB:

    View Task Properties and History

    https://technet.microsoft.com/en-us/library/cc722006.aspx?f=255&MSPPError=-2147217396

    I’m glad to be of help to you!


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com

    • Proposed as answer by

      Monday, April 13, 2015 3:27 AM

    • Marked as answer by
      Alex Lv
      Wednesday, April 22, 2015 9:31 AM

  • Remove From My Forums
  • Question

  • I have three questions about Task Scheduler on Windows 2012 R2 and I hope someone would educate me, thx

    1. How do I enable History? by default, it is disabled. It says online that select a task scheduler, in Actions, enable all history, but no such item ‘Enable History’ in any drop-down menu in Task Scheduler.

    2. I schedule a ps1 script to copy file from local to remote server and it got error 0x103! Is there a site at Microsoft that lists all the error code for windows 2012 r2 task scheduler? I don’t have much luck looking for that!

    3. What Event ID would be for Task Scheduler?

    Thank you,


    Thang Mo

Answers

  • Hi ThangMo,

    In Server 2012r2 the Task Scheduler history is enabled by default, you can also use cmdlet to check the schedule task history, we can get the event ID same through the Task
    Scheduler task pane.

    Schtasks /Query /FO LIST /V

    The related KB:

    View Task Properties and History

    https://technet.microsoft.com/en-us/library/cc722006.aspx?f=255&MSPPError=-2147217396

    I’m glad to be of help to you!


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com

    • Proposed as answer by

      Monday, April 13, 2015 3:27 AM

    • Marked as answer by
      Alex Lv
      Wednesday, April 22, 2015 9:31 AM

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

Содержание:

  • Управление заданиями Task Scheduler с помощью PowerShell
  • Как создать задание планировщика с помощью PowerShell?
  • Получение информации и запуск заданий планировщика из PowerShell
  • Экспорт и импорт заданий планировщика в XML файл

Управление заданиями 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
  • New-ScheduledTaskSettingsSet
  • New-ScheduledTaskTrigger
  • Register-ClusteredScheduledTask
  • Register-ScheduledTask
  • Set-ClusteredScheduledTask
  • Set-ScheduledTask
  • Start-ScheduledTask
  • Stop-ScheduledTask
  • Unregister-ClusteredScheduledTask
  • Unregister-ScheduledTask

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:PSStartupScript.ps1 из-под учетной записи системы (SYSTEM). Задание будет выполняться с повышенными привилегиями (галка “Run with highest privileges”).

$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
$User= "NT AUTHORITYSYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:PSStartupScript.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:PSStartupScript.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).

$TaskName = "NewPsTask"
$TaskDescription = "Запуск скрипта PowerShell из планировщика"
$TaskCommand = "c:windowssystem32WindowsPowerShellv1.0powershell.exe"
$TaskScript = "C:PSStartupScript.ps1"
$TaskArg = "-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted -file $TaskScript"
$TaskStartTime = [datetime]::Now.AddMinutes(1)
$service = new-object -ComObject("Schedule.Service")
$service.Connect()

$rootFolder = $service.GetFolder("")
$TaskDefinition = $service.NewTask(0)
$TaskDefinition.RegistrationInfo.Description = "$TaskDescription"
$TaskDefinition.Settings.Enabled = $true
$TaskDefinition.Settings.AllowDemandStart = $true
$triggers = $TaskDefinition.Triggers
#http://msdn.microsoft.com/en-us/library/windows/desktop/aa383915(v=vs.85).aspx
$trigger = $triggers.Create(8)

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

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

Get-ScheduledTask -TaskPath | ? state -ne Disabled

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

Get-ScheduledTask CheckServiceState_PS| Get-ScheduledTaskInfo

LastRunTime : 4/6/2021 10:00:00 AM
LastTaskResult : 267011
NextRunTime : 4/7/2021 10:00:00 AM
NumberOfMissedRuns : 0
TaskName : CheckServiceState_PS
TaskPath : 
PSComputerName :

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

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

Get-ScheduledTask CheckServiceState_PS | Disable-ScheduledTask

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

Get-ScheduledTask CheckServiceState_PS | Enable-ScheduledTask

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

Start-ScheduledTask CheckServiceState_PS

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

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

Unregister-ScheduledTask -TaskName CheckServiceState_PS

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

$task_user = New-ScheduledTaskPrincipal -UserId 'winitprokbuldogov' -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:tempStartupScript_PS.xml

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

Командлет Export-ScheduledTask не доступен в PowerShell 2.0. Поэтому в Windows 7 / 2008 R2 для экспорта настроек задания в XML файл лучше воспользоваться встроенной утилитой schtasks, вывод которой нужно перенаправить в текстовый файл:

schtasks /query /tn "NewPsTask" /xml >> "c:psNewPsTask.xml"

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

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

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

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

schtasks /create /tn "NewPsTask" /xml "\Server1publicNewPsTask.xml " /ru corpaaivanov /rp Pa$$w0rd
schtasks /Run /TN "NewPsTask"

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

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

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

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

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

Import-Module PSScheduledJob

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

$Trigger = New-JobTrigger -Weekly -DaysOfWeek 1,4 -At 11:00PM

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

Register-ScheduledJob -Name BackupDBTask -FilePath "C:psbackupdb.ps1" -Trigger $Trigger

Register-ScheduledJob

Задание планировщика создано. Найти его в графической консоли Task Scheduler можно в разделе: Task Scheduler -> Task Scheduler Library -> Microsoft->Windows ->PowerShell -> SheduledJobs.

Windows -PowerShell - SheduledJobs

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

%USERPROFILE%AppDataLocalMicrosoftWindowsPowerShellScheduledJobsBackupDBTask

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

Register-ScheduledTask -Xml (Get-Content '\srv1ScheduledJobDefinition.xml' | out-string) -TaskName "BackupDBTask"

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

AppDataLocalMicrosoftWindowsPowerShellScheduledJobs

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

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

$Trigger = New-JobTrigger -Weekly -DaysOfWeek 1,4 -At 08:00PM

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

$credent = Get-Credential contososerver-admin1

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

$elevat = New-ScheduledJobOption –RunElevated

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

Register-ScheduledJob -Name BackupDBTask2 -FilePath C:psbackupdb.ps1 -Trigger $Trigger -Credential $credent –ScheduledJobOption $elevat

Совет. Чтобы запускать задание под учетной записью системы (Local System), используйте следующий формат команды создания задачи:
Register-ScheduledJob -Name BackupDBTask2 -FilePath C:psbackupdb.ps1 -Trigger $Trigger -User «System» –ScheduledJobOption $elevat

запусить задание планировщика с повышенными правами

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

Get-ScheduledTask -TaskPath MicrosoftWindowsPow*| ? state -ne Disabled

Get-ScheduledTask

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

Get-ScheduledTask BackupDBTask| Get-ScheduledTaskInfo

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

Get-ScheduledTask BackupDBTask| Disable-ScheduledTask

Disable-ScheduledTask

Понравилась статья? Поделить с друзьями:
  • Как запустить метро 2033 редукс на windows 10
  • Как запустить питон в консоли windows
  • Как запустить приложение в фоновом режиме windows 10
  • Как запустить метро 2033 на windows 10 стим
  • Как запустить петьку на windows 10