Доступ к запланированным заданиям Windows Server 2012 R2 запрещен, работает из командной строки.

Вопрос или проблема

У меня есть запланированная задача на Windows Server 2012 R2, которая выполняет пакетный файл, вызывающий VB-скрипты.

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

Информация о событии: 
ID события: 201  
Код результата 2147943645 
успешно выполнено

Результат последнего выполнения: 
Отказано в доступе 0x80070005

Мои исследования привели меня к попыткам следующих изменений без успеха:

  • Запуск задачи с наивысшими привилегиями

  • Изменение безопасности для %windir%/system32/cmd.exe

  • Удаление “начать в” из задачи

Я думаю, стоит проверить Контекст безопасности задачи вашей запланированной задачи.

Вы сохранили пароль пользователя в задаче?

Ошибка может быть вызвана отсутствием сетевого доступа.

Скорее всего, вам нужно предоставить системную привилегию “Вход как пакетное задание” учетной записи, используемой для выполнения запланированной задачи.

(Вы же не запускаете запланированную задачу с вашими личными учетными данными, верно?)

Согласно описанию TechNet:

Позволяет пользователю войти с помощью функционала пакетной очереди. Например, когда пользователь отправляет задание с помощью планировщика задач, планировщик задач регистрирует этого пользователя как пакетного пользователя, а не как интерактивного пользователя.

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

Это можно установить в доменной GPO или в локальной GPO в следующем месте:

Конфигурация компьютера\Параметры Windows\Параметры безопасности\Локальные политики\Назначение прав пользователя

Чтобы подтвердить источник сбоя «Отказано в доступе», вам следует проверить журнал безопасности Windows в Средстве просмотра событий. Отфильтруйте журнал, чтобы показывать только отказы аудита, а затем найдите последнюю попытку выполнения запланированной задачи.

Ответ или решение

Проблема, связанная с выполнением планируемой задачи на Windows Server 2012 R2, которая приводит к ошибке "Доступ запрещен", является распространенной и часто связана с настройками безопасности системы и конфигурации задач. Ваше описание проблемы говорит о том, что когда скрипт выполняется из командной строки, он работает без ошибок, но выдает ошибку при запуске в качестве запланированной задачи. Это указывает на потенциальные различия в контекстах безопасности и привилегий при выполнении скриптов вручную и автоматически.

Теория

Главная причина возникновения ошибки 0x80070005 "Access Denied" обычно связана с недостаточными правами пользователя, под которым запускается задача, в отношении выполняемых действий или доступных ресурсов. Несмотря на то что задача настроена для выполнения с правами администратора, Windows Task Scheduler имеет специфические требования к проверке аутентичности и авторизации учетных данных пользователей. Это включает в себя, например, необходимость указывать конкретные привилегии для выполнения задач через пакетные сценарии.

Привилегия "Log on as a batch job" — одна из основных, необходимых для корректного выполнение таких задач. Она позволяет системе аутентифицировать задание как пакетное, а не как интерактивный логин. При этом работа с удаленными ресурсами или доступом к файлу также может быть ограничена контекстом безопасности задачи.

Примеры

Вы отметили, что внесли ряд изменений, таких как запуск задачи с повышенными привилегиями и изменение безопасности cmd.exe, но безуспешно. Эти шаги действительно могут решить часть проблем, но не всю их совокупность.

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

Применение

Чтобы решить данную проблему, следует предпринять следующий ряд шагов:

  1. Проверка привилегий задачи: Убедитесь, что учетной записи пользователя, которая используется для запуска задачи, предоставлены необходимые привилегии, включая "Log on as a batch job". Это можно сделать через Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment в групповых политиках.

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

  3. Проверка хранения пользователя: Убедитесь, что вы корректно сохранили пароль учетной записи при настройке задачи. Это важно для успешной аутентификации задачи.

  4. Проверка событий безопасности: Используйте журнал событий для отслеживания Audit Failures. Это позволит выяснить какие конкретно действия приводят к отказу в доступе. Зачастую, это может указать на неправильно настроенные разрешения или другие нарушения политики безопасности.

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

Следуя данным шагам, вы сможете выявить основную причину ошибки "Access Denied" и правильно настроить задание, чтобы оно выполнялось корректно в рамках запланированных задач.

Оцените материал
Добавить комментарий

Капча загружается...