Контексты безопасности для задач

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

Указание учетных данных

Контекст безопасности для задачи можно указать, указав учетные данные в методах ITaskFolder::RegisterTask или ITaskFolder::RegisterTaskDefinition (TaskFolder.RegisterTask или TaskFolder.RegisterTaskDefinition для создания скриптов) или назначив субъект основному свойству ITaskDefinition (TaskDefinition.Principal для создания скриптов). Если субъект создается для определения задачи, а затем определение задачи регистрируется с помощью метода RegisterTaskDefinition с разными учетными данными, указанными в параметрах метода, учетные данные, указанные в методе RegisterTaskDefinition, перезаписывают учетные данные в субъекте. Если субъект создается для определения задачи с помощью XML, а XML-файл для задачи регистрируется с помощью метода RegisterTask с разными учетными данными, указанными в параметрах метода, учетные данные, указанные в методе RegisterTask, перезаписывают учетные данные в субъекте.

Вы указываете учетную запись пользователя или группу при регистрации задачи или указан принцип для задачи. Контекст безопасности учетной записи пользователя или группы используется для контекста безопасности задачи. В этих методах и свойствах также определяется тип входа. Тип входа определяется одной из констант в перечислении TASK_LOGON_TYPE.

Задачи, зарегистрированные с помощью флага TASK_LOGON_PASSWORD или TASK_LOGON_S4U, будут запускаться только в том случае, если указанный пользователь имеет вход в качестве привилегии пакетной службы. пользователи групп Администратор istrator и операторов резервного копирования имеют эту привилегию по умолчанию.

При вызове метода ITaskService::Подключение (TaskService.Подключение для скриптов) все последующие вызовы метода в службу планировщика задач будут использовать учетные данные, переданные методу Подключение. Это важно учитывать при регистрации задач с интерактивным типом входа. При регистрации задачи с типом входа, равным TASK_LOGON_INTERACTIVE_TOKEN, и задача не имеет учетных данных, указанных в свойстве основного определения задачи, указанного в параметрах RegisterTaskDefinition или указанных в XML-файле, передаваемом в RegisterTask, задача будет зарегистрирована с учетными данными пользователя, вызывающего Подключение Метод.

Безопасность контроля учетных записей пользователей (UAC) для задач

Управление учетными записями пользователей (UAC) позволяет пользователям выполнять общие функции, такие как выполнение программ и сохранение и изменение данных без предоставления прав администратора. По умолчанию задача выполняется с низким уровнем привилегий при включении UAC. Задачи могут указать, что они будут выполняться с повышенными привилегиями или низкими привилегиями, задав уровень привилегий из перечисления TASK_RUNLEVEL_TYPE для свойства RunLevel IPrincipal (Principal.RunLevel для сценариев). Значение свойства RunLevel определяет уровень привилегий, на котором будут выполняться действия задачи. Если действия задачи должны иметь повышенные привилегии для выполнения, необходимо задать для свойства RunLevel значение TASK_RUNLEVEL_HIGHEST. Если задача зарегистрирована с помощью группы Администратор istrators для контекста безопасности задачи, необходимо также задать для свойства RunLevel значение TASK_RUNLEVEL_HIGHEST, если вы хотите запустить задачу. Если задача зарегистрирована с помощью учетной записи Buildin\Администратор istrator или учетных записей локальной системы или локальной службы, то свойство RunLevel будет игнорироваться. Значение свойства также будет игнорироваться, если контроль учетных записей пользователей (UAC) отключен. Значение свойства RunLevel не влияет на разрешения, необходимые для выполнения или удаления задачи.

Примечание.

После обновления операционной системы с Windows XP до Windows Vista задачи, зарегистрированные с помощью учетной записи Buildin\Администратор istrator в Windows XP, будут иметь свойство RunLevel для TASK_RUNLEVEL_LUA. Это может привести к сбою некоторых задач. Это свойство можно обновить вручную, чтобы убедиться, что все задачи будут выполняться.

 

Из процесса с низким уровнем привилегий невозможно зарегистрировать задачу в свойстве RunLevel , равном TASK_RUNLEVEL_HIGHEST, но можно зарегистрировать задачу с помощью свойства RunLevel , равного TASK_RUNLEVEL_LUA. Действия задачи будут выполняться с низкими привилегиями. Вы не можете зарегистрировать задачу в качестве встроенного или Администратор istrator, локальной системы или группы.

Из процесса с повышенными привилегиями можно зарегистрировать задачу с помощью свойства RunLevel, равного TASK_RUNLEVEL_HIGHEST или TASK_RUNLEVEL_LUA. Задача будет выполняться с уровнем привилегий, определяемым свойством RunLevel, если вы не используете учетную запись Администратор istrator, в этом случае задача выполняется с повышенными привилегиями.

В процессе с повышенными привилегиями можно зарегистрировать задачу Планировщика задач 1.0. Служба планировщика задач установит уровень выполнения задачи на TASK_RUNLEVEL_HIGHEST, а задача будет выполняться с повышенными привилегиями.

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

Безопасность для задач регистрации

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

  • Если вы регистрируете задачу для выполнения в контексте безопасности учетной записи или другой учетной записи пользователя и используете флаг TASK_LOGON_PASSWORD в методе RegisterTask или RegisterTaskDefinition.
  • Если вы регистрируете задачу для выполнения в контексте безопасности учетной записи другого пользователя и используете флаг TASK_LOGON_S4U в методе RegisterTask или RegisterTaskDefinition.

Нельзя использовать группу пользователей в качестве контекста безопасности задачи при регистрации задачи с помощью флага TASK_LOGON_S4U или флага TASK_LOGON_PASSWORD в методе RegisterTask или RegisterTaskDefinition.

При регистрации задачи из учетной записи пользователя, не являющейся членом группы Администратор istrators, при регистрации задачи не нужно указывать пароль при регистрации задачи, если вы регистрируете задачу для выполнения в контексте безопасности учетной записи и используете тип S4U или интерактивного входа. В противном случае необходимо указать пароль при регистрации задачи. Кроме того, невозможно зарегистрировать задачу с помощью учетной записи локальной службы или с помощью группы для контекста безопасности задачи.

Безопасность для чтения, обновления, удаления и выполнения задач

По умолчанию пользователь, создающий задачу, может читать, обновлять, удалять и запускать задачу. Пользователь должен иметь разрешение на запись файлов в файл задачи, чтобы обновить задачу, разрешение на чтение файла задачи, разрешение на чтение задачи, удаление разрешения на удаление задачи и разрешение на выполнение задачи для выполнения задачи с помощью методов IRegisteredTask::Run или RunEx (RegisteredTask.Run и RunEx для скриптов). Члены группы Администратор istrator или учетной записи SYSTEM могут читать, обновлять, удалять и выполнять любые задачи. Члены группы "Пользователи", учетная запись LocalService и учетная запись NetworkService могут только читать, обновлять, удалять и выполнять созданные им задачи. Это поведение по умолчанию изменяется при изменении DACL файла задачи, в этом случае DACL определяет, какие пользователи имеют разрешение на запись, чтение, выполнение и удаление. Чтобы задать разрешения для файла задачи, используйте метод IRegisteredTask.SetSecurityDescriptor (RegisterTask.SetSecurityDescriptor для скрипта) или задайте дескриптор безопасности при регистрации задачи с помощью методов RegisterTask или RegisterTaskDefinition.

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

Сведения о регистрации задач

Сведения о планировщике задач

Обеспечение безопасности задач

TaskFolder.RegisterTaskDefinition

ITaskFolder::RegisterTaskDefinition

Основное свойство ITaskDefinition

TASK_LOGON_TYPE