- Операционные системы
- Виртуализация
- IT-инфраструктура
- Защита ИС и периметра
- Сетевые службы
- Хранение данных
- СУБД
- Объединенные коммуникации
- Веб-серверы и веб-движки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:\FBInst1\Tools\FBBases-Backup.ps1`"" $Trigger = New-ScheduledTaskTrigger -Daily -At 23:00 $SvcUser = New-ScheduledTaskPrincipal -UserID KOM\s-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:\Programms\MyProgramm.exe" $Trigger = @( $(New-ScheduledTaskTrigger -Daily -At 8:30), $(New-ScheduledTaskTrigger -Daily -At 20:30) ) $SvcUser = New-ScheduledTaskPrincipal -UserID DOMAIN\gMSAAccount$ -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:51microsoft-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 — Алексей Максимов
Инструменты страницы
Обсуждение